Come prevedere un singolo valore utilizzando un modello di regressione in r
Per adattare un modello di regressione lineare in R, possiamo utilizzare la funzione lm() , che utilizza la seguente sintassi:
model <- lm(y ~ x1 + x2, data=df)
Possiamo quindi utilizzare la seguente sintassi per utilizzare il modello per prevedere un singolo valore:
predict(model, newdata = new)
Gli esempi seguenti mostrano come prevedere un singolo valore utilizzando modelli di regressione adattati in R.
Esempio 1: prevedere utilizzando un modello di regressione lineare semplice
Il codice seguente mostra come adattare un modello di regressione lineare semplice in R:
#create data df <- data. frame (x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit simple linear regression model model <- lm(y ~ x, data=df)
E possiamo usare il seguente codice per prevedere il valore di risposta per una nuova osservazione:
#define new observation new <- data. frame (x=c(5)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 25.36364
Il modello prevede che questa nuova osservazione avrà un valore di risposta di 25.36364 .
Esempio 2: previsione utilizzando un modello di regressione lineare multipla
Il codice seguente mostra come adattare un modello di regressione lineare multipla in R:
#create data df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
E possiamo usare il seguente codice per prevedere il valore di risposta per una nuova osservazione:
#define new observation new <- data.frame(x1=c(5), x2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 26.17073
Il modello prevede che questa nuova osservazione avrà un valore di risposta di 26.17073 .
Potenziali errori nella previsione di nuovi valori
L’errore più comune che potresti riscontrare quando provi a prevedere un nuovo valore è quando il set di dati utilizzato per adattare il modello di regressione non ha gli stessi nomi di colonna della nuova osservazione che stai tentando di prevedere .
Ad esempio, supponiamo di adattare il seguente modello di regressione lineare multipla in R:
#createdata df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
Successivamente, supponiamo di provare a utilizzare il modello per prevedere il valore di risposta per questa nuova osservazione:
#define new observation new <- data.frame(x_1=c(5), x_2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) Error in eval(predvars, data, env): object 'x1' not found
Abbiamo ricevuto un errore perché i nomi delle colonne della nuova osservazione (x_1, x_2) non corrispondono ai nomi delle colonne del frame di dati originale (x1, x2) che abbiamo utilizzato per adattare il modello di regressione.
Risorse addizionali
Come eseguire una regressione lineare semplice in R
Come eseguire la regressione lineare multipla in R
Come creare una trama residua in R