【问题标题】:WinBUGS equals function with NAWinBUGS 等于函数与 NA
【发布时间】:2013-05-16 21:23:54
【问题描述】:

如果等括号中的元素之一是 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。

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

董里

【问题讨论】:

    标签: equals transformation winbugs


    【解决方案1】:

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

    【讨论】:

    • 谢谢你,@Chris。这真的很有帮助。我的 oldvar[i] 只是数据中的一个变量,有一些缺失值。我发现您对节点的多个定义的问题的回答也很有帮助。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2019-03-10
    • 1970-01-01
    • 2012-06-14
    • 2017-01-14
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多