【问题标题】:How to extract p value from Manova output如何从 Manova 输出中提取 p 值
【发布时间】:2021-01-12 09:27:09
【问题描述】:

我正在通过 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

【问题讨论】:

  • 抱歉,已经更新,应该够用了

标签: r p-value manova


【解决方案1】:

在您的示例中,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 值这么小时,它开始失去作为有效测试统计量的意义。您可以改为选择效应大小的度量,甚至是描述性统计数据来支持您的结果。

【讨论】:

  • 谢谢。我只是想知道为什么我会为每条不同的线得到两个不同的 p 值。首先summary(m, "Hotelling-Lawley") 给出物种的 P 值为2.2e-16。而summary(m, "Hotelling-Lawley")$stats 给出的p 值为2.664857e-67
  • 如果您查看 summary()summary()$stats 中的其他值,您会发现它们都是四舍五入的。但是 p 值非常小,以至于 R 在 summary() 输出中默认为 machine epsilon。当您更深入时,您可以在$stats 中看到实际值。
猜你喜欢
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 2021-08-23
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多