Nous utilisons l'analyse de régression pour créer des modèles qui décrivent l'effet de la variation des variables prédictives sur la variable de réponse. Parfois, si nous avons une variable catégorielle avec des valeurs comme Oui / Non ou Masculin / Féminin, etc., l'analyse de régression simple donne plusieurs résultats pour chaque valeur de la variable catégorielle. Dans un tel scénario, nous pouvons étudier l'effet de la variable catégorielle en l'utilisant avec la variable prédictive et en comparant les lignes de régression pour chaque niveau de la variable catégorielle. Une telle analyse est appelée analyse de covariance également appelée ANCOVA.
Exemple
Considérez l' R
ensemble de données intégré mtcars
. Nous y observons que le champ am
représente le type de transmission (automatique ou manuelle). Il s'agit d'une variable catégorielle avec les valeurs 0 et 1. La valeur en miles par gallon ( mpg
) d'une voiture peut également en dépendre en plus de la valeur de la puissance en chevaux ( hp
). Nous étudions l'effet de la valeur de am
sur la régression entre mpg
et hp
. Cela se fait en utilisant la aov()
fonction suivie de la anova()
fonction pour comparer les régressions multiples.
Les données d'entrée
Créer une trame de données contenant les champs mpg
, hp
et am
de l'ensemble de données mtcars
. Ici, nous prenons mpg
comme variable de réponse, hp
comme variable prédictive et am
comme variable catégorielle.
input <- mtcars[,c("am","mpg","hp")]
head(input)
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant:
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
Analyse ANCOVA
Nous créons un modèle de régression en prenant hp
comme variable prédictive et mpg
comme variable de réponse en tenant compte de l'interaction entre am
et hp
.
Modèle avec interaction entre variable catégorielle et variable prédictive
Créer un modèle de régression1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant:
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
Ce résultat montre que la puissance en chevaux et le type de transmission ont un effet significatif sur les miles par gallon car la valeur p dans les deux cas est inférieure à 0,05. Mais l'interaction entre ces deux variables n'est pas significative car la valeur de p est supérieure à 0,05.
Modèle sans interaction entre variable catégorielle et variable prédictive
Créer le modèle de régression2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant:
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
Ce résultat montre que la puissance en chevaux et le type de transmission ont un effet significatif sur les miles par gallon car la valeur p dans les deux cas est inférieure à 0,05.
Comparaison de deux modèles
Maintenant, nous pouvons comparer les deux modèles pour conclure si l'interaction des variables est vraiment insignifiante. Pour cela, nous utilisons la anova()
fonction.
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
Comme la valeur de p est supérieure à 0,05, nous concluons que l'interaction entre la puissance en chevaux et le type de transmission n'est pas significative. Ainsi, le kilométrage par gallon dépendra de manière similaire de la puissance en chevaux de la voiture en mode de transmission automatique et manuelle.