Я пытаюсь решить многомерную регрессию с несколькими зависимыми переменными в Winbugs. Но во время компиляции я получаю ошибки. Я попытался решить на основе решений одной и той же проблемы, но не увенчался успехом. Любая помощь будет высоко оценена.«Несколько определений ошибки узла mu [1,2]» в WinBUGS
model {
for(i in 1:n)
{ for(k in 1:J)
{ y[i,k]~ dpois(mu[i,])
log(mu[i,1]) <- beta1[1]*x1[i] + beta2[1]*x2[i] + b[,1]
log(mu[i,2]) <- beta1[2]*x1[i] + beta2[2]*x2[i] + b[,2]
}}
# PRIORS
for (i in 1:n) {
for(k in 1:J) {
b[i,k] <- 1
}}
# Scale Matrix
for(i in 1:J)
{
for (j in 1:J)
{
R[i,j] <- equals(i,j)
}}
for (j in 1:J) {beta1[j]~ dmnorm(zero[], B[,])
beta2[j]~ dmnorm(zero[], B[,]) }
for(i in 1:J)
{
for (j in 1:J)
{ B[i,j] <- 0.01*equals(i,j)
}}
for (i in 1:J) { zero[i] <- 0}
}
#DATA
list(n=3, J=2)
#DATA
y[ ,1] x1[] x2[] y[,2]
0 9.91 8.34 1
3 10.48 10.14 79
0 10.31 9.42 40
Большое спасибо другу. Пожалуйста, скажите, есть ли у вас решение для новой ошибки, то есть «векторное логическое выражение должно иметь более одного компонента». –
Я могу только предположить, что это связано с тем, что вы вкладываете в одно из многомерных нормальных распределений. Например, вы пытаетесь поместить кучу значений в одну ячейку здесь 'beta2 [j] ~ dmnorm (zero [], B [,])' –
Спасибо за предложение. Есть ли способ назначить каждому бета1 [j] или бета2 [j] конкретный элемент нормальной распределенной матрицы. Я попытался определить beta1 [1] <- beta3 [1,1], где матрица бета3 получена как бета3 [j, j] <- dmnorm (ноль [], B [,]). Но такая же ошибка, как и раньше. –