3.3 MANOVA con dos factores de variación
En esta sección suponemos que hay dos factores: A y B. Del factor A podemos distinguir \(a\) niveles, mientras que en el factor B podemos encontrar \(b\) niveles. En cada una de las \(a\cdot b\) posibilidades realizamos \(n\) observaciones de un vector aleatorio \(\bm{y}=(y_1,\ldots,y_d)^\prime{}\). El objetivo será estudiar la influencia de los factores A y B, o de su interacción, en la media del vector \(\bm{y}\). Así, planteamos el siguiente modelo:
\[\bm{y_{ijk}}=\bm{\mu}+\bm{\alpha_i}+\bm{\beta_j}+\bm{\gamma_{ij}}+{\bm{\epsilon_{ijk}}} \qquad i=1,\ldots,a, \ \ j=1,\ldots,b, \ \ k=1,\ldots,n.\] Se asume que \({\bm{\epsilon_{ijk}}}\in N_d(\bm{0},\bm\Sigma)\). El parámetro \(\bm{\mu}\) representa la media global, los parámetros \(\bm{\alpha_i}\) representan el efecto principal del factor A, los parámetros \(\bm{\beta_j}\) representan el efecto principal del factor B y los parámetros \(\bm{\gamma_{ij}}\) representan la interacción de los factores A y B. Además verifican
\[\sum_{i=1}^a \bm{\alpha_i}=\sum_{j=1}^b \bm{\beta_j}=\sum_{i=1}^a \bm{\gamma_{ij}} =\sum_{j=1}^b\bm{\gamma_{ij}}=\bm{0}\]
Este modelo también se puede ver como un caso particular del modelo lineal general multivariante. Las labores de inferencia sobre el modelo se realizan en base a la siguiente descomposición de la variabilidad, mediante lo que llamaremos tabla MANOVA II:
Fuente de variación | Matriz de covarianzas | Grados de libertad |
---|---|---|
Factor A | \({ \bm{H_A} = nb\sum_{i=1}^a\left(\bm{\overline y_{i\bullet\bullet}}-\bm{\overline y_{\bullet\bullet\bullet}}\right) \left(\bm{\overline y_{i\bullet\bullet}}-\bm{\overline y_{\bullet\bullet\bullet}}\right)^\prime{}}\) | \(a-1\) |
Factor B | \({ \bm{H_B} = na\sum_{j=1}^b\left(\bm{\overline y_{\bullet j \bullet}}-\bm{\overline y_{\bullet\bullet\bullet}}\right)\left(\bm{\overline y_{\bullet j \bullet}}-\bm{\overline y_{\bullet\bullet\bullet}}\right)^\prime{}}\) | \(b-1\) |
Interacción | \({ \bm{H_{AB}} = n\sum_{i=1}^a\sum_{j=1}^b\left(\bm{\overline{y}_{ij\bullet}}-\bm{\overline y_{i\bullet\bullet}}-\bm{\overline y_{\bullet j\bullet}}+\bm{\overline y_{\bullet\bullet\bullet}}\right)}\) | \((a-1)(b-1)\) |
\({\times \left(\bm{\overline{y}_{ij\bullet}}-\bm{\overline y_{i\bullet\bullet}} -\bm{\overline y_{\bullet j\bullet}}+\bm{\overline y_{\bullet\bullet\bullet}}\right)^\prime{}}\) | ||
Error | \({ \bm{E} = \sum_{i=1}^a \sum_{j=1}^b \sum_{k=1}^n\left( \bm{y_{ijk}}-\bm{\overline y_{ij\bullet}}\right)\left( \bm{y_{ijk}}-\bm{\overline y_{ij\bullet}}\right)^\prime{}}\) | \(ab(n-1)\) |
Total | \({\sum_{i=1}^a \sum_{j=1}^b \sum_{k=1}^n\left( \bm{y_{ijk}}-\bm{\overline y_{\bullet\bullet\bullet}}\right)\left( \bm{y_{ijk}}-\bm{\overline y_{\bullet\bullet\bullet}}\right)^\prime{}}\) | \(abn-1\) |
La hipótesis relativa a la interacción \(H_{AB}:\bm{\gamma_{ij}}=\bm{0}\ \forall i,j\) se contrasta en base al estadístico
\[\frac{|\bm{E}|}{|\bm{E}+\bm{H_{AB}}|}\in \Lambda\left(d,(a-1)(b-1),ab(n-1)\right).\]
Si se obtiene que la interacción no es significativa, se pasaría a un modelo sin interacción, sobre el cual se pueden cuestionar los efectos principales. Esto sería el proceder habitual dentro de un planteamiento jerárquico, cuestión que ya surgía en los modelos univariantes.
Ejemplo. En una especie de césped, denominada Paspalum, se está investigando el efecto que experimenta al ser infectada con un hongo. Al mismo tiempo se tiene en cuenta la temperatura, dentro de un diseño con cuatro valores diferentes: \(14, 18, 22, 26^oC\). En cada realización del experimento se miden tres variables:
\[\begin{aligned}
y_1&=\mbox{El peso fresco de las raíces (medido en gramos)} \\
y_2&=\mbox{La longitud máxima de las raíces (medida en milímetros)} \\
y_3&=\mbox{El peso fresco de las hojas (medido en gramos)}\end{aligned}\]
Los datos se encuentran en el fichero hongos.txt
. Vamos a contrastar
el efecto del tratamiento con hongos, el efecto de la temperatura y la
posible interacción entre ambos efectos.
> hongos <- read.table(file = "data/hongos.txt", header = TRUE)
> head(hongos)
tratamiento temperatura y1 y2 y3
1 1 1 2.2 23.5 1.7
2 1 1 3.0 27.0 2.3
3 1 1 3.3 24.5 3.2
4 1 1 2.2 20.5 1.5
5 1 1 2.0 19.0 2.0
6 1 1 3.5 23.5 2.9
> y <- cbind(hongos$y1, hongos$y2, hongos$y3)
> tratamiento <- factor(hongos$tratamiento)
> temperatura <- factor(hongos$temperatura)
Empezando por el modelo más general, con ambos efectos principales y la interacción, si se contrasta la interacción resulta:
> m12i = lm(y ~ tratamiento * temperatura)
> m12 = lm(y ~ tratamiento + temperatura)
> anova(m12, m12i, test = "Wilks")
Analysis of Variance Table
Model 1: y ~ tratamiento + temperatura
Model 2: y ~ tratamiento * temperatura
Res.Df Df Gen.var. Wilks approx F num Df den Df Pr(>F)
1 43 12.852
2 40 -3 12.299 0.70548 1.5864 9 92.633 0.1307
> anova(m12, m12i, test = "Roy")
Analysis of Variance Table
Model 1: y ~ tratamiento + temperatura
Model 2: y ~ tratamiento * temperatura
Res.Df Df Gen.var. Roy approx F num Df den Df Pr(>F)
1 43 12.852
2 40 -3 12.299 0.25155 3.3541 3 40 0.02819 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m12, m12i, test = "Hotelling-Lawley")
Analysis of Variance Table
Model 1: y ~ tratamiento + temperatura
Model 2: y ~ tratamiento * temperatura
Res.Df Df Gen.var. Hotelling-Lawley approx F num Df den Df Pr(>F)
1 43 12.852
2 40 -3 12.299 0.38126 1.5533 9 110 0.1384
> anova(m12, m12i, test = "Pillai")
Analysis of Variance Table
Model 1: y ~ tratamiento + temperatura
Model 2: y ~ tratamiento * temperatura
Res.Df Df Gen.var. Pillai approx F num Df den Df Pr(>F)
1 43 12.852
2 40 -3 12.299 0.32058 1.5953 9 120 0.1241
Únicamente el test de Roy produce un nivel crítico algo pequeño, mientras que los otros tests no muestran significación. En consecuencia, se suprime la interacción del modelo. En el modelo sin interacción y con los dos efectos principales, se contrasta la significación de cada uno de los efectos, con los resultados siguientes. Para el tratamiento:
> m1 = lm(y ~ tratamiento)
> anova(m1, m12, test = "Wilks")
Analysis of Variance Table
Model 1: y ~ tratamiento
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Wilks approx F num Df den Df Pr(>F)
1 46 29.940
2 43 -3 12.852 0.064601 23.12 9 99.934 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m1, m12, test = "Roy")
Analysis of Variance Table
Model 1: y ~ tratamiento
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Roy approx F num Df den Df Pr(>F)
1 46 29.940
2 43 -3 12.852 5.1828 74.287 3 43 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m1, m12, test = "Hotelling-Lawley")
Analysis of Variance Table
Model 1: y ~ tratamiento
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Hotelling-Lawley approx F num Df den Df Pr(>F)
1 46 29.940
2 43 -3 12.852 6.6858 29.467 9 119 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m1, m12, test = "Pillai")
Analysis of Variance Table
Model 1: y ~ tratamiento
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Pillai approx F num Df den Df Pr(>F)
1 46 29.940
2 43 -3 12.852 1.4391 13.215 9 129 8.45e-15 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Para la temperatura:
> m2 = lm(y ~ temperatura)
> anova(m2, m12, test = "Wilks")
Analysis of Variance Table
Model 1: y ~ temperatura
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Wilks approx F num Df den Df Pr(>F)
1 44 13.439
2 43 -1 12.852 0.8163 3.0756 3 41 0.03807 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m2, m12, test = "Roy")
Analysis of Variance Table
Model 1: y ~ temperatura
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Roy approx F num Df den Df Pr(>F)
1 44 13.439
2 43 -1 12.852 0.22504 3.0756 3 41 0.03807 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m2, m12, test = "Hotelling-Lawley")
Analysis of Variance Table
Model 1: y ~ temperatura
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Hotelling-Lawley approx F num Df den Df Pr(>F)
1 44 13.439
2 43 -1 12.852 0.22504 3.0756 3 41 0.03807 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> anova(m2, m12, test = "Pillai")
Analysis of Variance Table
Model 1: y ~ temperatura
Model 2: y ~ tratamiento + temperatura
Res.Df Df Gen.var. Pillai approx F num Df den Df Pr(>F)
1 44 13.439
2 43 -1 12.852 0.1837 3.0756 3 41 0.03807 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Por tanto, la temperatura tiene un efecto muy significativo sobre las variables que se están midiendo. El tratamiento también resulta significativo, aunque no es tan notorio. Los niveles críticos de los cuatro test coinciden para el contraste del tratamiento. Este hecho se debe a que hay únicamente dos tratamientos, por lo que la matriz \(H\) asociada al contraste tiene rango uno.