背景
试图在比周末volume
更少的铁路小道上模拟骑自行车的人。from包含先锋谷规划委员会收集的关于当地铁路使用情况的数据。对于 90 天中的每一天,他们记录了 rail-trail (用户数量)以及它是否是一个(如果是,则为真,否则为假)。weekday
RailTrail
mosaicData
volume
weekday
模型
Yi = 第 i 天的跟踪量(用户数量)
Xi = 1 表示工作日,0 表示周末。
可能性
- Yi ∼ N(mi,s^2)
- mi =a+bXi
先验
- a ∼ N(400,100^2)
- b ∼ N(0,200^2)
- s ∼ Unif(0,200)
代码
尝试在 R 中实现这一点,如下所示:
library(rjags)
library(mosaicData)
data(RailTrail)
# DEFINE the model
rail_model_1 <- "model{
# Likelihood model for Y[i]
for(i in 1:length(Y)) {
Y[i] ~ dnorm(m[i], s^(-2))
m[i] <- a + b[X[i]]
}
# Prior models for a, b, s
a ~ dnorm(400, 100^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 200^(-2))
s ~ dunif(0, 200)
}"
尝试使用以下代码编译上述模型:
# COMPILE the model
rail_jags_1 <- jags.model(
textConnection(rail_model_1),
data = list(Y = RailTrail$volume, X = RailTrail$weekday),
inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 10)
)
错误
但是,我在尝试编译时遇到以下错误:
Error in jags.model(textConnection(rail_model_1), data = list(Y = RailTrail$volume, :
RUNTIME ERROR:
Compilation error on line 5.
Index out of range taking subset of b
问题
你能帮我解决这里有什么问题吗?我在 Ubuntu 20.04、MacOS Catalina 以及 RStudio Cloud 中对此进行了测试——同样的错误。rjags.version()
是4.3.0
。