gpt4 book ai didi

r - 更重要的数字

转载 作者:行者123 更新时间:2023-12-02 07:03:42 25 4
gpt4 key购买 nike

如何在 R 中获得更多有效数字?具体来说,我有以下示例:

> dpois(50, lambda= 5)
[1] 1.967673e-32

但是当我得到 p 值时:

> 1-ppois(50, lambda= 5)
[1] 0

显然,p 值不是 0。事实上,它应该大于 1.967673e-32,因为我正在对一堆概率求和。我如何获得额外的精度?

最佳答案

使用lower.tail=FALSE:

ppois(50, lambda= 5, lower.tail=FALSE)
## [1] 2.133862e-33

让 R 计算上尾比计算下尾并从 1 中减去它要准确得多:鉴于浮点精度的固有限制,R 无法区分 (1-eps ) 对于小于 .Machine$double.neg.epseps 值,从 1 开始,通常在 10^{-16} 左右(参见 ?.Machine).

此问题在 ?ppois 中讨论:

Setting ‘lower.tail = FALSE’ allows to get much more precise results when the default, ‘lower.tail = TRUE’ would return 1, see the example below.

另请注意,您关于值需要大于 dpois(50, lambda=5) 的评论不太正确; ppois(x,...,lower.tail=FALSE) 给出随机变量大于 x 的概率,您可以查看(例如)ppois(0,...,lower.tail=FALSE) 不完全为 1,或者:

dpois(50,lambda=5) + ppois(50,lambda=5,lower.tail=FALSE)
## [1] 2.181059e-32
ppois(49,lambda=5,lower.tail=FALSE)
## [1] 2.181059e-32

关于r - 更重要的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com