Я установил следующую модель simple linear regression
Bayesian
, используя rjags
. Мне удалось запустить модель, указав все предикторы отдельно (например, для объекта lm
). Теперь я хочу узнать, как указать предикторы, представив их в виде матрицы вместо того, чтобы указывать их по отдельности.
Итак, я запустил следующий код, но он дал несколько ошибок.
Я использовал tobbaco
набор данных в rrr
пакете, чтобы предоставить воспроизводимый пример.
library(rrr)
require(dplyr)
library(rjags)
tobacco <- as_data_frame(tobacco)
N1 = length(tobacco$Y1.BurnRate)
x1 = model.matrix(Y1.BurnRate~X2.PercentChlorine+X3.PercentPotassium ,data = tobacco)
bayes_model_mul1=
"model {
for(i in 1:N1){
Y1.BurnRate[i]~dnorm(mu1[i],tau1)
for(j in 1:3){
mu1[i]=beta1[j]*x1[i,j]
}
}
for (l in 1:3) { beta1[l] ~dnorm(0, 0.001) }
tau1 ~ dgamma(.01,.01)
sigma_tau1 = 1/tau1
}"
model3 <- jags.model(textConnection(bayes_model_mul1),
data = list(Y1.BurnRate=tobacco$Y1.BurnRate, x1=x1, N1=N1),
n.chains=1)
После запуска model3
я получил следующую ошибку.
Ошибка в jags.model (textConnection (bayes_model_mul1), data = list (Y1.BurnRate = табак $ Y1.BurnRate,:
ОШИБКА РАБОТЫ:
Ошибка компиляции в строке 6.
Попытка переопределить узел mu1 [1]
Может ли кто-нибудь помочь мне разобраться в этом? Связано ли это с введением предикторов в виде матрицы?