我试图应用Gelman& amp;希尔(2007:p348)关于氡数据集,有我自己的数据。这是一个多层次的模型问题,我需要指定三个级别 - 嵌套在地方当局(级别2)(J)内的重复宽带速度测量(级别1),最终嵌套在区域(级别3)(K)内。因变量是宽带速度(y),自变量是人口密度(x)。
虽然模型显然在语法上是正确的,但WinBUGS一直说我有一个未定义的变量,但我不确定我的代码在哪里被错误指定。我不确定嵌套是否正确,以及R代码中的inits和参数的规范。我知道很多人已经开始使用rstan,但我仍然觉得我需要学习基本的WinBUGS才能实现它。
非常感谢任何帮助。这是一个可重复的例子:
###WinBUGS model
model {
#level 1
for (i in 1:n){
y[i] ~ dnorm (y.hat[i], tau.y)
y.hat[i] <- a[laid[i]] + b*x[i]}
b ~ dnorm (0, .0001)
tau.y <- pow(sigma.y, -2)
sigma.y ~ dunif (0, 100)
#level 2
for (j in 1:J){
a[j] ~ dnorm (mu.a, tau.a)}
mu.a ~ dnorm (0, .0001)
tau.a <- pow(sigma.a, -2)
sigma.a ~ dunif (0, 100)
#level 3
for (k in 1:K){
a[k] ~ dnorm (mu.b, tau.b)}
mu.b ~ dnorm (0, .0001)
tau.b <- pow(sigma.b, -2)
sigma.b ~ dunif (0, 100)
}
这是我的R代码和数据:
require(R2WinBUGS)
n<- 344
J <- 86
K <- 13
laid <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,
6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,
11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,
16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,
21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,
26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,
31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,
36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,
41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,
46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,
51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,
56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,
61,61,61,61,62,62,62,62,63,63,63,63,64,64,64,64,65,65,65,65,
66,66,66,66,67,67,67,67,68,68,68,68,69,69,69,69,70,70,70,70,
71,71,71,71,72,72,72,72,73,73,73,73,74,74,74,74,75,75,75,75,
76,76,76,76,77,77,77,77,78,78,78,78,79,79,79,79,80,80,80,80,
81,81,81,81,82,82,82,82,83,83,83,83,84,84,84,84,85,85,85,85,
86,86,86,86)
rnid <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,
9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,
10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,
12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
13,13,13,13)
x <- c(7.59,7.6,7.6,7.6,7.53,7.53,7.54,7.54,8.38,8.39,
8.4,8.41,7.37,7.37,7.38,7.38,7.2,7.2,7.2,7.21,
7.79,7.8,7.81,7.82,7.72,7.72,7.72,7.73,7.66,7.67,
7.67,7.67,7.67,7.68,7.68,7.69,7.43,7.43,7.44,7.44,
7.43,7.43,7.43,7.43,8.33,8.34,8.35,8.35,7.16,7.16,
7.16,7.17,7.49,7.49,7.49,7.49,7.62,7.62,7.62,7.62,
6.56,6.57,6.57,6.58,6.28,6.28,6.28,6.28,6.8,6.8,
6.81,6.81,7.31,7.32,7.33,7.33,7.25,7.25,7.25,7.25,
7.81,7.82,7.83,7.85,7.8,7.8,7.81,7.81,7.74,7.74,
7.74,7.74,7.6,7.6,7.61,7.61,8.3,8.31,8.31,8.32,
8.08,8.09,8.12,8.14,8.07,8.07,8.07,8.08,8.19,8.2,
8.21,8.22,7.06,7.06,7.07,7.07,7.86,7.87,7.87,7.88,
8.19,8.19,8.2,8.2,7.26,7.27,7.27,7.27,6.33,6.34,
6.34,6.35,6.94,6.95,6.95,6.96,7.22,7.23,7.23,7.24,
6.87,6.87,6.88,6.89,6.89,6.89,6.9,6.9,7.85,7.85,
7.85,7.86,6.31,6.31,6.31,6.31,6.84,6.84,6.85,6.85,
6.28,6.28,6.28,6.28,5.44,5.44,5.44,5.45,4.14,4.14,
4.14,4.14,5.76,5.77,5.77,5.77,7.37,7.37,7.37,7.38,
7.02,7.03,7.04,7.04,5.88,5.89,5.89,5.89,6.98,6.98,
6.98,6.98,8.31,8.31,8.31,8.3,8.19,8.19,8.19,8.19,
4.94,4.94,4.94,4.94,6.72,6.72,6.72,6.72,5.29,5.29,
5.3,5.3,6.59,6.6,6.61,6.62,8.07,8.07,8.08,8.08,
8.41,8.42,8.42,8.44,4.56,4.54,4.56,4.57,8.31,8.33,
8.33,8.35,4.43,4.44,4.45,4.45,6.35,6.36,6.36,6.37,
4.56,4.57,4.57,4.57,7.89,7.89,7.89,7.9,6.21,6.23,
6.24,6.25,8.27,8.28,8.29,8.3,6.3,6.3,6.31,6.32,
6.27,6.28,6.29,6.3,5.01,5.02,5.03,5.03,4.9,4.94,
4.94,4.94,8.08,8.08,8.09,8.09,7.64,7.65,7.65,7.66,
8.29,8.3,8.31,8.33,7.73,7.74,7.74,7.75,6.81,6.83,
6.84,6.84,4.98,4.99,4.99,5,6.29,6.3,6.31,6.32,
8.45,8.46,8.47,8.49,5.8,5.81,5.83,5.84,5.88,5.9,
5.91,5.93,8.34,8.34,8.34,8.36,6.88,6.88,6.89,6.91,
7.22,7.23,7.24,7.26,8.56,8.57,8.58,8.6,6.95,6.96,
6.97,6.98,5.39,5.39,5.4,5.4,8.25,8.27,8.28,8.29,
8.37,8.38,8.39,8.4)
y <- c(2.1,2.77,2.95,3.3,1.96,2.57,2.82,3.12,2.1,2.56,
2.88,3.18,1.95,2.72,2.96,3.31,1.93,2.39,2.83,3.2,
2.21,2.83,3.03,3.35,2.17,2.82,3.1,3.44,2.04,2.54,
2.83,3.15,2.14,2.68,3.07,3.36,2.15,2.63,3.03,3.36,
2.05,2.49,2.91,3.28,2.25,2.67,2.96,3.33,2.08,2.56,
2.99,3.31,2.17,2.61,2.83,3.29,2.12,2.54,2.8,3.15,
1.93,2.53,2.71,3.03,1.97,2.53,2.72,3.07,1.97,2.42,
2.63,2.98,1.97,2.53,2.73,3.04,2.17,2.57,2.97,3.23,
2.17,2.69,2.93,3.23,2.09,2.71,2.92,3.25,2.1,2.58,
3.03,3.4,1.93,2.39,2.89,3.22,2.19,2.71,3.03,3.36,
2.12,2.5,2.9,3.23,2.14,2.6,3.03,3.36,2.16,2.61,
2.91,3.2,2.12,2.83,3.09,3.41,2.1,2.6,2.96,3.27,
2.21,2.95,3.1,3.47,2.12,2.59,2.95,3.25,1.92,2.5,
2.64,2.97,1.95,2.45,2.79,3.12,2.07,2.54,2.91,3.23,
1.92,2.42,2.66,2.99,2.07,2.93,3.14,3.48,2.2,2.92,
3.15,3.44,2.15,2.87,3.1,3.42,2.12,2.74,3.14,3.46,
2.05,2.57,3.03,3.38,1.84,2.24,2.47,2.75,1.84,2.12,
2.35,2.67,1.9,2.5,2.76,3.05,2,2.42,2.87,3.24,
2.01,2.51,2.91,3.26,1.9,2.37,2.62,2.92,1.99,2.53,
2.69,3.06,2.25,2.8,2.9,3.26,1.99,2.22,2.34,2.65,
2.07,2.35,2.45,2.65,2.21,3.11,3.21,3.55,1.89,2.56,
2.74,3.1,1.96,2.4,2.76,3.1,2.13,2.67,3.11,3.4,
2.17,2.65,3.07,3.39,1.76,2.08,2.1,3.01,2.21,2.71,
3.15,3.45,1.61,1.86,2.21,2.54,2.12,2.65,3.03,3.34,
1.76,2.1,2.3,2.63,2.03,2.48,2.88,3.26,1.97,2.53,
2.78,3.07,2.29,2.77,3.2,3.52,1.95,2.38,2.58,2.88,
2.08,2.59,3.03,3.37,1.87,2.33,2.59,2.91,1.5,1.53,
1.48,1.59,2.16,2.67,3.11,3.46,2.15,2.45,2.69,3.05,
2.2,2.63,3.06,3.4,2.08,2.53,2.99,3.38,2.03,2.65,
3.04,3.32,1.92,2.47,2.66,2.94,1.97,2.56,3.01,3.31,
2.09,2.72,3.19,3.48,1.96,2.65,2.97,3.26,2.01,2.62,
2.97,3.25,2.23,2.87,3.11,3.4,2.08,2.77,3.06,3.35,
2.1,2.87,3.12,3.46,2.17,2.69,3.02,3.3,1.81,2.42,
2.94,3.36,1.93,2.48,2.77,3.04,2.19,2.76,3.09,3.42,
1.86,2.67,2.98,3.26)
speed.data <- list ("n", "J", "K", "y", "laid", "rnid", "x")
speed.inits <- function (){
list (a=rnorm(J), b=rnorm(1), mu.a=rnorm(1), mu.b=rnorm(1),
sigma.y=runif(1), sigma.a=runif(1), sigma.b=runif(1))}
speed.parameters <- c ("a", "b", "mu.a", "mu.b", "sigma.y", "sigma.a", "sigma.b")
speed.1 <- bugs (speed.data, speed.inits, speed.parameters,
"speed.1.txt", n.chains=3, n.iter=10, debug=TRUE)