r语言 - 为什么manova()不给我p值?

  • 本文关键字:r语言 manova r manova
  • 更新时间 :
  • 英文 :


当我使用manova()时,然后使用summary.aov(),我只得到df, Sum sq和Mean sq,没有p值。

我的数据帧看起来像:(对不起,我不确定是否有更好的方式来显示这个!)

subtype lymphocytosis anemia thrombocytopenia eosinophilia hypercalcemia hyperglobulinemia
1     MBC          0.60   0.18             0.17         0.02          0.01              0.04
2     SBC          0.25   0.18             0.14         0.03          0.02              0.12
3    BCLL          1.00   0.29             0.18         0.08          0.03              0.21
neutrophilia neutropenia lymphadenopathy_peripheral lymphadenopathy_visceral splenomegaly
1         0.23        0.02                       1.00                     0.65         0.60
2         0.22        0.04                       0.99                     0.62         0.49
3         0.23        0.04                       0.40                     0.25         0.49
hepatomegaly pleural_effusion peritoneal_effusion intestinal_mass mediastinal_mass pulmonary_mass
1         0.41             0.02                0.05            0.10             0.09           0.22
2         0.37             0.03                0.05            0.17             0.12           0.22
3         0.27             0.01                0.04            0.25             0.03           0.25

数据框中的值表示每个临床症状的每个亚型的平均病例数。我有点担心,为了manova()的工作,我应该输入每个病例和他们的临床症状,以便manova可以自己计算。这对我来说组装起来会很痛苦,所以我才这样做。不管怎样,我仍然认为我应该打赌得到P值,如果我的数据帧是错误的,它们可能是错误的?

我使用的代码是:

cs_comp_try <- manova(cbind(lymphocytosis, anemia, thrombocytopenia, eosinophilia, hypercalcemia,
hyperglobulinemia, neutrophilia, neutropenia, lymphadenopathy_peripheral, lymphadenopathy_visceral,
splenomegaly, hepatomegaly, pleural_effusion, peritoneal_effusion, intestinal_mass, mediastinal_mass, pulmonary_mass) ~ subtype, data = cs_comp)   
summary(cs_comp_try)  
summary.aov(cs_comp_try)

summary.aov()得到的结果是:

Response peritoneal_effusion :
Df     Sum Sq    Mean Sq
subtype      2 6.6667e-05 3.3333e-05
Response intestinal_mass :
Df   Sum Sq   Mean Sq
subtype      2 0.011267 0.0056333
Response mediastinal_mass :
Df Sum Sq Mean Sq
subtype      2 0.0042  0.0021
Response pulmonary_mass :
Df Sum Sq Mean Sq
subtype      2  6e-04   3e-04

我想我已经复制了我在互联网上看到的所有例子,所以我不确定为什么当我运行这段代码时,我没有得到F统计量和p值。

您可以使用summary函数来获取像这样的p值(我使用iris数据作为示例):

fit <- manova(cbind(Sepal.Length, Petal.Length) ~ Species, data = iris)
summary(fit)
#>            Df Pillai approx F num Df den Df    Pr(>F)    
#> Species     2 0.9885   71.829      4    294 < 2.2e-16 ***
#> Residuals 147                                            
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

由reprex包(v2.0.1)创建于2022-07-15

如果要提取实际的p值,可以使用以下代码:

fit <- manova(cbind(Sepal.Length, Petal.Length) ~ Species, data = iris)
summary(fit)$stats[1, "Pr(>F)"]
#> [1] 2.216888e-42

由reprex包(v2.0.1)创建于2022-07-15

最新更新