Множественная линейная регрессия JAGS с y[i] гаммой (байесовская)
У меня есть вопрос об этой модели в JAGS, я хочу сделать байесовскую линейную регрессию с a y[i], которая следует не нормальному распределению, а гамме.
Модель такая:
"model {
Priors:
a ~ dnorm(0, 0.0001) # mean, precision = N(0, 10^4)
b ~ dnorm(0, 0.0001)
shape ~ dunif(0, 100)
# Likelihood data model:
for (i in 1:N) {
linear_predictor[i] <- a + b * x[i]
# dgamma(shape, rate) in JAGS:
y[i] ~ dgamma(shape, shape / exp(linear_predictor[i]))
}
}
"
Что я должен изменить, чтобы этот код можно было использовать для множественной линейной регрессии с этими данными?
dataListGamma = list(
x = x,
y = y,
Nx = dim(x)[2],
Ntotal = dim(x)[1]
)
я получаю эту ошибку: Ошибка в узле (shape/(exp(linear_predictor[1331])))) как это возможно? я не могу понять, если я запускаю его снова, это меняет значение, которое делает проблему
1 ответ
Как то так b
вектор с одинаковыми независимыми априорными значениями для каждого элемента и построение линейного предиктора с for
цикл) должен работать:
model {
# Priors:
a ~ dnorm(0, 0.0001) # mean, precision = N(0, 10^4)
for (j in 1:Nx)
b[i] ~ dnorm(0, 0.0001)
}
shape ~ dunif(0, 100)
# Likelihood data model:
linear_predictor[i] <- a
for (i in 1:Ntotal) {
for (j in 1:Nx) {
linear_predictor[i] <- linear_predictor[i] + b[j]*N[i][j]
}
y[i] ~ dgamma(shape, shape / exp(linear_predictor[i]))
}
}