R - Regressione multipla

La regressione multipla è un'estensione della regressione lineare in relazione tra più di due variabili. Nella relazione lineare semplice abbiamo un predittore e una variabile di risposta, ma nella regressione multipla abbiamo più di una variabile predittore e una variabile di risposta.

L'equazione matematica generale per la regressione multipla è:

y = a + b1x1 + b2x2 +...bnxn

Di seguito la descrizione dei parametri utilizzati:

  • y è la variabile di risposta.

  • a, b1, b2...bn sono i coefficienti.

  • x1, x2, ...xn sono le variabili predittive.

Creiamo il modello di regressione utilizzando il lm()funzione in R. Il modello determina il valore dei coefficienti utilizzando i dati di input. Successivamente possiamo prevedere il valore della variabile di risposta per un dato insieme di variabili predittive utilizzando questi coefficienti.

Funzione lm ()

Questa funzione crea il modello di relazione tra il predittore e la variabile di risposta.

Sintassi

La sintassi di base per lm() funzione nella regressione multipla è -

lm(y ~ x1+x2+x3...,data)

Di seguito la descrizione dei parametri utilizzati:

  • formula è un simbolo che presenta la relazione tra la variabile di risposta e le variabili predittive.

  • data è il vettore su cui verrà applicata la formula.

Esempio

Dati in ingresso

Considera il set di dati "mtcars" disponibile nell'ambiente R. Fornisce un confronto tra diversi modelli di auto in termini di chilometraggio per gallone (mpg), cilindrata ("disp"), potenza del motore ("hp"), peso dell'auto ("wt") e alcuni altri parametri.

L'obiettivo del modello è stabilire la relazione tra "mpg" come variabile di risposta con "disp", "hp" e "wt" come variabili predittive. A questo scopo creiamo un sottoinsieme di queste variabili dal set di dati mtcars.

input <- mtcars[,c("mpg","disp","hp","wt")]
print(head(input))

Quando eseguiamo il codice sopra, produce il seguente risultato:

mpg   disp   hp    wt
Mazda RX4          21.0  160    110   2.620
Mazda RX4 Wag      21.0  160    110   2.875
Datsun 710         22.8  108     93   2.320
Hornet 4 Drive     21.4  258    110   3.215
Hornet Sportabout  18.7  360    175   3.440
Valiant            18.1  225    105   3.460

Crea un modello di relazione e ottieni i coefficienti

input <- mtcars[,c("mpg","disp","hp","wt")]

# Create the relationship model.
model <- lm(mpg~disp+hp+wt, data = input)

# Show the model.
print(model)

# Get the Intercept and coefficients as vector elements.
cat("# # # # The Coefficient Values # # # ","\n")

a <- coef(model)[1]
print(a)

Xdisp <- coef(model)[2]
Xhp <- coef(model)[3]
Xwt <- coef(model)[4]

print(Xdisp)
print(Xhp)
print(Xwt)

Quando eseguiamo il codice sopra, produce il seguente risultato:

Call:
lm(formula = mpg ~ disp + hp + wt, data = input)

Coefficients:
(Intercept)         disp           hp           wt  
  37.105505      -0.000937        -0.031157    -3.800891  

# # # # The Coefficient Values # # # 
(Intercept) 
   37.10551 
         disp 
-0.0009370091 
         hp 
-0.03115655 
       wt 
-3.800891

Crea equazione per modello di regressione

Sulla base dei valori di intercetta e coefficiente di cui sopra, creiamo l'equazione matematica.

Y = a+Xdisp.x1+Xhp.x2+Xwt.x3
or
Y = 37.15+(-0.000937)*x1+(-0.0311)*x2+(-3.8008)*x3

Applica equazione per prevedere nuovi valori

Possiamo utilizzare l'equazione di regressione creata sopra per prevedere il chilometraggio quando viene fornita una nuova serie di valori per spostamento, potenza e peso.

Per un'auto con disp = 221, hp = 102 e wt = 2,91 il chilometraggio previsto è -

Y = 37.15+(-0.000937)*221+(-0.0311)*102+(-3.8008)*2.91 = 22.7104