我是 OpenBUGS 的初学者,我通过 R2OpenBUGS R 包使用它。我尝试设置状态空间模型来识别非常嘈杂的数据中的对数正态信号。经过多次试验和错误,我设法获得了此代码,但我仍然收到以下错误消息:“变量名错误 pos 664 中不允许空槽”,我不明白。谁能知道代码有什么问题?
免责声明:
- alt = 测量高度
- true_alt = 我尝试评估的内容
- nbird = 个体数量
- nobs = 观察次数(这个数字对于每只鸟都不一样)
- nstate = '飞行状态',这是鸟类的行为方式(nstate = 3,因为有 3 种不同的行为)
我尝试确定每个状态的 true_alt 的对数正态分布。
model <- function(){
## MODEL SPECIFICATION
for(j in 1:nbird){
for(i in 1:nobs[j]){
alt[i,j] ~ dnorm(true_alt[i,j], tau.obs)
log(true_alt[i,j]) <- log_true_alt[i,j]
log_true_alt[i,j] ~ dnorm(mean.alt[i,j], tau[state[i,j]])
mean.alt[i,j] <- alt1[state[i,j]] + ind.re[j]
}
}
for(i in 1:nstate){ tau[i] <- 1/(sig[i]) }
# Random Effects:
tau.re <- 1/sig.re
for(j in 1:nbird) { ind.re[j] ~ dnorm(0, tau.re) }
## PRIORS
for(i in 1:nstate) {
alt1[i] ~ dnorm(0, 0.01)
sig[i] ~ dunif(0, 200)
}
sig.re ~ dunif(0, 200)
state ~ dunif(1,3)
## POSTERIOR PREDICTIVE DISTRIBUTIONS FOR EACH STATE
for(s in 1:nstate){
log_alt_pred[s] ~ dnorm(alt1[s], tau[s])
log(alt_pred[s]) <- log_alt_pred[s]
}
}
谢谢!!!