Usiamo l'analisi di regressione per creare modelli che descrivono l'effetto della variazione nelle variabili predittive sulla variabile di risposta. A volte se abbiamo una variabile categoriale con valori come Sì / No o Maschio / Femmina ecc., La semplice analisi di regressione fornisce risultati multipli per ciascun valore della variabile categoriale. In tale scenario, possiamo studiare l'effetto della variabile categoriale utilizzandola insieme alla variabile predittore e confrontando le linee di regressione per ciascun livello della variabile categoriale. Tale analisi è definita come Analisi della covarianza chiamata anche ANCOVA.
Esempio
Si consideri il R
set di dati integrato mtcars
. In esso osserviamo che il campoam
rappresenta il tipo di trasmissione (automatica o manuale). È una variabile categoriale con valori 0 e 1. Il valore delle miglia per gallone ( mpg
) di un'auto può anche dipendere da essa oltre al valore della potenza del cavallo ( hp
). Studiamo l'effetto del valore di am
sulla regressione tra mpg
e hp
. Viene fatto utilizzando la aov()
funzione seguita dalla anova()
funzione per confrontare le regressioni multiple.
L'inserimento dei dati
Creazione di un frame di dati contenente i campi mpg
, hp
eam
dal set di dati mtcars
. Qui prendiamo mpg
come variabile di risposta, hp
come variabile predittiva e am
come variabile categoriale.
input <- mtcars[,c("am","mpg","hp")]
head(input)
Quando eseguiamo il codice sopra, produce il seguente risultato:
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
Analisi ANCOVA
Creiamo un modello di regressione prendendo hp
come variabile predittore e mpg
come variabile di risposta tenendo conto dell'interazione tra am
e hp
.
Modello con interazione tra variabile categoriale e variabile predittiva
Crea modello di regressione 1
result1 <- aov(mpg~hp*am,data=mtcars)
summary(result1)
Quando eseguiamo il codice sopra, produce il seguente risultato:
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
Questo risultato mostra che sia la potenza del cavallo che il tipo di trasmissione hanno un effetto significativo sulle miglia per gallone poiché il valore p in entrambi i casi è inferiore a 0,05. Ma l'interazione tra queste due variabili non è significativa in quanto il valore p è superiore a 0,05.
Modello senza interazione tra variabile categoriale e variabile predittiva
Crea il modello di regressione2
result2 <- aov(mpg~hp+am,data=mtcars)
summary(result2)
Quando eseguiamo il codice sopra, produce il seguente risultato:
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
Questo risultato mostra che sia la potenza del cavallo che il tipo di trasmissione hanno un effetto significativo sulle miglia per gallone poiché il valore p in entrambi i casi è inferiore a 0,05.
Confronto tra due modelli
Ora possiamo confrontare i due modelli per concludere se l'interazione delle variabili è veramente insignificante. Per questo usiamo la anova()
funzione.
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
Poiché il valore p è maggiore di 0,05, concludiamo che l'interazione tra potenza del cavallo e tipo di trasmissione non è significativa. Quindi il chilometraggio per gallone dipenderà in modo simile dalla potenza del cavallo dell'auto sia in modalità di trasmissione automatica che manuale.