了解本应该提出的问题,而不是旧的Google网上论坛, 我一直在寻找在PyMC中参数化Beta分布式线性模型,Chris Fonnesbeck建议将其作为:
“只是对β的重新参数化,其中\ alpha = \ mu \ phi和\ beta =(1- \ mu)\ phi。 所以,你需要的只是: new_beta = Lambda('new_beta',lambda x = x,mu = mu,phi = phi:beta_like(x,mu * phi,(1-mu)* phi))“
这很棒 - 我的下一个问题是在哪里插入线性模型组件,我认为应该在\ mu上,例如:
$$ \ mu = \ exp(b_0 + b_1x)$$
并使用gamma-distributed \ phi:
phi = Gamma('phi', alpha=0.001, beta=0.001)
这是对的吗?注意我们在这里使用PyMC2
由于 亚伦
答案 0 :(得分:0)
这取决于您希望线性模型如何影响beta模型。正如你在这里描述的mu
,它不是beta的平均值,它只是均值的归一化常数。如果您希望将alpha和beta描述为beta的均值和方差,则类似于以下内容:
alpha = mu * (mu*(1-mu)/var - 1)
beta = (1 - mu) * (mu*(1-mu)/var - 1)
可能更简单的方法是平均mu
和样本量nu
:
alpha = mu * nu
beta = (1-mu) * nu