R - Análisis de covarianza
Usamos el análisis de regresión para crear modelos que describen el efecto de la variación en las variables predictoras sobre la variable de respuesta. A veces, si tenemos una variable categórica con valores como Sí / No o Masculino / Femenino, etc. El análisis de regresión simple da múltiples resultados para cada valor de la variable categórica. En tal escenario, podemos estudiar el efecto de la variable categórica usándola junto con la variable predictora y comparando las líneas de regresión para cada nivel de la variable categórica. Tal análisis se denomina comoAnalysis of Covariance también llamado como ANCOVA.
Ejemplo
Considere el conjunto de datos R integrado mtcars. En él observamos que el campo "am" representa el tipo de transmisión (automática o manual). Es una variable categórica con valores 0 y 1. El valor de millas por galón (mpg) de un automóvil también puede depender de él además del valor de los caballos de fuerza ("hp").
Estudiamos el efecto del valor de "am" sobre la regresión entre "mpg" y "hp". Se hace usando elaov() función seguida por la anova() función para comparar las regresiones múltiples.
Los datos de entrada
Cree un marco de datos que contenga los campos "mpg", "hp" y "am" del conjunto de datos mtcars. Aquí tomamos "mpg" como la variable de respuesta, "hp" como la variable predictora y "am" como la variable categórica.
input <- mtcars[,c("am","mpg","hp")]
print(head(input))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
am mpg hp
Mazda RX4 1 21.0 110
Mazda RX4 Wag 1 21.0 110
Datsun 710 1 22.8 93
Hornet 4 Drive 0 21.4 110
Hornet Sportabout 0 18.7 175
Valiant 0 18.1 105
Análisis ANCOVA
Creamos un modelo de regresión tomando "hp" como variable predictora y "mpg" como variable de respuesta teniendo en cuenta la interacción entre "am" y "hp".
Modelo con interacción entre variable categórica y variable predictora
# Get the dataset.
input <- mtcars
# Create the regression model.
result <- aov(mpg~hp*am,data = input)
print(summary(result))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 77.391 1.50e-09 ***
am 1 202.2 202.2 23.072 4.75e-05 ***
hp:am 1 0.0 0.0 0.001 0.981
Residuals 28 245.4 8.8
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Este resultado muestra que tanto los caballos de fuerza como el tipo de transmisión tienen un efecto significativo en las millas por galón, ya que el valor p en ambos casos es menor a 0.05. Pero la interacción entre estas dos variables no es significativa ya que el valor p es más de 0.05.
Modelo sin interacción entre variable categórica y variable predictora
# Get the dataset.
input <- mtcars
# Create the regression model.
result <- aov(mpg~hp+am,data = input)
print(summary(result))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Df Sum Sq Mean Sq F value Pr(>F)
hp 1 678.4 678.4 80.15 7.63e-10 ***
am 1 202.2 202.2 23.89 3.46e-05 ***
Residuals 29 245.4 8.5
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Este resultado muestra que tanto los caballos de fuerza como el tipo de transmisión tienen un efecto significativo en las millas por galón, ya que el valor p en ambos casos es menor que 0.05.
Comparación de dos modelos
Ahora podemos comparar los dos modelos para concluir si la interacción de las variables es verdaderamente insignificante. Para esto usamos elanova() función.
# Get the dataset.
input <- mtcars
# Create the regression models.
result1 <- aov(mpg~hp*am,data = input)
result2 <- aov(mpg~hp+am,data = input)
# Compare the two models.
print(anova(result1,result2))
Cuando ejecutamos el código anterior, produce el siguiente resultado:
Model 1: mpg ~ hp * am
Model 2: mpg ~ hp + am
Res.Df RSS Df Sum of Sq F Pr(>F)
1 28 245.43
2 29 245.44 -1 -0.0052515 6e-04 0.9806
Como el valor p es mayor que 0.05, concluimos que la interacción entre caballos de fuerza y tipo de transmisión no es significativa. Por lo tanto, el millaje por galón dependerá de manera similar de los caballos de fuerza del automóvil en el modo de transmisión automática y manual.