如何从Manova输出中提取p值

问题描述

我正在通过R中的manova公式测试Hotelling T ^ 2测试。我正在测试不同的相同大小,因此具有多个Manova表输出。下面是我如何为整个样本生成manova

attach(iris)
library(Hotelling)
library(corpcor)
s= iris[1:100,1:5]
input= cbind(s$Sepal.Length,s$Sepal.Width,s$Petal.Length,s$Petal.Width )
m= manova(input~ Species,data = s)
summary(m,"Hotelling-Lawley")

我想知道如何从每个表中提取p值。我试图追随,但没有运气:

res$"Pr(>F)"

res$p.value

summary(man)[8]

但每次返回NULL

解决方法

在您的示例中,p非常小:

summary(m,"Hotelling-Lawley")$stats

          Df Hotelling-Lawley approx F num Df den Df       Pr(>F)
Species    1         26.33509 625.4583      4     95 2.664857e-67
Residuals 98               NA       NA     NA     NA           NA

可以将给定预测变量的p值隔离开,例如Species,像这样:

summary(m,"Hotelling-Lawley")$stats["Species","Pr(>F)"]
[1] 2.664857e-67

文档here

我知道这只是一个iris的测试用例,但即使如此:请考虑一下,当p值如此之小时,它开始失去作为有效测试统计信息的意义。取而代之的是,您可以选择一种效果大小的度量甚至描述性统计数据来支持您的结果。