R(R2OpenBUGS)を介してOpenBUGSを使用して、観測「時間」を確率変数としてモデル化しようとしています。すべての観測時間が利用可能である(NAがない)場合、すべてが機能しますが、いずれかの時間をNAに設定すると、何も起こりません。WinBUGSで同じコードをテストしたところ、トラップエラー「NIL逆参照(読み取り)」が発生しました。だから私の質問は、私のコードに本当に何か問題があるのか、それとも私のモデルがバグに対してあまりにも奇妙なのかということです。
私のモデルは次のようなものです。
model{
for(i in 1:k){
obs[i] ~ dbern(p) #is the observation done at time 1 or 2?
y[(i-1)*2 + obs[i]+1] <- x[i]
}
for(i in 1:n){
y[i] ~ dnorm(mu,tau)
}
mu ~ dnorm(0,0.0001)
tau~ dgamma(0.001,0.001)
p ~ dunif(0,1)
}
そして、Rコードは次のようになります。
library(R2OpenBUGS)
x<-obs<-rep(NA,5)
for(i in 1:k)
{
obs[i]<-sample(c(0,1),1) #observation time of ith observation
x[i]<-rnorm(1) #observed values
}
obs[2]<-NA #one of the sampling times is missing
INITS <- list(list(tau=1,mu=0,p=0.5))
DATA <- list(x=x,n=n,k=k,obs=obs)
ob <- bugs(
data=DATA,
inits=INITS,
parameters.to.save=c("tau","mu","p","y"),
model.file="BUGSModel.R",
n.chains=1,
n.iter=50,
n.burnin=10,
n.thin=1,
DIC=FALSE)