1
제로스 트릭을 사용하여 JAGS의 일반 포아송 분포에 카운트 데이터를 맞추고 있습니다. 나는 "베이지안 모델링의 Winbugs 사용"책에 코드를 다음입니다 (286 페이지) 문서라도 내 코드입니다 :JAGS를 사용하는 베이지안 일반화 된 포아송에 대한 제로 - 하나의 트릭
GPoisson.model <- function(){
C <- 10000
for(i in 1:N){
zeros[i] <- 0
zeros[i] ~ dpois(zeros.mean[i])
zeros.mean[i] <- -l[i] + C
#log-likelihood
lambda.star[i] <- (1-omega)*lambda[i] + omega*y[i]
l[i] <- log((1-omega)*lambda[i]) + (y[i]-1)*log(lambda.star[i]) -
loggam(y[i]+1) - lambda[i]
#log-link + linear predictor
log(lambda[i]) <- log(E[i]) + inprod(X[i,],beta[])
}
#priors
omega ~ dbeta(1,1)
for(j in 1:17){
beta[j] ~ dnorm(0,0.001)
}
}
나는이 오류가있어 모델을 실행하면 :
Compilation error on line 6.
Attempt to redefine node zeros[1]
을
나는 아직도 0 [0]이 잘못되었음을 이해하지 못합니다. 제발 가르쳐주세요. 미리 감사드립니다.
사용자 코드에서
: 난 당신이 라인을 삭제해야한다고 생각 } 모델 { \t \t C <- 1,000 \t - {0 \t \t \t 제로 [I]가 <} (N I (1))에 대한 \t 경우 (전 1 : N) { \t \t 제로 [I]는 ~ dpois (zeros.mean [I])는 \t \t는 \t는 \t zeros.mean [I]는 <- [내가] + C \t \t #을 -l log-likelihood \t \t lambda.star [i] <- (1-omega) * lambda [i] + omega * y [i] \t \t l [i] <- log ((1-ω) * λ [\t \t - λstar [i] \t \t # log-link + (y [i] -1) * log (λ [ 선형 예측 자 \t \t 람다 [I]는 <- E [I]는 * EXP (inprod (X [I,, 베타 []))} \t \t \t #priors 오메가 대 dunif ~ (0,1) \t \t (j 1:17) { \t \t 베타 [j] ~ dnorm (0,0.001) \t} } " " – FadzliFuzi