【问题标题】:Differences between p-values in summary and from the anova in R lm()总结中的 p 值与 R lm() 中的方差分析之间的差异
【发布时间】:2013-01-17 21:55:23
【问题描述】:

我看到方差分析的 p 值存在差异,具体取决于我访问它的方式。

有没有办法获得与摘要返回的值相同的值?

一个易于表示的案例在摘要和方差分析中返回

x <- lm(formula = eruptions ~ waiting, data = faithful)
summary(x)
anova(x)
anova(x)$"Pr(>F)"[1]

在另一个更难以表示的情况下(有更多数据),我得到 p 值:摘要中为

有什么办法可以得到summary和anova中返回的实际值?

非常感谢您的帮助 -

【问题讨论】:

  • 嗯,我看不出有什么区别,除了一个结果是准确的,另一个是近似值? 8.129959e-100
  • 如果我不清楚,我很抱歉。我不是问他们是否不同。我在问如何获得摘要中显示的值。

标签: r lm


【解决方案1】:

您必须深入了解stats:::print.summary.lm。该值不存储在 summary.lm 对象中,它是根据对象的 fstatistic 组件动态计算的。

s <- summary(x)$fstatistic
(p <- pf(s["value"], s["numdf"], s["dendf"], lower.tail = FALSE))
##         value 
## 8.129959e-100 

...它与anova()产生的值相同...

...正如@Dason 在下面指出的那样,您可以使用format.pval() 回到summary() 的显示格式:

format.pval(p)
## [1] "< 2.22e-16"

除了自己破解print.summary.lm之外,我看不到任何方法来覆盖其中的format.pval()调用以打印出摘要中的完整p值。

【讨论】:

  • stats:::print.summary.lm 是我正在寻找的。非常感谢您花时间发帖。
  • 另请注意,如果您想打印值,您可以使用format.pval 获取“
  • 太棒了!奇怪的是为什么 p 值不像其他输出那样存储在摘要中。这很容易从:summary(x)[[12]].
  • 一致性不是 R 的最大优点之一 :-) 各种类的 summary 函数是由不同的人在不同的时间编写的......(换句话说,我没有充分的理由知道的不一致。)您可以向bugs.r-project.org 发布愿望清单请求,或在r-devel@r-project.org 上提出可能性(请参阅stackoverflow.com/questions/4054585/…
猜你喜欢
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 2016-05-24
相关资源
最近更新 更多