1、当因变量(结果变量)不止一个时,可用多元方差分析(MANOVA)对它们同时进行分析。
library(MASS)
attach(UScereal)
y <- cbind(calories, fat, sugars)
aggregate(y, by = list(shelf), FUN = mean)
Group.1 calories fatsugars
1 1 119.4774 0.6621338 6.295493
2 2 129.8162 1.3413488 12.507670
3 3 180.1466 1.9449071 10.856821
cov(y)
calories fat sugars
calories 3895.24210 60.674383 180.380317
fat60.67438 2.713399 3.995474
sugars180.38032 3.995474 34.050018
fit <- manova(y ~ shelf)
summary(fit)
Df Pillai approx F num Df den Df Pr(>F)
shelf 1 0.195944.955 3 61 0.00383 **
Residuals 63
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary.aov(fit)
Response calories :
Df Sum Sq Mean Sq F valuePr(>F)
shelf1 45313 45313 13.995 0.0003983 ***
Residuals 63 2039823238
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response fat :
Df Sum Sq Mean Sq F value Pr(>F)
shelf1 18.421 18.4214 7.476 0.008108 **
Residuals 63 155.236 2.4641
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Response sugars :
Df Sum Sq Mean Sq F value Pr(>F)
shelf1 183.34 183.34 5.787 0.01909 *
Residuals 63 1995.87 31.68
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
2、评估假设检验
单因素多元方差分析有两个前提假设,一个是多元正态性,一个是方差—协方差矩阵同质性。
(1)多元正态性
第一个假设即指因变量组合成的向量服从一个多元正态分布。可以用Q-Q图来检验该假设条件。
center <- colMeans(y)
n <- nrow(y)
p <- ncol(y)
cov <- cov(y)
d <- mahalanobis(y, center, cov)
coord <- qqplot(qchisq(ppoints(n), df = p), d, main = "QQ
Plot Assessing Multivariate Normality",
ylab = "Mahalanobis D2")
abline(a = 0, b = 1)
identify(coord$x, coord$y, labels = row.names(UScereal))
如果所有的点都在直线上,则满足多元正太性。
2、方差—协方差矩阵同质性即指各组的协方差矩阵相同,通常可用Box’s M检验来评估该假设
3、检测多元离群点
library(mvoutlier)
outliers <- aq.plot(y)
outliers
数据准备
多元方差分析( multivariate analysis of variance ,MANOVA),亦称为多变量方差分析,即表示多元数据的方差分析,是一元方差分析的推广。作为一个多变量过程,多元方差分析在有两个或多个因变量时使用,并且通常后面是分别涉及各个因变量的显着性检验。
当因变量(结果变量)不止一个时,可用多元方差分析(MANOVA)对它们同时进行分析。
结果解读:可以看出v1,v2和v3在nitrogen之间存在很大的不同(P值均小于0.05)。
单因素多元方差分析有两个前提假设,一个是多元正态性,一个是方差—协方差矩阵同质性。
第一个假设即指因变量组合成的向量服从一个多元正态分布。可以用Q-Q图来检验该假设条
件。
方差—协方差矩阵同质性即指各组的协方差矩阵相同,通常可用Box’s M检验来评估该假设。
最后,还可以使用mvoutlier包中的ap.plot()函数来检验多元离群点。
如果多元正态性或者方差—协方差均值假设都不满足,又或者你担心多元离群点,那么可以
考虑用稳健或非参数版本的 MANOVA检验。稳健单因素 MANOVA可通过 rrcov包中的
Wilks.test()函数实现。vegan包中的adonis()函数则提供了非参数MANOVA的等同形式。
稳健检验对离群点和违反MANOVA假设的情况不敏感,结果说明在nitrogen的两个水平下,v1、v2、v3的值均存在显著不同。
参考资料:
可以说这些组的方差是同质的。另一方面,我们也可以比较Barlett的K-squared和查表的chi-square值,使用函数 qchisq,其输入包括alpha值和自由度>qchisq(0.950, 3)
[1] 7.814728
显然,这里的chi-squared 大于上面计算的Bartlett的K-squared,因此我们接受null hypothesis H0,即方差都是同质的。