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' Rensemble de données intégré mtcars. Nous y observons que le champ amrepré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 amsur la régression entre mpget 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, hpet amde l'ensemble de données mtcars. Ici, nous prenons mpgcomme variable de réponse, hpcomme variable prédictive et amcomme 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 hpcomme variable prédictive et mpgcomme variable de réponse en tenant compte de l'interaction entre amet 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.