如何使用Rjags生成预测?


12

我已经使用rjags在以JAGS语言指定的模型上运行MCMC。是否有一个很好的方法可以提取该模型并对其进行预测(使用我的参数的后验分布)?我可以在R中重新指定模型,并插入参数后代的模式;我只是想知道是否有较少的冗余方法。

我相信http://sourceforge.net/p/mcmc-jags/discussion/610037/thread/0ecab41c在问同样的问题。


链接断开。可以更新吗?
chl 2012年

做完了 类似SourceForge的容貌重新排列
定量历史学家

谢谢!(自从SF更改了它们的相对路径以来,我自己还没有找到该线程。)
chl 2012年

Answers:


8

通常,您可以使用JAGS进行预测。下面是一个回归示例,其中FEV(与肺活量有关)是因变量,而年龄和吸烟指标是预测因子。

FEV20和FEV20ns是20岁吸烟者和20岁非吸烟者的预测FEV值。

model
{
for(i in 1:n){
    FEV[i] ~ dnorm(mu[i],tau)
    mu[i] <- beta[1] + beta[2]*Age[i] + beta[3]*Smoke[i]  + beta[4]*Age[i]*Smoke[i]
}

#priors
beta[1] ~ dnorm(0,0.001)
beta[2] ~ dnorm(0,0.001)
beta[3] ~ dnorm(0,0.001)
beta[4] ~ dnorm(0,0.001)
tau ~ dgamma(0.001,0.001)
sigma<-1/sqrt(tau) 

## Predict the FEV for a 20 year old smoker and for a 20 year old nonsmoker
mu20s <-  beta[1] + (beta[2]+beta[4])*20 + beta[3]
mu20ns <-  beta[1] + beta[2]*20 
FEV20s ~ dnorm(mu20s,tau)
FEV20ns ~ dnorm(mu20ns,tau)
}

来自以下方面的示例:贝叶斯思想和数据分析


感谢您的指点-我没有想到只将测试数据发送到JAGS中,但这应该可以做到。
定量历史学家,

1
有没有一种方法可以生成这些预测而无需重新拟合整个模型?如果有的话,将生成的预测大规模并行化将很容易,但是,如果需要对整个模型进行调整,这是不可能的。
科林
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.