我试图找出如何在我的数据中估计一个转换点,并这样做,我想估计变化点之前的时期和转换点之后的时期的随机效应。但是,我不知道转换点应该是什么时候,所以我试图估计它。我遇到的问题是,我在循环结构中使用了转换点(cp),并且我得到了一个“无法计算计数器I的上索引”的错误。我猜我不能用我也想估计的变量来循环?我想知道是否有人做过这件事和/或对如何做这件事有建议。另一个潜在的问题是,我没有在命令中使用计数器索引,但是,当我尝试使用while循环时,我也遇到了循环没有中断的问题。预先感谢您的任何想法!
代码的子集:
cp ~ dunif(3,51)
for(i in 1:(cp-1)){
for(j in 1:nsite){
b[j] ~ dnorm(0,tau.site)
}
}
for(i in cp:nyear){
for(j in 1:nsite){
b1[j] ~ dnorm(0,tau.site1) # random site effects
}
}发布于 2014-05-09 15:10:36
谢谢你的评论。我所发现的解决这个问题的最简单形式(据我所知)如下:
model {
changeyear ~ dunif(1,N)
for(j in 1:nsite){
b[j] ~ dnorm(0,tau.site)
b1[j] ~ dnorm(0, tau.site1)
}
}
# Note priors for tau.site and tau.site1 are not shown
for (i in 1:nyear){
for(j in 1:nsite){
y[i,j] <- b[j] * step(i-changeyear) + b1[j] * step(changeyear-i)
}}其中,易,j是我的模型的期望值。step函数充当指示函数,即命令计算值为非负值,然后为1,否则为0。到目前为止,似乎转换年被估计为我的时间序列的中点-但这可能只是一个模型问题,以克服,而不是语法问题。再次感谢你的想法!
https://stackoverflow.com/questions/23499232
复制相似问题