1

如果等号括号中的元素之一是 NA,请有人告诉我 WinBUGS 中的等号函数返回什么?

具体来说,我想做转换:

for(i in 1:N){
    newvar[i] <- 1*equals(oldvar[i],0) + 2*equals(oldvar[i],1.5) + 3*equals(oldvar[i],4) + 4*equals(oldvar[i],8)
}

并且想要保留 NA,因此 oldvar[i] 中带有 NA 的记录在 newvar[i] 中也有 NA,但我担心这种转换会将 NA 变成 0。

非常感谢任何和所有建议。

董里

4

1 回答 1

2

如果您没有在 oldvar[1] 上放置先前的分布,这应该会给出错误消息(使用未定义的节点)。WinBUGS 期望所有节点在计算中使用时都有值。如果您已经对其进行了先验,那么 WinBUGS 应该从 oldvar[1] 的后验分布生成值,然后 equals() 函数应该对这些生成的值进行操作。您是否使用过系统地为 oldvar[1] 生成零的先验?如果您对缺失数据的建模不感兴趣,我建议您先从数据中删除缺失值,然后再在 WinBUGS 中使用它。

于 2013-05-17T11:12:49.223 回答