Accéder au contenu principal
Documents
Partager
LinkedIn
Facebook
Twitter
Copy
R DocumentationEntrée de données en RGestion des données en RGraphiques en RR InterfaceStatistiques en R

Diagnostics de régression dans R

L'ouvrage de John Fox, intitulé Overview of Regression Diagnostics (Aperçu des diagnostics de régression), constitue une excellente étude des diagnostics de régression. Dr. Le progiciel Fox's car fournit des utilitaires avancés pour la modélisation de la régression.

# Assume that we are fitting a multiple linear regression
#
on the MTCARS data
library(car)
fit <- lm(mpg~disp+hp+wt+drat, data=mtcars)

Cet exemple n'a qu'une valeur indicative. Nous ne tiendrons pas compte du fait qu'il ne s'agit peut-être pas d'une bonne façon de modéliser cet ensemble particulier de données !

Valeurs aberrantes

# Assessing Outliers
outlierTest(fit) # Bonferonni p-value for most extreme obs
qqPlot(fit, main="QQ Plot") #qq plot for studentized resid

leveragePlots(fit) # leverage plots

graphique de l'effet de levier 

Observations influentes

# Influential Observations
# added variable plots
av.Plots(fit)
# Cook's D plot
# identify D values > 4/(n-k-1)
cutoff <- 4/((nrow(mtcars)-length(fit$coefficients)-2))
plot(fit, which=4, cook.levels=cutoff)
# Influence Plot

influencePlot(fit, id.method="identify", main="Influence Plot", sub="Circle size is proportial to Cook's Distance" )

parcelles av Diagramme de Cook placette d'influence 

Non-normalité

# Normality of Residuals
# qq plot for studentized resid
qqPlot(fit, main="QQ Plot")
# distribution of studentized residuals
library(MASS)
sresid <- studres(fit)
hist(sresid, freq=FALSE,
   main="Distribution of Studentized Residuals")
xfit<-seq(min(sresid),max(sresid),length=40)
yfit<-dnorm(xfit)

lines(xfit, yfit)

graphique qq histogramme des résidus studentisés 

Variance d'erreur non constante

# Evaluate homoscedasticity
# non-constant error variance test
ncvTest(fit)
# plot
studentized residuals vs. fitted values
spreadLevelPlot(fit)

écart par rapport aux niveaux

Multi-collinéarité

# Evaluate Collinearity
vif(fit) # variance inflation factors
sqrt(vif(fit)) > 2 # problem?

Non-linéarité

# Evaluate Nonlinearity
# component + residual plot
crPlots(fit)
# Ceres plots
ceresPlots(fit)

parcelle des composants et des résidus Graphiques Ceres 

Non-indépendance des erreurs

# Test for Autocorrelated Errors
durbinWatsonTest(fit)

Aide supplémentaire au diagnostic

La fonction gvlma( ) du package gvlma effectue une validation globale des hypothèses du modèle linéaire ainsi que des évaluations séparées de l'asymétrie, de l'aplatissement et de l'hétéroscédasticité.

# Global test of model assumptions
library(gvlma)
gvmodel <- gvlma(fit)

summary(gvmodel)

Aller plus loin

Si vous souhaitez approfondir les diagnostics de régression, deux livres écrits par John Fox peuvent vous aider : Analyse de régression appliquée et modèles linéaires généralisés (2e édition) et Un compagnon R et S-Plus pour la régression appliquée.