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.