Utilizamos 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 Análisis de Covarianza también llamado ANCOVA.
Ejemplo
Considere el R
conjunto de datos incorporado 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 la potencia en caballos (hp
). Estudiamos el efecto del valor deam
en la regresión entre mpg
y hp
. Se realiza utilizando la aov()
función seguida de la anova()
función para comparar las regresiones múltiples.
La entrada de datos
Crear una trama de datos que contiene los campos mpg
, hp
y am
del conjunto de datosmtcars
. Aquí tomamosmpg
como variable de respuesta, hp
como variable predictiva y am
como variable categórica.
input <- mtcars[,c("am","mpg","hp")]
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 tomandohp
como variable predictiva ympg
como variable de respuesta teniendo en cuenta la interacción entre am
y hp
.
Modelo con interacción entre variable categórica y variable predictiva
Crear modelo de regresión1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
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 la potencia del caballo como el tipo de transmisión tienen un efecto significativo en 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 predictiva
Crea el modelo de regresión2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
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 la potencia del caballo como el tipo de transmisión tienen un efecto significativo en millas por galón, ya que el valor p en ambos casos es menor a 0.05.
Comparación de dos modelos
Ahora podemos comparar los dos modelos para concluir si la interacción de las variables es realmente insignificante. Para esto usamos la anova()
función.
anova(result1,result2)
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 la potencia del caballo y el tipo de transmisión no es significativa. Por lo tanto, el kilometraje por galón dependerá de manera similar de la potencia del automóvil en el modo de transmisión automática y manual.