4

これにアクセスする方法に応じて、anova の p 値に違いが見られます。

サマリーによって返される値と同じ値を取得する方法はありますか?

簡単に表現できるケースでは、サマリーと anova で < 2.2e-16 が返されますが、値に直接アクセスすると 8.129959e-100 が返されます。

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

別のより表現が難しいケース (さらに多くのデータがあります) では、p 値が得られます: 要約では < 2.2e-16 ですが、anova では 0 です。

サマリーと分散分析で返される実際の値を取得する方法はありますか?

私は本当にあなたの助けに感謝します -

4

1 に答える 1

5

を掘り下げる必要があり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をオーバーライドして、要約に完全な p 値を出力する方法がわかりません。format.pval()

于 2013-02-02T20:02:46.627 に答える