我注意到R中的summary.manova()
函数产生两个不同的p值。一个在控制台中打印的表中,另一个在位于摘要对象中的stats
表中。应报告哪些p值?这些值略有不同。我第一次注意到这个问题是在使用broom
中的tidy()
函数时,它从统计表而不是控制台报告p.value。
我可以使用虹膜数据帧重现问题:
head(iris)
fit = manova(as.matrix(iris[,1:4]) ~ Species, data = iris)
fit_summary = summary.manova(fit, test = "Wilks")
fit_summary #output1
fit_summary$stats #output2
broom::tidy(fit, test = "Wilks") #output2
很好的可复制示例!从我在这里看到的一切来看,唯一的区别是输出表示,而不是底层值。
在打印的概要输出中,小于阈值的p值仅打印为"0"<2.2e-16";(理论上,你可能不应该担心微小p值之间的差异…(
fit_summary #output1
Df Wilks approx F num Df den Df Pr(>F)
Species 2 0.023439 199.15 8 288 < 2.2e-16 ***
Residuals 147
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
如果显式提取$stats
分量,则会得到一个打印为R默认7位数精度的值:
> fit_summary$stats #output2
Df Wilks approx F num Df den Df Pr(>F)
Species 2 0.02343863 199.1453 8 288 1.365006e-112
Residuals 147 NA NA NA NA NA
如果使用tidy
,它将返回一个tibble而不是一个数据帧,该数据帧具有不同的输出精度默认值集(即,它只报告3个有效数字(。
> broom::tidy(fit, test = "Wilks")
# A tibble: 2 x 7
term df wilks statistic num.df den.df p.value
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Species 2 0.0234 199. 8 288 1.37e-112
2 Residuals 147 NA NA NA NA NA
所有这些默认值都可以重置:例如,?tibble::formatting
告诉您options(pillar.sigfig=7)
将把tibble-printing的有效数字设置为7;?options
告诉您可以使用options(digits=n)
更改base-R打印的默认值。