使用 RJAGS 包编译模型时出错
Error in model compiling using RJAGS package
我正在尝试 运行 使用 RJAGS 的以下泊松贝叶斯回归模型,但我发现了一些问题。
library(rjags)
library(mosaic)
library(dplyr)
对于来自 mosaic
包的数据集:
glimpse(RailTrail)
我根据工作日状态 $X_i$ 和温度 $Z_i$:
设计了体积 $Y_i$ 的泊松回归模型
可能性: $Y_i \sim Poisson(l_i)$ 其中 $log(l_i) = a +bX_i + cZ_i$
先验: $a\sim N(0,200^2), b \sim N(0,2^2)$, and $ c \sim N(0,2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
for(i in 1:length(Y)) {
Y[i] ~ dpois(l[i])
log(l[i]) <- a + b[X[i]] + c*Z[i]
}
# Prior models for a, b, c
a ~ dnorm(0, 200^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 2^(-2))
c ~ dnorm(0, 2^(-2))
}"
那我什么时候编译模型
# COMPILE the model
poisson_jags <- jags.model(textConnection(poisson_model),
data = list(Y = RailTrail$volume, X = RailTrail$weekday, Z = RailTrail$hightemp),
inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 10))
我发现了以下问题:
我该如何解决这个问题?
问题是 RailTrail
数据中的 weekday
变量是合乎逻辑的,其值 {FALSE
, TRUE
} 的数值为 0 和 1 , 分别。您需要将它们转换为值 1 和 2。这应该可以解决问题:
poisson_jags <- jags.model(textConnection(poisson_model),
data = list(Y = RailTrail$volume,
X = as.numeric(RailTrail$weekday)+1,
Z = RailTrail$hightemp),
inits = list(.RNG.name = "base::Wichmann-Hill",
.RNG.seed = 10))
我正在尝试 运行 使用 RJAGS 的以下泊松贝叶斯回归模型,但我发现了一些问题。
library(rjags)
library(mosaic)
library(dplyr)
对于来自 mosaic
包的数据集:
glimpse(RailTrail)
我根据工作日状态 $X_i$ 和温度 $Z_i$:
设计了体积 $Y_i$ 的泊松回归模型可能性: $Y_i \sim Poisson(l_i)$ 其中 $log(l_i) = a +bX_i + cZ_i$
先验: $a\sim N(0,200^2), b \sim N(0,2^2)$, and $ c \sim N(0,2^2)$
poisson_model <- "model{
# Likelihood model for Y[i]
for(i in 1:length(Y)) {
Y[i] ~ dpois(l[i])
log(l[i]) <- a + b[X[i]] + c*Z[i]
}
# Prior models for a, b, c
a ~ dnorm(0, 200^(-2))
b[1] <- 0
b[2] ~ dnorm(0, 2^(-2))
c ~ dnorm(0, 2^(-2))
}"
那我什么时候编译模型
# COMPILE the model
poisson_jags <- jags.model(textConnection(poisson_model),
data = list(Y = RailTrail$volume, X = RailTrail$weekday, Z = RailTrail$hightemp),
inits = list(.RNG.name = "base::Wichmann-Hill", .RNG.seed = 10))
我发现了以下问题:
我该如何解决这个问题?
问题是 RailTrail
数据中的 weekday
变量是合乎逻辑的,其值 {FALSE
, TRUE
} 的数值为 0 和 1 , 分别。您需要将它们转换为值 1 和 2。这应该可以解决问题:
poisson_jags <- jags.model(textConnection(poisson_model),
data = list(Y = RailTrail$volume,
X = as.numeric(RailTrail$weekday)+1,
Z = RailTrail$hightemp),
inits = list(.RNG.name = "base::Wichmann-Hill",
.RNG.seed = 10))