JAGS随机效应模型预测

时间:2016-02-03 19:35:23

标签: r regression bayesian glm-math jags

我试图使用索引作为响应(D47),温度作为预测器(Temp)并考虑离散变量(材料)的随机效应来建模贝叶斯回归。我发现了关于非等级回归的非常好的信息,有些帖子甚至包括这些模型的预测策略。尽管如此,我在模型中预测D47值时发现了一个非常大的问题,主要是因为随机截距。

在预测JAGS回归期间,有没有办法处理随机拦截?

感谢您的回答,

的Cristian

model1<-"model {
# Priors
mu_int~dnorm(0, 0.0001) # Mean hyperparameter for random intercepts
sigma_int~dunif(0, 100) # SD hyperparameter for random intercepts
tau_int <- 1/(sigma_int*sigma_int)
for (i in 1:n) {
alpha[i]~dnorm(mu_int, tau_int) # Random intercepts
}
beta~dnorm(0, 0.01) # Common slope
sigma_res~dunif(0, 100) # Residual standard deviation
tau_res <- 1/(sigma_res*sigma_res)
# Likelihood
for (i in 1:n) {
mu[i] <- alpha[Mat[i]]+beta*Temp[i] # Expectation
D47[i]~dnorm(mu[i], tau_res) # The actual (random) responses
}
}"

1 个答案:

答案 0 :(得分:4)

当然,您可以使用随机截距进行预测,您需要做的就是将其指定为某种派生数量。

尝试将类似的内容添加到模型中。

for(i in 1:(n)){
D47_pred[i] <- dnorm(mu[i], tau_res)
}

然后跟踪D47_pred作为参数。

编辑:

此外,您需要更改为随机拦截指定先验的方式。这将需要几个步骤(来自评论的更新代码)。

您需要在数据列表中添加一个新常量,该常量表示向量Mat中的唯一组数。我在这种情况下将其标记为M(例如,Mat中有4组,M = 4)

for (j in 1:(M)){ 
alpha[j] ~ dnorm(mu_int, tau_int) # Random intercepts
}

此规范只为您的模型生成正确数量的随机截距