¿Qué es el Análisis de la Varianza Multivariante?

El Análisis de la Varianza Multivariante (MANOVA) es una extensión del análisis de la varianza (ANOVA) que permite cubrir los casos dónde hay más de una variable dependiente que no pueden ser combinadas de manera simple. Por tanto, frente al ANOVA o la regresión, en dónde tendríamos la siguiente formulación del modelo:

y ~ x1 + x2 + ... + xn
en el MANOVA el modelo quedaría formulado de la siguiente forma:

y1 + y2 + ... + yk ~ x1 + x2 + ... + xn
Por lo general, se ha aceptado la terminología de MANOVA para referirse a análisis que contemplan varias variables respuesta continuas, pero sin prestar mucha atención a si las variables explicativas son continuas o discretas. En un sentido estricto, si las variables explicativas fueran continuas tendríamos una regresión múltiple multivariante, si fueran discretas estaríamos ante un caso de análisis de la varianza multifactorial multivariante, y si fueran de ambos tipos el análisis sería del tipo ANCOVA multivariante. Sin embargo, es muy común referirse a cualquiera de ellos como MANOVA, y está será la terminología usada aquí. El MANOVA, al igual que los modelos lineales, se basa en una serie de supuestos:

  • las muestras son independientes entre sí,
  • cada variable tiene una distribución normal,
  • en conjunto las k variables dependientes tienen la distribución normal conjunta,
  • las varianzas de cada variable son iguales al compararlas de tratamiento a tratamiento,
  • las correlaciones entre dos variables de un mismo grupo son las mismas de grupo a grupo.

Estos supuestos son muchas veces difíciles de cumplir. Por ello, una alternativa eficiente al MANOVA es el MANOVA semi-paramétrico, que utiliza las distancias entre cada par de observaciones para obtener una matriz de distancia sobre la que luego se calcula la significación de las variables explicativas con simulaciones de Monte Carlo. Este tipo de enfoque es muy similar al del escalamiento multidimensional no métrico (NMDS), en tanto que la partición de la varianza se hace utilizando una matriz de distancias, por lo que ambos métodos se complementan bastante bien.

Hay que considerar que la interpretación de un MANOVA (ya sea paramétrico o semi-paramétrico) es bastante más compleja que la de un ANOVA o una regresión. A los efectos de este caso de estudio, solamente estaremos interesados en saber si las variables independientes explican la composición de especies o no, pero difícilmente sabremos cómo a no ser qué utilicemos otras técnicas complementarias como el NMDS. Por tanto, al realizar un análisis de este tipo nos fijaremos en la significación de los coeficientes y, cuando sea posible, en la variabilidad explicada por cada una de las variables explicativas.

En R hay, por lo menos, dos funciones que nos permiten ajustar un MANOVA. Una función se encuentra dentro del paquete stats y ajusta MANOVAs paramétricos, por lo que es importante evaluar la idoneidad del modelo mirando los residuos. La otra, dentro del paquete vegan, permite ajustar MANOVAs semi-paramétricos, por lo que la evaluación de los residuos del modelo no es necesaria.


Caso de estudio: Factores que afectan la composición florística de bosques tropicales en los Altos de Chiapas, México

(Fuente: Cayuela et al. (2006). Journal of Applied Ecology 43: 1172-1181)
Se quiere investigar qué factores afectan la composición florística de árboles en parcelas de 0.1 hectáreas muestreadas en distintos tipos de bosques tropicales en los Altos de Chiapas, México (bosque de pino-encino (POF), bosque de encino (OF), bosque de pino (PF), bosque nublado (MCF) y bosque transicional a selva baja caducifolia (TF)). El tipo de bosque es el resultado de factores ambientales (clima) y el uso humano.

Para este caso de estudio se han seleccionado las 86 especies más abundantes sobre un total de 231 en 204 parcelas de 0.1 hectáreas. Para cada especie tenemos su abundancia total en cada parcela. Queremos construir un modelo en dónde la composición de árboles quede en función por un lado del tipo de bosque y, por otro, de la productividad (medida a partir del índice de vegetación NDVI obtenido de una imagen Landsat del año 2000) y la elevación.

Objetivos:

  1. Ver si las variables explicativas (tipo de bosque, productividad y elevación) explican la variabilidad en la composición de especies.
  2. Comparar los resultados del MANOVA paramétrico y el MANOVA semi-paramétrico.
  3. Ver cómo se comportan los residuos en el caso de un modelo paramétrico.

Documentación


Datos

Los datos para realizar este ejercicio constan de:

  • Matriz de parcelas (filas) x especies (columnas), disponible aquí.
  • Variables ambientales para las parcelas muestreadas (tipo de bosque, productividad y elevación), disponible aquí.

Puedes descargarte los datos a tu ordenador, copiarlos al portapapeles o leerlos directamente de la dirección URL (esto último es lo más recomendable para que el código sea reproducible desde cualquier ordenador) utilizando en todos los casos la función read.table().


Pasos a seguir

  1. Lee los datos y salva la matriz de parcelas x especies en un objeto llamado bio y la matriz de variables ambientales en un objeto llamado env. Explora los datos con las funciones edit() y str(). ¿Cuáles serían las variables respuesta? ¿Has identificado las variables explicativas? ¿Son todas ellas numéricas? ¿Hay algún dato faltante?
  2. Busca una función en R que permita ajustar el MANOVA y otra que permita ajustar el MANOVA semi-paramétrico (busca con help.search()). Nota: las dos funciones que vamos a usar en esta sesión se encuentran dentro del paquete stats y vegan respectivamente. Mira los ejemplos de ambas funciones para saber cómo has de introducir los datos y el tipo de resultados que puedes esperar.
  3. Ajusta el modelo MANOVA con ambas funciones y asígnalo a dos objetos llamados manova1 y manova2 respectivamente.
  4. Usa la función summary() para obtener los resultados de ambos modelos ¿Cambian mucho los resultados de un modelo a otro?
  5. Explora la estructura de dichos objetos con la función str(). ¿Qué tipo de objetos son? ¿Qué información contienen?
  6. Explora los residuos del MANOVA paramétrico. Concretamente genera en el mismo dispositivo gráfico dos gráficas: un histograma de los residuos y una gráfica de los residuos frente a los valores estimados por el modelo.
  7. ¿Cuál es la variabilidad explicada por cada una de las variables? NOTA: El MANOVA paramétrico no nos proporciona esta información, pero el MANOVA semi-paramétrico lo hace a través de la tabla ANOVA y las Sumas de Cuadrados.

Código


#1. Lectura de los archivos
dirweb1<-"http://archivos-para-subir.googlegroups.com/web/Ejemplo6-MANOVA-bio.txt?gda=1IAa20kAAAABV8DnKdep7DQec7BaKTDeBPd28HfO9xOunBjA2suhaJ6IEOiK_0OxuhSPY5Vei4huVeXSx4RxS8jZwRxQen_vhAioEG5q2hncZWbpWmJ7IQ"
bio<-read.table(url(dirweb1), header=T, sep="\t")
dirweb2<-"http://archivos-para-subir.googlegroups.com/web/Ejemplo6-MANOVA-env.txt?gda=NGK620kAAAABV8DnKdep7DQec7BaKTDeaue8KNoVd8Bv-0CJ6ZtUV32e1Yh2n-Hw8AgLoYTWPoiVe4_ieyH6onjq9H3_yT21hAioEG5q2hncZWbpWmJ7IQ"
env<-read.table(url(dirweb2), header=T, sep="\t")


#2. test paramétrico MANOVA
manova1 <- manova(as.matrix(bio) ~ env$Forest.type+env$Productivity+env$Elevation)

#3. Comprobación visual de algunos requisitos del modelo: normalidad y homocedasticidad
par(mfcol=c(1,2))
hist(residuals(manova1))
plot(manova1$residuals~manova1$fitted.values)


#4. Test no paramétrico MANOVA
library(vegan)
manova2 <- adonis(as.matrix(bio) ~ env$Forest.type+env$Productivity+env$Elevation)
manova2