r fournit une prise en charge complète de la régression linéaire multiple. Les sujets ci-dessous sont fournis par ordre de complexité croissante.
ajustement du modèle
# Multiple Linear Regression Example
fit <- lm(y ~ x1 + x2 + x3, data=mydata)
summary(fit) # show results
tracés diagnostiques
Les tracés diagnostiques permettent de vérifier l’hétéroscédasticité, la normalité et les observations influentes.,
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional 4 graphs/page
plot(fit)
cliquez pour afficher
Pour une évaluation plus complète de l’ajustement du modèle voir diagnostic de régression ou les exercices de ce cours interactif sur la régression.
comparaison de Modèles
Vous pouvez comparer des modèles imbriqués avec la fonction anova (). Le code suivant fournit un test simultané que x3 et x4 ajoutent à la prédiction linéaire au-delà de x1 et x2.
# compare models
fit1 <- lm(y ~ x1 + x2 + x3 + x4, data=mydata)
fit2 <- lm(y ~ x1 + x2)
anova(fit1, fit2)
Validation croisée
Vous pouvez effectuer une validation croisée K-Fold à l’aide du cv.fonction LM () dans le paquet DAAG.,
# K-fold cross-validation
library(DAAG)
cv.lm(df=mydata, fit, m=3) # 3 fold cross-validation
additionnez le MSE pour chaque pli, divisez par le nombre d’observations et prenez la racine carrée pour obtenir l’erreur type d’estimation validée croisée.
Vous pouvez évaluer le retrait de R2 via la validation croisée K-fold. En utilisant la fonction crossval () du package bootstrap, procédez comme suit:
sélection de variables
la sélection d’un sous-ensemble de variables prédictives à partir d’un ensemble plus grand (par exemple, la sélection par étapes) est un sujet controversé. Vous pouvez effectuer une sélection par étapes (avant, arrière, les deux) en utilisant la fonction stepAIC () à partir du package de masse., stepAIC () effectue une sélection de modèle par étapes par AIC exact.
Vous pouvez également effectuer une régression sur tous les sous-ensembles à l’aide de la fonction leaps( ) du package leaps. Dans le code suivant nbest indique le nombre de sous-ensembles de chaque taille pour rapport. Ici, les dix meilleurs modèles seront rapportés pour chaque taille de sous-ensemble (1 prédicteur, 2 prédicteurs, etc.).
cliquez pour afficher
d’Autres options pour plot( ) sont des bic, Cp, et adjr2. D’autres options pour tracer avec
subset () sont bic, cp, adjr2 et rss.,
Importance Relative
Le Paquet relaimpo fournit des mesures d’importance relative pour chacun des prédicteurs du modèle. Voir l’aide(calc.relimp) pour plus de détails sur les quatre mesures d’importance relative fournies.
Cliquez pour afficher
améliorations graphiques
le package car offre une grande variété de tracés pour la régression, y compris des tracés de variables ajoutés, ainsi que des diagnostics et des nuages de points améliorés.
aller plus loin
régression non linéaire
Le Paquet nls fournit des fonctions pour la régression non linéaire., Voir régression non linéaire et moindres carrés non linéaires de John Fox pour un aperçu. Les outils statistiques de Huet et de ses collègues pour la régression non linéaire: un Guide pratique avec des exemples S-PLUS et R est un ouvrage de référence précieux.
régression robuste
Il existe de nombreuses fonctions dans R pour faciliter la régression robuste. Par exemple, vous pouvez effectuer une régression robuste avec la fonction rlm( ) dans le package de masse. John Fox (qui d’autre?) Régression robuste fournit un bon aperçu. Le site Web de L’UCLA Statistical Computing contient des exemples de régression robustes.,
Le Paquet robust fournit une bibliothèque complète de méthodes robustes, y compris la régression. Le package robustbase fournit également des statistiques robustes de base, y compris des méthodes de sélection de modèles. Et David Olive a fourni un examen en ligne détaillé des statistiques robustes appliquées avec un exemple de code R.
pour pratiquer
Ce cours en machine learning en R comprend des exercices en régression multiple et en validation croisée.