ANOVA y regresión lineal son equivalentes cuando los dos modelos prueban contra las mismas hipótesis y usan una codificación idéntica. Los modelos difieren en su objetivo básico: ANOVA se preocupa principalmente por presentar diferencias entre las medias de las categorías en los datos, mientras que la regresión lineal se preocupa principalmente por estimar una respuesta media de la muestra y un asociado .σ2
Algo aforístico se puede describir ANOVA como una regresión con variables ficticias. Podemos ver fácilmente que este es el caso en la regresión simple con variables categóricas. Una variable categórica se codificará como una matriz indicadora (una matriz que 0/1
depende de si un sujeto es parte de un grupo dado o no) y luego se usará directamente para la solución del sistema lineal descrito por una regresión lineal. Veamos un ejemplo con 5 grupos. En aras del argumento, supondré que la media de group1
es igual a 1, la media de group2
es igual a 2, ... y la media de group5
es igual a 5. (uso MATLAB, pero exactamente lo mismo es equivalente en R.)
rng(123); % Fix the seed
X = randi(5,100,1); % Generate 100 random integer U[1,5]
Y = X + randn(100,1); % Generate my response sample
Xcat = categorical(X); % Treat the integers are categories
% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);
% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate']
% LRbetas =
% 1.0953 0.7468 1.6398 3.1368 3.9565
% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans))
% ans =
% 2.6645e-15
Como se puede ver en este escenario, los resultados fueron exactamente los mismos. La mínima diferencia numérica se debe a que el diseño no está perfectamente equilibrado, así como al procedimiento de estimación subyacente; El ANOVA acumula errores numéricos un poco más agresivamente. A ese respecto encajamos una intercepción LRbetas(1)
,; podríamos ajustar un modelo sin intercepción, pero eso no sería una regresión lineal "estándar". (Sin embargo, los resultados estarían aún más cerca de ANOVA en ese caso).
La estadística (una razón de las medias) en el caso de ANOVA y en el caso de regresión lineal también será la misma para el ejemplo anterior:F
abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13
Esto se debe a que los procedimientos prueban la misma hipótesis pero con diferentes palabras: ANOVA verificará cualitativamente si " la relación es lo suficientemente alta como para sugerir que no hay agrupación no plausible ", mientras que la regresión lineal verificará cualitativamente si " la relación es lo suficientemente alta como para sugerir solo una intercepción el modelo es posiblemente inadecuado ".
(Esta es una interpretación algo libre de la " posibilidad de ver un valor igual o mayor al observado bajo la hipótesis nula " y no pretende ser una definición de libro de texto).
Volviendo a la parte final de su pregunta sobre " ANOVA no le dice nada sobre los coeficientes del modelo lineal (suponiendo que las medias no sean iguales ") Espero que ahora pueda ver que el ANOVA, en el caso de que su diseño es lo suficientemente simple / equilibrado , le dice todo lo que haría un modelo lineal. Los intervalos de confianza para los medios grupales serán los mismos que tiene para suβ, etc. Claramente, cuando uno comienza a agregar múltiples covariables en su modelo de regresión, un ANOVA unidireccional simple no tiene una equivalencia directa. En ese caso, se aumenta la información utilizada para calcular la respuesta media de la regresión lineal con información que no está directamente disponible para un ANOVA unidireccional. Creo que uno puede volver a expresar las cosas en términos de ANOVA una vez más, pero es principalmente un ejercicio académico.
Un artículo interesante sobre el tema es el documento de Gelman de 2005 titulado: Análisis de varianza: por qué es más importante que nunca . Algunos puntos importantes planteados; No apoyo totalmente el documento (creo que personalmente me alineo mucho más con el punto de vista de McCullach) pero puede ser una lectura constructiva.
Como nota final: la trama se complica cuando tienes modelos de efectos mixtos . Allí tiene diferentes conceptos sobre lo que puede considerarse una molestia o información real con respecto a la agrupación de sus datos. Estos problemas están fuera del alcance de esta pregunta, pero creo que son dignos de asentir.
Permítanme ponerle un poco de color a la idea de que OLS con regresores categóricos ( codificados de forma simulada ) es equivalente a los factores en ANOVA. En ambos casos hay niveles (o grupos en el caso de ANOVA).
En la regresión OLS, lo más habitual es tener también variables continuas en los regresores. Estos modifican lógicamente la relación en el modelo de ajuste entre las variables categóricas y la variable dependiente (DC). Pero no hasta el punto de hacer que el paralelo sea irreconocible.
Según el
mtcars
conjunto de datos, primero podemos visualizar el modelolm(mpg ~ wt + as.factor(cyl), data = mtcars)
como la pendiente determinada por la variable continuawt
(peso) y las diferentes intersecciones que proyectan el efecto de la variable categóricacylinder
(cuatro, seis u ocho cilindros). Es esta última parte la que forma un paralelo con un ANOVA unidireccional.Vamos a verlo gráficamente en la subtrama a la derecha (las tres subtramas a la izquierda se incluyen para la comparación de lado a lado con el modelo ANOVA discutido inmediatamente después):
Cada motor de cilindro tiene un código de color, y la distancia entre las líneas ajustadas con diferentes intersecciones y la nube de datos es el equivalente a la variación dentro del grupo en un ANOVA. Observe que las intersecciones en el modelo OLS con una variable continua (
weight
) no son matemáticamente iguales que el valor de las diferentes medias dentro del grupo en ANOVA, debido al efecto deweight
las diferentes matrices del modelo (ver más abajo): la mediampg
para coches de 4 cilindros, por ejemplo, estámean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, mientras que la intersección OLS "línea base" (que refleja por convencióncyl==4
(menor a mayor números de pedido en R)) es marcadamente diferente:summary(fit)$coef[1] #[1] 33.99079
. La pendiente de las líneas es el coeficiente de la variable continuaweight
.Si intentas suprimir el efecto de
weight
enderezar mentalmente estas líneas y devolverlas a la línea horizontal, terminarás con el diagrama ANOVA del modeloaov(mtcars$mpg ~ as.factor(mtcars$cyl))
en las tres subtramas a la izquierda. Elweight
regresor ahora está fuera, pero la relación de los puntos a las diferentes intersecciones se conserva aproximadamente: simplemente estamos girando en sentido antihorario y extendiendo las parcelas previamente superpuestas para cada nivel diferente (de nuevo, solo como un dispositivo visual para "ver" la conexión; no como una igualdad matemática, ¡ya que estamos comparando dos modelos diferentes!).Cada nivel en el factor20 x
cylinder
es separado, y las líneas verticales representan los residuos o el error dentro del grupo: la distancia desde cada punto en la nube y la media de cada nivel (línea horizontal codificada por colores). El gradiente de color nos da una indicación de cuán significativos son los niveles en la validación del modelo: cuanto más agrupados estén los puntos de datos alrededor de su grupo significa, más probable es que el modelo ANOVA sea estadísticamente significativo. La línea negra horizontal alrededor de en todas las parcelas es la media de todos los factores. Los números en el eje son simplemente el número / identificador de marcador de posición para cada punto dentro de cada nivel, y no tienen otro propósito que separar los puntos a lo largo de la línea horizontal para permitir una visualización de trazado diferente a los diagramas de caja.Y es a través de la suma de estos segmentos verticales que podemos calcular manualmente los residuos:
El resultado:
SumSq = 301.2626
yTSS - SumSq = 824.7846
. Comparar con:Exactamente el mismo resultado que probar con un ANOVA el modelo lineal con solo el categórico
cylinder
como regresor:Lo que vemos, entonces, es que los residuos, la parte de la varianza total no explicada por el modelo, así como la varianza son las mismas, ya sea que llame un OLS del tipo
lm(DV ~ factors)
o un ANOVA (aov(DV ~ factors)
): cuando quitamos el modelo de variables continuas terminamos con un sistema idéntico. De manera similar, cuando evaluamos los modelos globalmente o como un ANOVA omnibus (no nivel por nivel), naturalmente obtenemos el mismo valor pF-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.Esto no implica que la prueba de niveles individuales produzca valores p idénticos. En el caso de OLS, podemos invocar
summary(fit)
y obtener:Esto no es posible en ANOVA, que es más una prueba ómnibus. Para obtener estos tipos de evaluaciones de valor , necesitamos ejecutar una prueba de diferencia significativa honesta de Tukey, que intentará reducir la posibilidad de un error de tipo I como resultado de realizar múltiples comparaciones por pares (por lo tanto, " "), lo que resulta en un salida completamente diferente:p
p adjusted
En última instancia, nada es más tranquilizador que echar un vistazo al motor debajo del capó, que no es otro que las matrices del modelo y las proyecciones en el espacio de la columna. En realidad, estos son bastante simples en el caso de un ANOVA:
Esta sería la matriz de modelo ANOVA de una vía con tres niveles (por ejemployij=μi+ϵij μi j i yij
cyl 4
,cyl 6
,cyl 8
), que se resumen como , donde es la media en cada nivel o grupo: cuando Si se agrega el error o residual para la observación del grupo o nivel , obtenemos la observación real DV .Por otro lado, la matriz modelo para una regresión OLS es:
Esta es de la forma con una sola intersección y dos pendientes ( y ) cada una para una variable continua diferente, digamos y .yi=β0+β1xi1+β2xi2+ϵi β0 β1 β2
weight
displacement
El truco ahora es ver cómo podemos crear diferentes intersecciones, como en el ejemplo inicial,β0 β1 1 1 1 's en la matriz modelo ANOVA que solo selecciona ejemplos con 4 cilindros. La intersección se desplazará a través de una codificación ficticia para explicar el efecto de y de la siguiente manera:(1),
lm(mpg ~ wt + as.factor(cyl), data = mtcars)
así que eliminemos la segunda pendiente y ceñámonos a la variable continua única originalweight
(en otras palabras, una sola columna además de la columna de unidades en la matriz modelo; la intersección y la pendiente para , ). La columna de 's corresponderá por defecto a la intersección. Una vez más, su valor no es idéntico a la media de ANOVA dentro del grupo , una observación que no debería sorprender comparando la columna de en la matriz del modelo OLS (a continuación) con la primera columna deweight
cyl 4
cyl 4
cyl 6
cyl 8
Ahora, cuando la tercera columna es , sistemáticamente la intersección porEl indica que, como en el caso de la "línea de base", la intercepción en el modelo OLS no es idéntica a la media grupal de los automóviles de 4 cilindros, pero lo refleja, las diferencias entre los niveles en el modelo OLS no son matemáticamente Las diferencias entre grupos en las medias:1 μ~2. ⋅~
Del mismo modo, cuando la cuarta columna es , se agregará un valor fijo a la intersección. La ecuación matricial, por lo tanto, será . Por lo tanto, ir con este modelo al modelo ANOVA es solo una cuestión de deshacerse de las variables continuas y comprender que la intercepción predeterminada en OLS refleja el primer nivel en ANOVA.1 μ~3 yi=β0+β1xi+μ~i+ϵi
fuente
Antoni Parellada y ussr11852 tuvieron muy buena respuesta. Abordaré su pregunta para codificar la perspectiva con
R
.De hecho, podemos
aov
funcionar enR
se puede utilizar igual quelm
. Aquí hay unos ejemplos.Como puede ver, no solo podemos obtener el coeficiente del modelo ANOVA, sino que también podemos usarlo para la predicción, al igual que el modelo lineal.
Si revisamos el archivo de ayuda para la
aov
función, dicefuente
Si tomamos todas las entradas de datos y las organizamos en una sola columna Y, con el resto de las columnas como variables indicadoras 1 {i-data es el elemento de la columna jth en el arreglo anova original} entonces tomando una regresión lineal simple de Y en en cualquiera de las otras columnas (por ejemplo, la columna B), debe obtener la misma estadística de prueba DF, SS, MS y F que en su problema ANOVA.
Por lo tanto, ANOVA se puede "tratar como" Regresión lineal escribiendo los datos con variables binarias. También tenga en cuenta que el coeficiente de regresión para, digamos, una regresión de Y en B debería ser el mismo que el promedio. de la columna B, calculada con los datos originales.
fuente