MCMC收敛到单个值?


13

我正在尝试使用jags和rjags包来适应分层模型。我的结果变量是y,这是一系列bernoulli试验。我有38名人受试者被分为两类执行:P和基于M.在我的分析,每个扬声器具有成功的在P类的概率和成功的在M类的概率θ p × θ 。我也假设存在的P和M一些社区层面超参数:μ pμ θpθp×θmμpμm

因此,对于每个扬声器: θ b Ë 一个μ × κ 1 - μ × κ 其中κ pκ θpbeta(μp×κp,(1μp)×κp)θmbeta(μm×κm,(1μm)×κm)κpκm控制如何达到峰值的分布是围绕μ μpμm

μ b Ë μpbeta(Ap,Bp)μmbeta(Am,Bm)

这是我的锯齿模型:

model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
    y[i] ~ dbern( theta[ speaker[i],category[i]])
}

## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other 
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
    theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
    catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
    theta[j,2] <- theta[j,1] * catM[j]
}

## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)

## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)

## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}

我的问题是,当我运行该模型进行5000次迭代以进行自适应时,然后进行1000次采样,MmuKm收敛到单个值。我已经使用4条链来运行它,并且每个链没有相同的值,但是在每个链中只有一个值。

我对于使用MCMC方法拟合层次模型非常陌生,所以我想知道这有多糟糕。我是否应该以此为标志,说明该模型无法适应,我的先验存在问题,还是该课程的标准?

μmκm


如果我对您的理解正确,那么这些参数会“收敛”在每个链中的一个固定值上(经过一些迭代后它根本不会改变),但是对于您运行的每个链而言,该值是否不同?这听起来很糟糕,就像迈入大都会黑斯廷斯的脚步一样。可能是您的模型,可能是JAGS,也可能是两者的组合。大概这个模型不需要太长时间就能适应,因此我会尝试首先运行(很多)更长的链,尤其是在适应期。
JMS

因此,我通过5000次迭代更新了该模型,并且所讨论的参数没有变动。我没意识到他们会像这样陷入当地的最低境界。
JoFrhwld 2011年

1
快速建议:1。尝试使用dbin,其中n = 1。并使用边界限制p的值。像这样的东西:p.bound [i] <-max(0,min(1,p [i]))
Manoel Galdino

1
有两个澄清的问题:1.您有38个类别P下的科目和38个类别M下的科目,例如length(y)= 76?2.您能否提供有关超参数的基本原理和实验的更多背景信息?这让我有些困惑。
Manoel Galdino

1
我可能只修复了所有超参数,例如theta [j,1]〜dbeta(1.1,1.1)之类的东西,然后在尝试进入超优先级之前先查看得到的结果。同样,theta [j,2]的先验是两个beta的乘积,通常不是beta本身,因此,theta [j,2] <theta [j,1]当然也是如此。看来您打算这样做;只是出于好奇,为什么?
jbowman 2011年

Answers:


2

这更多是评论,但由于我的声誉不高,所以我不妨回答。

从我对MCMC采样器的有限经验来看,我观察到的是,当超参数太窄时,参数往往保持固定。由于它们控制参数的扩展,因此它们无法有效地对解决方案空间进行采样。

尝试为超参数取更大的值,然后看看会发生什么。

这份技术论文对我理解MCMC采样器有很大帮助。它由两个采样器Gibbs(正在使用的一个)和Hybrid Monte Carlo组成,并迅速说明了如何为参数和超参数选择先验,超优先级和值。


0

这可能是链结构的问题。最终的位置取决于您的起点。要使用MCMC,您希望链是循环的,这意味着无论从哪里开始,您都可以进入状态空间中的所有其他状态。如果该链不是经常性的,那么您可能会陷入状态空间的一个子集中。MCMC的想法是拥有一个现有的固定分布,链最终将缠绕在该分布中。这种固定分布通常具有处于链中任何状态的正概率,并且不会像您所描述的那样被束缚在单个点上。我无法检查您的算法,但也许您有一个错误。您也可能已经定义了一个问题,即您的马尔可夫链不经常出现。

如果您想了解MCMC的知识,建议您阅读《马尔可夫链蒙特卡洛手册》,该手册中的文章描述了MCMC的各个方面。它由CRC Press在2011年出版。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.