rpois在R中产生具有大均值(λ)的NA

时间:2014-05-20 22:19:18

标签: r lambda poisson

我正在调试一组更大的嵌套模型,这些模型在优化期间只会遇到问题。在将我认为导致错误的内容归零的过程中,我在rpois()函数中遇到了异常行为。

似乎平均值非常大,rpois()会返回NA而不是值。此问题不会生成警告。请参阅下面的可重现代码集。

> rpois(1,3000000000)
[1] NA

我的问题有两个方面:
1 - 为什么显示此行为(rpois函数的整数大小是否有最大限制?)和
2 - 是否有工作来防止NA的产生(即使将平均输入的大小限制为某个较小的值)?

我在64x Windows 7中运行32x R版本3.0.2。

1 个答案:

答案 0 :(得分:7)

问题是rpois返回一个整数,如果该值大于最大可能的整数值(NA),它会将值转换为.Machine$integer.max

rpois(1,.Machine$integer.max/1.00001)
## [1] 2147428954
rpois(1,.Machine$integer.max/1)
## [1] NA

在这种情况下,正态近似应该是非常精确的(如果平均值大于100,通常非常好!):如果你的平均值大于(比如说)0.999*.Machine$integer.max,你可以使用{{1} }