5/4/2019

El Error o los Residuos de un Modelo de Regresión

Los residuales o residuos de un modelo de regresión son la diferencia entre el valor observado de la variable dependiente y el valor esperado de la misma que se calcula mediante la ecuación de regresión.

\[e = y - \hat{y}\] Donde:

\[\hat{y} = b_0 + b_1X_1 + b_2X_2...+ b_kX_k\]

Supuestos del Modelo de Regresión Lineal

La regresión lineal asume que los datos deben cumplir los siguientes supuestos, que se verifican analizando el patron de distribución de los residuos:

  • Linealidad: La relación entre la variable dependiente (Y) y la variable independiente (X) debe ser lineal
  • Normalidad de los residuos: Los residuos deben tener una distribución normal.
  • Homogeneidad de la varianza de los residuos: Los residuos deben tener una varianza constante (homocedasticidad).
  • Independencia de los residuos: Los residuos deben ser independientes los unos de los otros, no deben estar correlacionados entre sí.

Problemas de violación de los supuestos

Es necesario verificar estos supuestos, los problemas potenciales que pueden aparecer son:

  • No linearidad de la relación entre las variables
  • Heterocedasticidad: Errores no constantes de los residuos
  • Presencia de valores influyentes en los datos, que pueden ser:
    • Outliers o valores atípicos en la variable dependiente (Y)
    • Puntos con alto efecto de palanca: valores extremos en la variable independiente (X)
  • Autocorrelación: Los valores de Y de un caso están relacionados con los valores de Y en otro caso, esto puede ser:
    • Autocorrelación temporal: problemas con series de tiempo
    • Autocorrelación espacial: problemas con casos cercanos o vecinos espacialmente

Diagnóstico de los supuestos de regresión

Para evaluar si un modelo de regresión cumple con los supuestos indicados se utilizan un conjunto de gráficos de residuales:

  • Para linealidad: Residuos vs Valores Esperados de Y
  • Para normalidad: Residuos vs distribución normal (Normal Q-Q)
  • Para homocedasticidad: Scale-location plot
  • Para valores influyentes: Residuales vs leverage plot

Ejemplo:

Como ejemplo vamos a utilizar los datos de la base de datos “dataWorld_q” para el quinquenio 2000-2004 y vamos a calcular inicialmente dos modelos de regresión para la variable “Mortalidad infantil” (childMort) como variable dependiente (Y). Las variables independendientes (X) para cada modelo serán:

  • El % de niños vacunados contra la sarampion (vaccMeas)
  • El ingreso per cápita del país (incomePp)

Modelos de regresión

## 
## ===========================================
##                   Dependent variable:      
##              ------------------------------
##                        childMort           
##                    (1)            (2)      
## -------------------------------------------
## vaccMeas        -2.378***                  
##                  (0.148)                   
##                                            
## incomePp                       -0.001***   
##                                 (0.0002)   
##                                            
## Constant       248.718***      74.493***   
##                 (12.485)        (4.249)    
##                                            
## -------------------------------------------
## Observations       191            193      
## R2                0.576          0.259     
## Adjusted R2       0.574          0.255     
## ===========================================
## Note:         *p<0.05; **p<0.01; ***p<0.001

Gráfico para Diagnóstico de Linealidad

Lo que debemos esperar de este gráfico es que no aparezca un patrón lineal entre los residuales y los valores pronosticados de Y (\(\hat{y}\)). En tal sentido el modelo 1 cumple mejor este supuesto que el modelo 2.

Gráficos para Diagnóstico de Normalidad

Modelo 1                        Modelo2

Diagnóstico de normalidad

Para el primer par de gráficos, en el eje vertical se muestran los residuos estandarizados (\(Z_{e_i} = \frac{e_i}{\sigma_e})\) En este caso la expectativa es que los puntos se acercen lo más posible a la línea oblicua del gráfico que representa una distribución normal. Ambos modelos tienen una distribución de residuos asimétrica, pero la asimetría es más acentuada en el modelo 2.

Como puede verse en los gráficos de densidad, la distribución de los residuales del modelo 1 tiene cierta asimetría positiva, en cambio en el modelo 2 muestra una asimetría positiva mucho más marcada.

Diagnóstico de homocedasticidad

Modelo 1                        Modelo2

En este caso, se espera que la dispersión de la raiz cuadrada de los residuos estandarizados no presente muchas variaciones según los valores esperados de Y. Ambos modelos presentan algunos problemas de heterocedasticidad, pero mucho más acentuados en el caso del modelo 2.

Diagnóstico de Observaciones Influyentes: “Leverage” (palanca) y Valores Atípicos

Modelo 1                        Modelo2

Análisis de casos extremos e influyentes

Los residuos estandarizados nos indican qué tan extremos son los valores o casos en la variable dependiente (Y), por lo general residuos que exceden más de 3 desviaciones estándar indican casos muy atípicos.

Por otro lado el indicador de “leverage”, nos indica qué tanta “palanca” pueden tener los valores de los casos en la(s) variable(s) independientes (X) en la recta de regresion. La influencia o “leverage” mide la proporción de la suma total de cuadrados de la variable dependiente (Y) a la cual contibuye el valor en la variable independiente (X) del caso i. Para un modelo simple se calcula:

\[h_i = \frac{(x_i - \bar{x})^2}{\sum(x-\bar{x})^2} + \frac{1}{N}\]

Análisis de casos extremos e influyente (continuación)

Casos que sean muy extremos en Y y mucha palanca en X son los casos influyentes y pueden causar problemas al modelo. Estos casos se ubican en los extremos inferior y superior derecho del gráfico. Excluir un caso influyente puede afectar sustancialmente el estimado de los coeficientes de regresión. Por otro lado, cuanto mayor es el número de casos que analizamos, menor será la posibilidad de que un caso en particular tenga demasiada influencia (ver: http://www.shodor.org/interactivate/activities/Regression/)

En nuestro ejemplo no parece haber casos que ejerzan demasidada influencia.

##¿Qué hacer si detectamos problemas?

Por lo general cuando nuestros modelos de regresión presentan alguno de los problemas mencionados, ello puede significar que:

  • Algunas variables presentan distribuciones muy asimétricas (problemas de linealidad y normalidad): En estos casos podemos tratar de cambiar la escala de las mismas ascendiendo o descendiendo en la escalera de potencia (utilizando una transformación logarítmica, por ejemplo).
  • Nuestros modelos están sub especificados (problemas de linealidad o de heterocedasticidad): Estamos omitiendo alguna(s) variable(s) importante(s) que puede(n) explicar patrones no lineales o varianzas no homogéneas de los residuales.
  • Casos extremos con valores muy atípicos: un caso particular que no se ajusta al patrón general y que dificulta la estimación de los coeficientes de regresión, en estas situaciones podemos excluir esos casos del análisis, previa justificación.

Posible solución:

Transformar variables e incluir otras variables predictoras:

## 
## ===================================================
##                         Dependent variable:        
##                 -----------------------------------
##                      childMort       log(childMort)
##                    (1)        (2)         (3)      
## ---------------------------------------------------
## vaccMeas        -2.378***               -0.008*    
##                  (0.148)                (0.003)    
##                                                    
## incomePp                   -0.001***               
##                            (0.0002)                
##                                                    
## log10(incomePp)                        -1.230***   
##                                         (0.108)    
##                                                    
## birthSkill                             -0.010***   
##                                         (0.003)    
##                                                    
## Constant        248.718*** 74.493***    9.638***   
##                  (12.485)   (4.249)     (0.333)    
##                                                    
## ---------------------------------------------------
## Observations       191        193         174      
## R2                0.576      0.259       0.798     
## Adjusted R2       0.574      0.255       0.794     
## ===================================================
## Note:                 *p<0.05; **p<0.01; ***p<0.001

Gráficos de análisis de residuos para el modelo 3:

## Warning: `arrange_()` was deprecated in dplyr 0.7.0.
## Please use `arrange()` instead.
## See vignette('programming') for more help

Gráficos de análisis de residuos para el modelo 1:

Gráficos de análisis de residuos para el modelo 2:

Sintaxis para resultados de esta presentación (1)

# Carga de datos
load(url("https://www.dropbox.com/s/fyobx9uswy3qgp3/dataWorld_q.rda?dl=1"))

# Paquetes necesarios
library(ggplot2)
library(stargazer)
library(ggfortify)

# Modelos de regresión 1 y 2
modelo1 <- lm(childMort~vaccMeas, 
         data = dataWorld_q[dataWorld_q$quinq == "2000-2004",])
modelo2 <- lm(childMort~incomePp, 
         data = dataWorld_q[dataWorld_q$quinq == "2000-2004",])

stargazer(modelo1, modelo2, type = "text",
          omit.stat=c("ser","f"), 
          star.cutoffs = c(0.05, 0.01, 0.001))

# Gráficos de diagnóstico para modelos 1 y 2 (comando autoplot del paquete ggfortify)

autoplot(modelo1)
autoplot(modelo2)

Sintaxis para resultados de esta presentación (2)

# Modelo 3 y gráficos de diagnóstico

modelo3 <- lm(log(childMort)~ vaccMeas + log10(incomePp) + birthSkill, 
         data = dataWorld_q[dataWorld_q$quinq == "2000-2004",])

stargazer(modelo1, modelo2, modelo3, type = "text",
          omit.stat=c("ser","f"), 
          star.cutoffs = c(0.05, 0.01, 0.001))

autoplot(modelo3)

Links de utilidad: