Saltar al contenido principal
Documentos
Gestión de datos en RGráficos en RR DocumentaciónInterfaz REstadística en RIntroducción de datos en R

Diagnóstico de regresión en R

Una excelente revisión de los diagnósticos de regresión se ofrece en el acertadamente llamado Panorama de los Diagnósticos de Regresión, de John Fox . Dr. El paquete coche de Fox proporciona utilidades avanzadas para el modelado de regresión.

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

Este ejemplo es sólo expositivo. Ignoraremos el hecho de que puede que no sea una buena forma de modelar este conjunto de datos concreto.

Valores atípicos

# 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

trama de apalancamiento 

Observaciones influyentes

# 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" )

parcelas av Gráfico D de Cook parcela de influencia 

No normalidad

# 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)

Gráfico qq histograma de residuos estudiados 

Varianza de error no constante

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

diferencial vs. niveles

Multicolinealidad

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

No linealidad

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

componente más parcela residual Parcelas Ceres 

No independencia de los errores

# Test for Autocorrelated Errors
durbinWatsonTest(fit)

Ayuda adicional para el diagnóstico

La función gvlma( ) del paquete gvlma, realiza una validación global de los supuestos del modelo lineal, así como evaluaciones separadas de la asimetría, la curtosis y la heteroscedasticidad.

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

summary(gvmodel)

Ir más lejos

Si quieres profundizar en los diagnósticos de regresión, dos libros escritos por John Fox pueden ayudarte: Análisis de regresión aplicado y modelos lineales generalizados (2ª ed) y An R and S-Plus companion to applied regression.

Aprende lo esencial de R

Domina los fundamentos del análisis de datos en R, incluyendo vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
Empieza a aprender R gratis