【发布时间】:2012-12-25 13:04:43
【问题描述】:
我正在使用 R 中的 Winbugs 进行贝叶斯分析。我需要将两个 Winbugs 脚本合并为一个:但是,我收到一条错误消息 (Variable x2 is not defined in model or in data set)。这是winbugs代码:
model{
# Model’s likelihood
for (i in 1:n) {
tto[i] ~ dnorm( mu[i], tau ) # stochastic componenent
b[i] ~ dnorm(0.0, tau2)
# link and linear predictor
mu[i] <- 1 - (beta.concern2*concern2[i] + beta.concern3*concern3[i] + b[i])
}
for (i in 1:1002) {
# Linear regression on logit
logit(p[i]) <- beta.concern2*x2[i,1] + beta.concern2*x2[i,2]
# Likelihood function for each data point
y2[i] ~ dbern(p[i])
}
s2<-1/tau
s <-sqrt(s2)
a2<-1/tau2
a <-sqrt(a2)
}
x2 是一个 1002*2 矩阵,y 是一个向量
这是定义数据的 R 代码:
combined.data <- list(n=n,tto=tto,concern2=concern2,
concern3=concern3,y2=y2, x2=x2)
有人知道怎么回事吗?
【问题讨论】:
-
@Giulio,我认为这个问题是绝对合法的。在大多数 WinBUGS 错误中,您无法进行任何研究。只是尝试和失败。他为什么不缩短刑期并寻求帮助?这就是 stackoverflow 的用途。
-
@Tomas,非常感谢。你对我很好。我真的尽力了,winbugs对新用户不是很友好。
-
你能把得到的 combine.data 转储到这里吗?尤其是
n常量。如果 x2 充满数字(没有 NA)和正确的尺寸,这一点很重要。 -
@Guilio,当然 - 这对任何错误都有效 - 只需修改您的代码并更正它,仅此而已:-) Stackoverflow 很好,但我认为更有经验的人对其他人的款待可以得到改进。
-
@James:JAGS 和 WinBUGS 之间并没有那么很大的区别,尽管 JAGS 的错误消息无疑更清晰一些。请阅读 tinyurl.com/reproducible-000 关于构建一个可重现的示例 ...您还没有向我们展示 (1) 您的数据是什么,(2) 您如何将
combined.data传递给 WinBUGS 模型... (例如,您使用的是R2WinBUGS吗?精确的bugs()函数调用是什么?)