首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用估计变量的r2jags循环

使用估计变量的r2jags循环
EN

Stack Overflow用户
提问于 2014-05-06 15:44:58
回答 1查看 261关注 0票数 1

我试图找出如何在我的数据中估计一个转换点,并这样做,我想估计变化点之前的时期和转换点之后的时期的随机效应。但是,我不知道转换点应该是什么时候,所以我试图估计它。我遇到的问题是,我在循环结构中使用了转换点(cp),并且我得到了一个“无法计算计数器I的上索引”的错误。我猜我不能用我也想估计的变量来循环?我想知道是否有人做过这件事和/或对如何做这件事有建议。另一个潜在的问题是,我没有在命令中使用计数器索引,但是,当我尝试使用while循环时,我也遇到了循环没有中断的问题。预先感谢您的任何想法!

代码的子集:

代码语言:javascript
复制
    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
 }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-09 15:10:36

谢谢你的评论。我所发现的解决这个问题的最简单形式(据我所知)如下:

代码语言:javascript
复制
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。到目前为止,似乎转换年被估计为我的时间序列的中点-但这可能只是一个模型问题,以克服,而不是语法问题。再次感谢你的想法!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23499232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档