summary.manova 输出显示来自 summary.manova 统计数据 table 和 broom tidy() 的不同 p 值
summary.manova output shows different p values from the summary.manova stats table and broom tidy()
我注意到 R 中的 summary.manova()
函数产生两个不同的 p.values。一个在控制台中打印的 table 中,另一个在摘要对象中的 stats
table 中。 p.values 应该报告什么?值略有不同。我第一次注意到这个问题是在使用 broom
中的 tidy()
函数时,它是从统计 table 而不是控制台报告 p.values。
我可以使用 iris 数据框重现问题:
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 值仅打印为“<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
,它 returns 一个 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 打印的默认值。
我注意到 R 中的 summary.manova()
函数产生两个不同的 p.values。一个在控制台中打印的 table 中,另一个在摘要对象中的 stats
table 中。 p.values 应该报告什么?值略有不同。我第一次注意到这个问题是在使用 broom
中的 tidy()
函数时,它是从统计 table 而不是控制台报告 p.values。
我可以使用 iris 数据框重现问题:
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 值仅打印为“<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
,它 returns 一个 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 打印的默认值。