Regresión múltiple multivariante en R

68

Tengo 2 variables dependientes (DV), cada una de cuyas puntuaciones puede estar influenciada por el conjunto de 7 variables independientes (IV). Los DV son continuos, mientras que el conjunto de IV consiste en una mezcla de variables codificadas continuas y binarias. (En el siguiente código, las variables continuas se escriben en mayúsculas y las variables binarias en minúsculas).

El objetivo del estudio es descubrir cómo estos DV están influenciados por las variables IV. Propuse el siguiente modelo de regresión múltiple multivariante (MMR):

my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I)

Para interpretar los resultados, llamo dos declaraciones:

  1. summary(manova(my.model))
  2. Manova(my.model)

Las salidas de ambas llamadas se pegan a continuación y son significativamente diferentes. ¿Alguien puede explicar qué enunciado entre los dos debe seleccionarse para resumir adecuadamente los resultados de MMR y por qué? Cualquier sugerencia sería muy apreciada.

Salida usando la summary(manova(my.model))declaración:

> summary(manova(my.model))
           Df   Pillai approx F num Df den Df    Pr(>F)    
c           1 0.105295   5.8255      2     99  0.004057 ** 
d           1 0.085131   4.6061      2     99  0.012225 *  
e           1 0.007886   0.3935      2     99  0.675773    
f           1 0.036121   1.8550      2     99  0.161854    
g           1 0.002103   0.1043      2     99  0.901049    
H           1 0.228766  14.6828      2     99 2.605e-06 ***
I           1 0.011752   0.5887      2     99  0.556999    
Residuals 100                                              
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Salida usando la Manova(my.model)declaración:

> library(car)
> Manova(my.model)

Type II MANOVA Tests: Pillai test statistic
  Df test stat approx F num Df den Df    Pr(>F)    
c  1  0.030928   1.5798      2     99   0.21117    
d  1  0.079422   4.2706      2     99   0.01663 *  
e  1  0.003067   0.1523      2     99   0.85893    
f  1  0.029812   1.5210      2     99   0.22355    
g  1  0.004331   0.2153      2     99   0.80668    
H  1  0.229303  14.7276      2     99 2.516e-06 ***
I  1  0.011752   0.5887      2     99   0.55700    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 
Andrej
fuente

Respuestas:

78

En pocas palabras, esto se debe a que la base-R manova(lm())usa comparaciones de modelos secuenciales para la llamada suma de cuadrados de Tipo I, mientras que carla Manova()de forma predeterminada usa comparaciones de modelos para la suma de cuadrados de Tipo II.

Supongo que está familiarizado con el enfoque de comparación de modelos para ANOVA o análisis de regresión. Este enfoque define estas pruebas comparando un modelo restringido (correspondiente a una hipótesis nula) con un modelo no restringido (correspondiente a la hipótesis alternativa). Si no está familiarizado con esta idea, le recomiendo el excelente "Diseño de experimentos y análisis de datos" de Maxwell & Delaney (2004).

Para el tipo I SS, el modelo restringido en un análisis de regresión para su primer predictor ces el modelo nulo que solo usa el término absoluto: lm(Y ~ 1)donde, Yen su caso, sería el DV multivariado definido por cbind(A, B). El modelo sin restricciones luego agrega predictor c, es decir lm(Y ~ c + 1).

Para el tipo II SS, el modelo sin restricciones en un análisis de regresión para su primera predictor ces el modelo completo que incluye todos los predictores a excepción de sus interacciones, es decir, lm(Y ~ c + d + e + f + g + H + I). El modelo restringido elimina predictor cdel modelo no restringido, es decir, lm(Y ~ d + e + f + g + H + I).

Dado que ambas funciones se basan en diferentes comparaciones de modelos, conducen a resultados diferentes. La pregunta sobre cuál es preferible es difícil de responder, realmente depende de sus hipótesis.

Lo que sigue supone que está familiarizado con la forma en que se calculan las estadísticas de prueba multivariadas, como el seguimiento de Pillai-Bartlett, en función del modelo nulo, el modelo completo y el par de modelos restringidos y no restringidos. Por brevedad, solo considero predictores cy H, y solo pruebo c.

N <- 100                             # generate some data: number of subjects
c <- rbinom(N, 1, 0.2)               # dichotomous predictor c
H <- rnorm(N, -10, 2)                # metric predictor H
A <- -1.4*c + 0.6*H + rnorm(N, 0, 3) # DV A
B <-  1.4*c - 0.6*H + rnorm(N, 0, 3) # DV B
Y <- cbind(A, B)                     # DV matrix
my.model <- lm(Y ~ c + H)            # the multivariate model
summary(manova(my.model))            # from base-R: SS type I
#           Df  Pillai approx F num Df den Df  Pr(>F)    
# c          1 0.06835   3.5213      2     96 0.03344 *  
# H          1 0.32664  23.2842      2     96 5.7e-09 ***
# Residuals 97                                           

A modo de comparación, el resultado de carla Manova()función de usar SS tipo II.

library(car)                           # for Manova()
Manova(my.model, type="II")
# Type II MANOVA Tests: Pillai test statistic
#   Df test stat approx F num Df den Df  Pr(>F)    
# c  1   0.05904   3.0119      2     96 0.05387 .  
# H  1   0.32664  23.2842      2     96 5.7e-09 ***

Ahora verifique manualmente ambos resultados. Construya la matriz de diseño primero y compárela con la matriz de diseño de R.X

X  <- cbind(1, c, H)
XR <- model.matrix(~ c + H)
all.equal(X, XR, check.attributes=FALSE)
# [1] TRUE

Ahora defina la proyección ortogonal para el modelo completo ( , usando todos los predictores). Esto nos da la matriz .Pf=X(XX)1XW=Y(IPf)Y

Pf  <- X %*% solve(t(X) %*% X) %*% t(X)
Id  <- diag(N)
WW  <- t(Y) %*% (Id - Pf) %*% Y

Modelos con y sin restricciones para el tipo SS I más sus proyecciones y , lo que lleva a la matriz .PrIPuIBI=Y(PuIPPrI)Y

XrI <- X[ , 1]
PrI <- XrI %*% solve(t(XrI) %*% XrI) %*% t(XrI)
XuI <- X[ , c(1, 2)]
PuI <- XuI %*% solve(t(XuI) %*% XuI) %*% t(XuI)
Bi  <- t(Y) %*% (PuI - PrI) %*% Y

Modelos con y sin restricciones para SS de tipo II además de sus proyecciones y , lo que lleva a la matriz .PrIPuIIBII=Y(PuIIPPrII)Y

XrII <- X[ , -2]
PrII <- XrII %*% solve(t(XrII) %*% XrII) %*% t(XrII)
PuII <- Pf
Bii  <- t(Y) %*% (PuII - PrII) %*% Y

Traza Pillai-Bartlett para ambos tipos de SS: rastro de .(B+W)1B

(PBTi  <- sum(diag(solve(Bi  + WW) %*% Bi)))   # SS type I
# [1] 0.0683467

(PBTii <- sum(diag(solve(Bii + WW) %*% Bii)))  # SS type II
# [1] 0.05904288

Tenga en cuenta que los cálculos para las proyecciones ortogonales imitan la fórmula matemática, pero son una mala idea numéricamente. Uno realmente debería usar descomposiciones QR o SVD en combinación con crossprod().

lince
fuente
3
Mi gran +1 para esta respuesta bien ilustrada.
chl
Me pregunto que, aunque utilizando la lmfunción, estoy realizando una regresión multivariada solo al especificar más de una variable de respuesta dentro de la lmfunción. Aprendí que al usar la lmfunción cuando mis datos son realmente multivariados dan un resultado erróneo para el error estándar. Pero en este caso my.model <- lm(cbind(A, B) ~ c + d + e + f + g + H + I); va a vcov(my.model )subestimar el error estándar o lmse ajustará de forma inteligente la correlación entre las variables dependientes?
usuario 31466
6

Bueno, todavía no tengo suficientes puntos para comentar sobre la respuesta anterior y es por eso que lo escribo como una respuesta separada, así que por favor, perdónenme. (Si es posible, por favor empujame sobre los 50 puntos de repetición;)

Así que aquí están los 2cents: las pruebas de errores de Tipo I, II y III son esencialmente variaciones debido a que los datos están desequilibrados. (Def. Desequilibrado: no tener el mismo número de observaciones en cada uno de los estratos). Si los datos están equilibrados, las pruebas de error Tipo I, II y III dan exactamente los mismos resultados.

Entonces, ¿qué sucede cuando los datos están desequilibrados?

Considere un modelo que incluye dos factores A y B; Por lo tanto, hay dos efectos principales y una interacción, AB. SS (A, B, AB) indica el modelo completo SS (A, B) indica el modelo sin interacción. SS (B, AB) indica el modelo que no tiene en cuenta los efectos del factor A, y así sucesivamente.

Esta notación ahora tiene sentido. Solo tenlo en cuenta.

SS(AB | A, B) = SS(A, B, AB) - SS(A, B)

SS(A | B, AB) = SS(A, B, AB) - SS(B, AB)

SS(B | A, AB) = SS(A, B, AB) - SS(A, AB)

SS(A | B)     = SS(A, B) - SS(B)

SS(B | A)     = SS(A, B) - SS(A)

Tipo I, también llamada suma de cuadrados "secuencial":

1) SS(A) for factor A.

2) SS(B | A) for factor B.

3) SS(AB | B, A) for interaction AB.

Entonces estimamos el efecto principal de A primero, el efecto de B dado A, y luego estimamos la interacción AB dada A y B (Aquí es donde están los datos desequilibrados, las diferencias entran en acción. A medida que estimamos primero el efecto principal y luego el principal de otro y luego interacción en una "secuencia")

Tipo II:

1) SS(A | B) for factor A.

2) SS(B | A) for factor B.

El tipo II prueba la importancia del efecto principal de A después de B y B después de A. ¿Por qué no hay SS (AB | B, A)? La advertencia es que el método tipo II solo se puede usar cuando ya hemos probado que la interacción sea insignificante. Dado que no hay interacción (SS (AB | B, A) es insignificante) la prueba de tipo II tiene un mejor poder sobre el tipo III

Tipo III:

1) SS(A | B, AB) for factor A.

2) SS(B | A, AB) for factor B.

Así que probamos la interacción durante el tipo II y la interacción fue significativa. Ahora necesitamos usar el tipo III, ya que tiene en cuenta el término de interacción.

Como ya ha dicho @caracal, cuando los datos están equilibrados, los factores son ortogonales, y los tipos I, II y III dan los mismos resultados. Espero que esto ayude !

Divulgación: La mayor parte no es mi propio trabajo. Encontré esta excelente página vinculada y tuve ganas de reducirla aún más para que sea más simple.

Mandarín
fuente