有什么办法可以提高概率为 分布的小数精度。pchisq增加十进制精度
> 1-pchisq(90, 5)
[1] 0
但是:
> pchisq(90, 5, lower.tail=F)
[1] 6.71932e-18
有什么办法可以提高概率为 分布的小数精度。pchisq增加十进制精度
> 1-pchisq(90, 5)
[1] 0
但是:
> pchisq(90, 5, lower.tail=F)
[1] 6.71932e-18
如果你正在做的1 - foo
拿到分布的上尾,那就不要。而是使用lower.tail
参数:
> pchisq(90, 5, lower.tail = FALSE)
[1] 6.719319e-18
感谢但doining这个1- 6.7e-18 = 1 – Jasmine
另外检查''pchisq'中的'log.p'参数 –
那么,尽可能对于计算机来说,上面给出的值实际上是0给定浮点运算:尝试all.equal(pchisq(90,5,lower.tail = FALSE),0)' –
基于下面的评论,你可能需要浮点精度读取(见例如FAQ 7.31在R FAQ)。有很多方法可以以更高的精度进行计算(例如'gmp'包),但通常最好重新考虑一下你的问题 - 这就是为什么例如'lower.tail'参数存在于第一位... –