如何报告微小的


62

对于在某些测试中R,存在对一个下限的计算2.2210-16。我不确定为什么是这个数字,是否有充分的理由,或者它是任意的。许多其他统计信息包都可以使用0.0001,因此精度更高。但是我没有看到太多的论文报告或。p<2.2210-16p=2.2210-16

报告此计算值是常见/最佳做法,还是报告其他内容(例如p < 0.000000000000001)更典型?


如果获得如此小的p值并想要计算实际的p值,则可以在excel = TDIST(t,df,2)中使用此函数,将't'和df的值相加即可得到实际的p值ta

7
@Tahzeeb有什么理由使Excel返回比R ..更精确的估计吗?据我所知,它不够精确。
蒂姆

...But I haven't seen too many papers reporting p<2.22⋅10−16....参见一些GWAS论文,有许多论文显示了数百个pvalue的结果,例如:前列腺癌KLK地区,p = 9x10 ^ -186。
zx8754

1
另请参阅此处的问题解答:stats.stackexchange.com/questions/11812
变形虫说恢复莫妮卡

Answers:


87

有充分的理由。

该值可以通过找到 noquote(unlist(format(.Machine)))

           double.eps        double.neg.eps           double.xmin 
         2.220446e-16          1.110223e-16         2.225074e-308 
          double.xmax           double.base         double.digits 
        1.797693e+308                     2                    53 
      double.rounding          double.guard     double.ulp.digits 
                    5                     0                   -52 
double.neg.ulp.digits       double.exponent        double.min.exp 
                  -53                    11                 -1022 
       double.max.exp           integer.max           sizeof.long 
                 1024            2147483647                     4 
      sizeof.longlong     sizeof.longdouble        sizeof.pointer 
                    8                    12                     4 

如果您查看帮助,则(?".Machine"):

double.eps  

the smallest positive floating-point number x such that 1 + x != 1. It equals 
double.base ^ ulp.digits if either double.base is 2 or double.rounding is 0; 
otherwise, it is (double.base ^ double.ulp.digits) / 2. Normally 2.220446e-16.

它本质上是低于你可以相当自信的价值将是非常值数值毫无意义-在任何较小的值不可能是我们正试图计算值的精确计算。(已经研究了一些数值分析,具体取决于通过特定过程执行了哪些计算,在此之上,数字无意义的可能性很大。)

但是统计意义早就已经丧失了。请注意,p值取决于假设,并且您越深入极端,真实p值(而不是我们计算的名义值)就越会受到错误假设的影响,即使在某些情况下,只是有点错误。由于不会完全满足所有假设,因此中等p值可能相当准确(就相对准确度而言,可能只是一个小数),但极小的p值可能会超出许多数量级。大小。

也就是说,通常的做法(例如,您说的“ <0.0001”在软件包中很常见,或者Jaap在其回答中提到的APA规则)可能与明智的做法相距不远,而是事情的大概时机。除了说“ 它非常小 ” 之外,还会失去意义,当然,这取决于情况。

这就是为什么我不能建议一般规则的原因-不可能有一个规则甚至在所有情况下都适合所有人-稍微改变一下情况,用粗灰线标记从有意义的变化到相对的变化无意义的改变,有时会很长一段时间。

如果你指定有关确切的情况下足够的信息(例如,它是一个回归,与多非线性,变异在这个自变量量,这个种类和依赖量的误差项,那种和异方差的量,这种形状的误差分布),我可以模拟“真实” p值以与标称p值进行比较,这样您就可以看到它们何时对于标称值而言太不同而无法表达任何含义。

但是,这引出了第二个原因,即使您指定了足够的信息来模拟真实的p值,即使在那种情况下,我仍然不能负责任地提出一个临界值。

您报告的内容取决于人们的喜好-您和您的听众。想象一下,你告诉我有足够的了解情况,我决定,我想在标称画线10 - 6p10-6

我们可能会认为一切都很好-除了您自己的首选项功能(您认为合适的是,您是否要查看统计数据包提供的标称p值与假设特定集合时模拟产生的p值之间的差异)假设失败的)可能把它在和要提交到可能把有自己的毯子规则在切断该杂志的编辑10 - 4,而下一期刊可能把它在10 - 3和下一步可能没有一般性规则,您所拥有的特定编辑者可能会接受比我给定的甚至更低的值...但其中一名裁判可能会因此而被拒绝参加比赛!10-510-410-3

如果不了解他们的偏好功能和规则,也不了解您自己的实用程序,那么我该如何负责任地建议对要采取的行动进行一般性选择?

我至少可以告诉您我所做的事情(而且我根本不建议这对您来说是个不错的选择):

在少数情况下(除了模拟p值之外),我会使ap的值小于(我可能会或可能不会提及软件包报告的值,但除此以外我什么也不会做它很小,我通常会强调无意义的确切数字)。有时我取一个介于10 510 4范围内的值,并说p远小于该值。有时我实际上确实按照上述建议进行操作-执行一些模拟,以查看p值对各种违反假设的情况的敏感程度,特别是如果我担心某种特定的违反情况时。10-610-510-4

这无疑有助于告知选择-但是我很可能讨论模拟结果,就像用它们来选择一个临界值一样,从而给其他人选择自己的机会。

模拟的一种替代方法是查看一些对假设的各种潜在失败更鲁棒*的程序,并查看可能对p值造成多少影响。它们的p值也不会特别有意义,但是它们至少可以使人对可能产生的影响有所了解。如果有些与名义上的有很大不同,那么它也给出了更多的想法,即那些违反假设的情况进行调查以产生影响。即使您没有报告任何其他选择,它也可以更好地说明您的小p值的意义。

*请注意,这里我们实际上并不需要鲁棒的程序来应对严重违反某些假设的情况;那些受相关假设相对温和偏差影响较小的方法对于此练习应该是正确的。

我会说,当/如果确实要进行这样的模拟时,即使有相当轻微的违反,在某些情况下,即使不是那么小的p值也可能是错误的,这可能令人惊讶。这改变了我个人解释p值的方式,并且比改变我可能使用的特定临界值做得更多。

将实际的假设检验的结果提交给期刊时,我试图找出它们是否有规则。如果他们不这样做,我倾向于取悦自己,然后等待裁判员抱怨。


11
我特别喜欢关于统计意义的评论早就消失了。
usεr11852

好答案!我对此表示赞赏,很清楚为什么R会给出这个数字。但这并不能真正回答报告什么的问题。
paul 2013年

1
我宁愿觉得自己已经解决了这个问题,从某种意义上说,我解释了为什么提出具体建议不负责任。请注意,我确实讨论了为什么报告某些软件包中常见的“ <0.0001”之类的词为何有意义。我不建议具体数字的原因有两个-我给出了第一个。我将在这个原因上进行扩展,并在编辑中讨论第二个原因。
Glen_b 2013年

保罗,我增加了一些实质性的讨论。
2013年

2
是的,您确实需要做一些事情;我更广泛的评论的目的是要传达我无法告诉您您应该选择做什么,我只能讨论您选择的问题。我希望我已经这样做了,但是我很乐意尝试进一步澄清所有问题。
Glen_b 2013年

27

哪种常规做法可能取决于您的研究领域。美国心理学会(APA)的手册是最常用的引用方式之一,其中指出(第139页,第6版):

不要使用任何小于p <0.001的值


8
尽管这也是我通常会引用的(+1),但鉴于Valen Johnson在PNAS中的最新建议,我不确定是否需要将该建议修改小数点后一位:“将0.005作为默认的显着性水平[ ...]。将高度重要的测试结果与小于0.001的P值相关联。”
Henrik 2013年

3
好答案。在我的领域中没有样式指南,也没有真正的标准,至少对于p值没有。我从事跨学科工作,但我想计算机科学和人机交互将是该领域。我认为APA风格将成为作者的方向,因为这些方法通常是从APA涵盖的认知心理学或其他领域借鉴而来的。
paul 2013年

10
5σp<10-6

1
@Glen_b:好点约粒子物理学,但我猜你在你的答案写灵敏度为什么他们报告西格玛的假设等解释(或者是原因至少部分)(即基本上5σžpp0.0001žp

@amoeba是的,我认为您是对的。
Glen_b

14

在具有大量数据的领域(例如基因组学和过程监控)中,此类极端p值更常见。在这些情况下,有时会报告为-log 10(p值)。例如,请参见《自然》中的该图,其中p值下降到1e-26。

我在JMP工作的统计学家将-log 10(p值)称为“ LogWorth”


21
ppp

8
@BenBolker确实,尽管比“美国国家安全局(NSA)篡改您的数据”的可能性要小,但即使诸如“宇宙射线翻转了数据中的几个重要比特”之类的事件,发生的可能性也远大于这些概率。
Glen_b 2014年

6
在一个2015神经科学论文发表在Nature,作者报告几个呈现相关系数时的时间(ρp<10-100ρ0.9ñ500

8
p=2.2×10-226

9
@amoeba在Slate Star Codex评论部分的上方,丹尼尔·韦尔斯Daniel Wells)指出science.sciencemag.org / content / 363/6425 / eaau1043 报告的p值为3.6e-2382(“不是错字,是两千 ”,丹尼尔说),比您的优势要好得多!
Mark Amery

-3

在R中,“ <2e-16”并不是字面上的<2e-16,而是它的值很小,以至于R无法记录或显示它。

在回归测试中,我经常得到p小至4.940656e-324,当它输出“ <2e-16”时,这个数字甚至小于4.940656e-324


哪个数字是“ 甚至小于4.940656e-324 ”?
Sven Hohenstein

8
在R中的语句“ <2e-16”并不表示从字面上<2e-16 ”是不正确的。当R显示时<2e-16,该值实际上小于2e-16
Sven Hohenstein

你误会了我的意思。当R表示“ <2e-16”时,p值小于2e-16,但这并不意味着小于2e-16的p值将显示为“ <2e-16”。如我所展示的,R可以毫不费力地显示在[4.940656e-324,2e-16]之间的任何数字的lm摘要p值中,而左边界为2 ^ -1074。因此我假设,只有当p值小于2 ^ -1074时,R才会说p值小于小增量值。碰巧R将这个增量值显示为2e-16。所以我的猜测是“ <2e-16”实际上意味着p值中的“ <2 ^ -1074”
user3590816

6
但是,您的猜测是不正确的:@Sven正是试图告诉您。请参阅中的帮助format.pval或尝试使用,如中所示format.pval(1e-16)
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.