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 打印的默认值。