Utilizamos el análisis de regresión para crear modelos que describan el efecto de la variación de 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 este caso, podemos estudiar el efecto de la variable categórica utilizándola junto con la variable predictora y comparando las líneas de regresión para cada nivel de la variable categórica. Este tipo de análisis se denomina análisis de covarianza o ANCOVA.
Ejemplo
Considere la R
conjunto de datos 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 coche también puede depender de él además del valor de la potencia ( hp
). Estudiamos el efecto del valor de am
sobre la regresión entre mpg
y hp
. Para ello se utiliza la función aov()
seguida de la función anova()
para comparar las regresiones múltiples.
Datos de entrada
Crear un marco de datos que contenga los campos mpg
, hp
y am
del conjunto de datos mtcars
. Aquí tomamos mpg
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, se 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 predictiva 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 predictiva
Crear modelo de regresión1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
Cuando ejecutamos el código anterior, se 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 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 inferior a 0,05. Pero la interacción entre estas dos variables no es significativa ya que el valor p es superior a 0,05.
Modelo sin interacción entre variable categórica y variable predictiva
Crear el modelo de regresión2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
Cuando ejecutamos el código anterior, se 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 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 inferior 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 ello utilizamos el 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 superior a 0,05, concluimos que la interacción entre la potencia y el tipo de transmisión no es significativa. Así pues, el kilometraje por galón dependerá de forma similar de la potencia del coche tanto en modo de transmisión automática como manual.