如何使用 rjags 生成预测?

机器算法验证 r 锯齿
2022-03-06 08:21:28

我使用 rjags 在模型上运行 MCMC,该模型以 JAGS 语言指定。有没有一种好方法可以提取该模型并使用它进行预测(使用我的参数的后验分布)?我可以在 R 中重新指定模型并插入我的参数后验模式;我只是想知道是否有一种不那么冗余的方法来做到这一点。

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

1个回答

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

FEV20s 和 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)
}

示例来自:贝叶斯思想和数据分析