0


我在 R 中运行 R2OpenBUGS 时遇到了一个特定问题。但它在 OpenBUGS 中运行得非常好。
我想了解问题所在。

这是我的代码:

模型波动率;
常数 n=180;
{

# 可能性:ys
的联合分布 (t in 1:n)
{
yisigma2[t] <- 1/exp(theta[t]);
y[t] ~ dnorm(0,yisigma2[t]);
}

先验分布

亩〜dnorm(0,0.1);
phistar ~ dbeta(20,1.5);
itau2 ~ dgamma(2.5,0.025);
β <- 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);

}
}




R 代码:
svm.sim <- bugs(data, inits, model.file = "C:/Documents and Settings/code.txt", parameters = c("mu", "phi", "tau"), n. chains = 1, n.iter = 1000, codaPkg = TRUE,debug=TRUE)

这是我从 R 运行 OpenBUGS 日志中显示的错误:



模型在语法上是正确的
数据加载
模型 编译
的这个节点组件不是随机 phi 错误 pos 25
无法为 UpdaterNormal 类型的节点生成初始值。StdUpdater
模型必须在更新
之前初始化 模型必须在监视器之前初始化 使用的
模型必须在监视器之前初始化使用的
模型必须在显示器之前初始化 使用的
模型必须在显示器之前初始化 使用的
模型必须在 DIC 可以被监控
之前初始化 模型必须在更新之前初始化
模型必须在显示器之前初始化
DIC 显示器未设置


任何帮助将不胜感激
谢谢问候
迪纳卡

4

1 回答 1

0

我运行了您的代码并稍作修改(见下文),它似乎工作正常。我确实将值 n 指定为数据,并让 OpenBUGS 自己生成初始值。你如何指定你的初始化有问题吗?

    sink("stack_model.txt")
    cat("
    model{
    # likelihood: joint distribution of ys 
    for (t in 1:n) 
    { 
    yisigma2[t] <- 1/exp(theta[t])
    y[t] ~ dnorm(0,yisigma2[t])
  }
  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) 

  } 
}",fill=TRUE)
sink()
win.data<-list(n=180)
svm.sim <- bugs(win.data, inits=NULL, model.file = "stack_model.txt", parameters = c("mu", "phi", "tau"), n.chains = 2, n.iter = 1000, DIC=F, debug=TRUE,  codaPkg =TRUE) 
于 2015-07-28T01:00:30.817 回答