【问题标题】:F-testing formula in RR中的F检验公式
【发布时间】:2015-11-09 12:47:28
【问题描述】:

我是 R 新手,我正在尝试测试我的线性模型。 lm() 函数的输出如下:

             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 1615.2716    83.2051   19.41   <2e-16 ***
rts$angle     11.8387     0.8895   13.31   <2e-16 ***

我想测试零假设,它给了我以下输出:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2503.17      70.04   35.74   <2e-16 ***

现在,我正在使用 F 检验公式:

(rss0 <- deviance(nullmod))
# [1] 158056425
(rss <- deviance(rtsld))
# [1] 79219962
(df0 <- df.residual(nullmod))
# [1] 179
(df <- df.residual(rtsld))
# [1] 178
(fstat <- ((rss0-rss)/(df0-df))/(rss/df))
# [1] 177.1383
1-pf(fstat, df0-df, df)
# [1] 0

我不明白为什么我的 p-valuef-statistic 为 0。有人可以帮我理解这个输出吗?

【问题讨论】:

  • 你有机会发布数据吗?
  • 把你的最后一行换成format.pval()。 (你也可以在summary(full_model_fit) 的输出中找到这个 p 值)。
  • @Roland 谢谢!这有效并给了我以下输出:“.Machine$double.eps,它给了我[1] 2.220446e-16
  • 还想知道是否有人知道 lower.tail=TRUE 返回 1(导致 0 值)而不是更精确的估计的原因。如果有人有更多的技术知识,那肯定会满足我的好奇心,因为过去半小时我一直在寻找答案,但没有任何运气。

标签: r


【解决方案1】:

pf() 函数有一个默认值 lower.tail=TRUE。这意味着,执行的 F 检验默认为低尾检验。在 F 检验中,我们总是使用上尾检验(有关详细说明,请参阅 here)。虽然使用1-pf() 计算上尾测试很直观,但 R 需要一些刺激才能使其以这种方式工作。这是因为,当你有很大的影响时,下尾很容易返回一个非常接近 1 的值,以至于 R 无法识别浮点(或者有人告诉我,我不是完全确定这是多么准确,因为我没有查看 pf() 函数的原始代码)。

@Roland 已经提出了用format.pval() 包装你的1-pval() 调用的解决方案,因为这会强制R 识别p 值。但是,我会主张使用命令:

pf(fstat, df0-df, df, lower.tail=FALSE)

这将返回更准确的 upper.tailed 测试。当您将其包装在 format.pval() 命令中时,您将获得与使用 format.pval(1 - pf()) 命令时相同的结果。这是因为 format.pval 必然会向上取整。但是,当使用带有增加的显示小数的 format.pval 时,使用 1 - pf(lower.tail=TRUE) 公式无法重建更准确的估计值。

    > pf(fstat, df0-df, df, lower.tail=FALSE)
[1] 0.0000000000000000000000000001685664
> format.pval(pf(fstat, df0-df, df, lower.tail=FALSE), eps=0.0000000000000000000000000001)
[1] "0.00000000000000000000000000016857"
> format.pval(1-pf(fstat, df0-df, df, lower.tail=TRUE), eps=0.0000000000000000000000000001)
[1] "< 0.0000000000000000000000000001"

请注意,即使是现在,上尾测试中的 format.pval 换行也在四舍五入。当然,当你的 p 值这么小时(事实上,整个问题只有在你的 p 值非常小时才会出现),这两种方法几乎没有区别。但为什么要满足于不太准确呢?

【讨论】:

  • 如果有人能告诉我为什么低尾 pf() 测试返回 1,我很想听听。无法识别浮点数的解释对我来说并不完全令人满意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多