JAGS 随机效应模型预测
JAGS Random Effects Model Prediction
我正在尝试使用指数作为响应 (D47)、温度作为预测变量 (Temp) 并考虑离散变量 (Material) 的随机效应来对贝叶斯回归建模。我找到了关于非层次回归的非常好的信息,一些帖子甚至包括这些模型的预测策略。尽管如此,我在预测模型中的 D47 值时发现了一个显着的问题,主要是因为随机截距。
在 JAGS 回归预测过程中有没有办法处理随机截距?
感谢您的回答,
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
}
}"
当然,您可以使用随机截距进行预测,您需要做的就是将其指定为某种派生量。
尝试向模型中添加类似这样的内容。
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
}
此规范只是为您的模型生成正确数量的随机截距
我正在尝试使用指数作为响应 (D47)、温度作为预测变量 (Temp) 并考虑离散变量 (Material) 的随机效应来对贝叶斯回归建模。我找到了关于非层次回归的非常好的信息,一些帖子甚至包括这些模型的预测策略。尽管如此,我在预测模型中的 D47 值时发现了一个显着的问题,主要是因为随机截距。
在 JAGS 回归预测过程中有没有办法处理随机截距?
感谢您的回答,
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
}
}"
当然,您可以使用随机截距进行预测,您需要做的就是将其指定为某种派生量。
尝试向模型中添加类似这样的内容。
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
}
此规范只是为您的模型生成正确数量的随机截距