R fornisce un supporto completo per la regressione lineare multipla. Gli argomenti seguenti sono forniti in ordine crescente di complessità.
Montaggio del modello
# Multiple Linear Regression Example
fit <- lm(y ~ x1 + x2 + x3, data=mydata)
summary(fit) # show results
Grafici diagnostici
I grafici diagnostici forniscono controlli per eteroscedasticità, normalità e osservazioni influenti.,
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional 4 graphs/page
plot(fit)
fare clic per visualizzare
Per una valutazione più completa del modello di adattamento vedere diagnostica regressione o gli esercizi in questo corso interattivo sulla regressione.
Confronto dei modelli
È possibile confrontare i modelli nidificati con la funzione anova (). Il seguente codice fornisce un test simultaneo che x3 e x4 aggiungono alla previsione lineare sopra e oltre x1 e x2.
# compare models
fit1 <- lm(y ~ x1 + x2 + x3 + x4, data=mydata)
fit2 <- lm(y ~ x1 + x2)
anova(fit1, fit2)
Convalida incrociata
Puoi eseguire la convalida incrociata K-Fold usando il cv.lm () funzione nel pacchetto DAAG.,
# K-fold cross-validation
library(DAAG)
cv.lm(df=mydata, fit, m=3) # 3 fold cross-validation
Somma l’MSE per ogni piega, dividi per il numero di osservazioni e prendi la radice quadrata per ottenere l’errore standard validato incrociato di stima.
È possibile valutare il ritiro R2 tramite convalida incrociata K-fold. Usando la funzione crossval () dal pacchetto bootstrap, fai quanto segue:
Selezione variabile
La selezione di un sottoinsieme di variabili predittive da un insieme più grande (ad esempio, selezione graduale) è un argomento controverso. È possibile eseguire la selezione graduale (avanti, indietro, entrambi) utilizzando la funzione stepAIC () dal pacchetto di massa., stepAIC () esegue la selezione graduale del modello con AIC esatto.
In alternativa, è possibile eseguire la regressione di tutti i sottoinsiemi utilizzando la funzione leaps( ) dal pacchetto leaps. Nel seguente codice nbest indica il numero di sottoinsiemi di ogni dimensione da segnalare. Qui, i dieci migliori modelli saranno riportati per ogni dimensione del sottoinsieme (1 predittore, 2 predittori, ecc.).
fare clic per visualizzare
Altre opzioni per plot( ) sono bic, Cp e adjr2. Altre opzioni per tracciare con
subset( ) sono bic, cp, adjr2 e rss.,
Importanza relativa
Il pacchetto relaimpo fornisce misure di importanza relativa per ciascuno dei predittori nel modello. Vedere aiuto (calc.relimp) per i dettagli sulle quattro misure di importanza relativa fornite.
fare clic per visualizzare
Miglioramenti grafici
Il pacchetto car offre un’ampia varietà di grafici per la regressione, inclusi grafici variabili aggiunti e grafici diagnostici e Scatterplots migliorati.
Andando oltre
Regressione non lineare
Il pacchetto nls fornisce funzioni per la regressione non lineare., Vedere Regressione non lineare di John Fox e minimi quadrati non lineari per una panoramica. Strumenti statistici di Huet e colleghi per la regressione non lineare: una guida pratica con esempi S-PLUS e R è un prezioso libro di riferimento.
Regressione robusta
Ci sono molte funzioni in R per aiutare con una regressione robusta. Ad esempio, è possibile eseguire una regressione robusta con la funzione rlm( ) nel pacchetto MASS. John Fox (chi altro?) La regressione robusta fornisce una buona panoramica di partenza. Il sito web di calcolo statistico UCLA ha esempi di regressione robusti.,
Il pacchetto robusto fornisce una libreria completa di metodi robusti, inclusa la regressione. Il pacchetto robustbase fornisce anche statistiche robuste di base, inclusi i metodi di selezione del modello. E David Olive ha fornito una dettagliata revisione online delle statistiche robuste applicate con il codice R di esempio.
Per praticare
Questo corso di machine learning in R include esercizi di regressione multipla e validazione incrociata.