Quant500 Academy

6. Diagnóstico de residuos y heterocedasticidad

Nivel 7: Diagnóstico Estadístico Riguroso

Rara vez estamos seguros de haber especificado bien el modelo, y ya hemos visto que el R cuadrado puede ser artificialmente alto o bajo con independencia de la especificación. De ahí la necesidad de contrastes de diagnóstico. Los supuestos más críticos son los de UR.3 y UR.4: varianza constante, ausencia de autocorrelación y normalidad.

Antes de nada, una sutileza fundamental: los residuos no son los errores. Los errores son inobservables; los residuos son lo que queda tras proyectar Y sobre el espacio de los regresores. Su matriz de varianzas y covarianzas resulta ser la varianza del error multiplicada por la identidad menos la matriz de proyección (la llamada matriz sombrero). La consecuencia es que los residuos pueden tener varianzas distintas entre sí aunque los errores verdaderos tengan todos la misma varianza: la varianza de los valores ajustados es menor cerca de la media y mayor en los extremos.

Gráficos de diagnóstico. La forma más directa de examinar la adecuación del modelo es visualizar los residuos: frente a los valores ajustados, frente a la variable explicativa, y mirar su histograma, su diagrama de caja y su gráfico Q-Q. Si no hay violaciones de UR.2 ni de UR.3, los gráficos no deben revelar ningún patrón; el histograma y el Q-Q deberían parecer aproximadamente normales para que se cumpla UR.4. Un Q-Q representa los cuantiles de los datos frente a los de una distribución teórica: si los datos vienen de esa distribución, los puntos forman aproximadamente una recta.

import statsmodels.api as sm
import scipy.stats as stats
from matplotlib import pyplot as plt

fig = sm.qqplot(modelo.resid.values, stats.t, distargs=(6,), fit=True, line='45')
plt.show()

Como no hay garantía de haber elegido la forma funcional correcta, los gráficos de residuos son una gran pista sobre lo que se nos ha escapado. Transformar variables puede aliviar el problema: si hay no linealidades, primero hay que resolverlas y solo después comprobar la varianza constante; transformar Y ataca sobre todo los problemas del término de error, mientras que transformar X ataca sobre todo la no linealidad. A veces transformar Y arregla la no linealidad pero estropea la normalidad, y otras veces transformar X no sirve de nada.

Heterocedasticidad. Si la varianza del error condicionada a X es la misma para todas las observaciones, los residuos son homocedásticos; si no, son heterocedásticos. Las consecuencias son:

Correcciones posibles: tomar logaritmos, cambiar de método (por ejemplo mínimos cuadrados ponderados, que asigna pesos distintos a cada observación), o usar los errores estándar robustos de White, que dejan intactos los coeficientes.

Contrastes. Goldfeld-Quandt divide la muestra en dos subconjuntos ordenados por una explicativa conocida y compara sus varianzas residuales mediante una F; exige que la varianza sea función monótona de esa variable y no distingue entre heterocedasticidad y un problema de especificación. Breusch-Pagan regresa el residuo al cuadrado sobre las explicativas y contrasta si ese coeficiente es nulo; el estadístico es N por el R cuadrado de la regresión auxiliar, con distribución chi cuadrado. White es más general porque admite efectos no lineales (cuadrados y productos cruzados), aunque pierde potencia con muchos regresores.

import statsmodels.stats.diagnostic as sm_diagnostic
print(sm_diagnostic.het_breuschpagan(modelo.resid, modelo.model.exog))
print(sm_diagnostic.het_white(modelo.resid, modelo.model.exog))

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.