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 Rset 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 amsulla regressione tra mpge 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, hpeam dal set di dati mtcars. Qui prendiamo mpgcome variabile di risposta, hpcome variabile predittiva e amcome 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 hpcome variabile predittore e mpgcome variabile di risposta tenendo conto dell'interazione tra ame 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.