我在 R 中发现了 t-tests 和 chi-squared 这个问题,但我认为这个问题通常适用于其他测试。如果我做:
a <- 1:10
b <- 100:110
t.test(a,b)
我得到:t = -64.6472, df = 18.998, p-value < 2.2e-16
。我从评论中知道-2.2e-16
的值是.Machine$double.eps
- 的最小浮点数1 + x != 1
,但当然 R 可以表示比这小得多的数字。我还从 R FAQ 知道 R 必须将浮点数舍入到 53 位二进制精度:R FAQ。
几个问题:(1)我将其读取为 53 位精度的二进制数字是否正确,或者 R 中的值< .Machine$double.eps
是否计算不准确?(2) 为什么在进行此类计算时,R 没有提供一种方法来显示 p 值的较小值,即使精度有所损失?(3) 有没有办法显示更小的 p 值,即使我失去了一些精度?对于单次测试,2 个十进制有效数字就可以了,对于我要 Bonferroni 正确的值,我需要更多。当我说“失去一些精度”时,我认为 < 53 个二进制数字,但是 (4) 我完全弄错了,任何 p 值< .Machine$double.eps
都非常不准确吗?(5) R 只是诚实而其他统计数据包不是吗?
在我的领域,非常小的 p 值是常态,一些例子: http : //www.ncbi.nlm.nih.gov/pubmed/20154341,http: //www.plosgenetics.org/article/info%3Adoi%2F10 .1371%2Fjournal.pgen.1002215这就是为什么我要表示如此小的 p 值。
感谢您的帮助,对于如此曲折的问题感到抱歉。