У меня возникли проблемы в инициализации следующую модель в OpenBUGSOpenBUGS: Инициализация модели
model
{
#likelihood
for (t in 1:n) { yisigma2[t] <- 1/exp(theta[t]);
y[t] ~ dnorm(0,yisigma2[t]);
}
#Priors
mu ~ dnorm(0,0.1);
phistar ~ dbeta(20,1.5);
itau2 ~ dgamma(2.5,0.025);
beta <- exp(mu/2);
phi <- 2*phistar-1;
tau <- sqrt(1/itau2);
theta0~dnorm(mu, itau2)
thmean[1] <- mu + phi*(theta0-mu);
theta[1] ~ dnorm(thmean[1],itau2);
for (t in 2:n) { thmean[t] <- mu + phi*(theta[t-1]-mu);
theta[t] ~ dnorm(thmean[t],itau2);
}
}
Это мои данные
list(y=c(-0.0383 , 0.0019 ,......-0.0094),n=945)
И это список моих инициалов
list(phistar= 0.98, mu=0, itau2=50)
Проверка модели, загрузка данных и шаги компиляции в порядке. При загрузке инициалов OpenBUGS говорит, что загружаются начальные значения, но цепочка содержит неинициализированные переменные. Затем я попытался инициализировать theta0, но проблема не устранена. Может кто-нибудь, пожалуйста, помогите мне в этом? Спасибо Khalid
Я также новичок в OpenBUGS. Но я думаю, что распределение для inits требуется, когда нужно запускать несколько цепей. Я использую единственную цепочку, используемую в этой статье «ОШИБКИ для байесовских стохастических моделей волатильности» Мейера и Ю. Кроме того, я нашел решение. Это связано с тем, что все скрытые переменные в модели (в байесовской структуре) также считаются параметрами, и поэтому скрытые переменные каждого человека также нуждаются в стартовых значениях. Таким образом, «gen inits» из OpenBUGS также можно использовать после загрузки inits. –