使用JAGS进行对数正态的贝叶斯估计

时间:2016-10-15 18:48:00

标签: bayesian confidence-interval jags

我试图找到50个样本均值的95%可信区间。样本大小范围为2到600,每个样本中的值限制在1到5之间。 例如:

JNIEXPORT

大小为10或更大的样本具有对数正态分布,其中我使用JAGS进行改编自John K.Kruschke的对数正态参数的贝叶斯估计,模型规格如下:

sample 1 = (1,3.5,2.8,5,4.6)
sample 2 = (1,5)
sample 3 = (4.1,1.1,5,3.5,2,2.4,...)

该模型适用于样本量>然而,使用3< = samples<在上限(例如,3000)中,我得到超过平均值的最大可能值(例如,5)的极值。 如果样本大小= 2,我得到以下错误:

 modelstring = "
  model {
    for( i in 1 : N ) {
      y[i] ~ dlnorm( muOfLogY , 1/sigmaOfLogY^2 )
    }
  sigmaOfLogY ~ dunif( 0.001*sdOfLogY , 1000*sdOfLogY )
  muOfLogY ~ dunif( 0.001*meanOfLogY , 1000*meanOfLogY )
  muOfY <- exp(muOfLogY+sigmaOfLogY^2/2)
  modeOfY <- exp(muOfLogY-sigmaOfLogY^2)
  sigmaOfY <- sqrt(exp(2*muOfLogY+sigmaOfLogY^2)*(exp(sigmaOfLogY^2)-1))
}
"

我是JAGS的新手,无法弄清楚如何解决这个问题。我认为对于smaples&lt; 10分布不再对数正常! 有任何想法吗? 谢谢

1 个答案:

答案 0 :(得分:0)

首先是语义笔记。您没有使用JAGS查找样本方法。您正在使用JAGS查找样本产生的群体的平均值。如果你想找到样本(log)的意思,你可以采用样本值的(对数)的平均值。

现在,如果每个样本中的值都限制在1到5之间(由于某些外部约束),那么样本永远不会从对数正态分布中提取,该分布通常会将概率质量大于5。 / p>

让我们想象一下,为了说明,样本确实来自对数正态采样(因此并非固有地限制在1和5之间)。然后JAGS只是告诉你样本中没有足够的信息来获得对其绘制的总体平均值的良好估计。当样本量为2时,我不担心理解错误,因为实际上没有办法从两个样本中得到关于总体平均值的良好推断。即使您知道群体确实是对数正态分布,也是如此。而且由于你的人口实际上并不是正常分布(它们在1到5之间),因此整个推理过程无效。