28 votos

¿Cuál es la mejor manera de tratar la heteroscedasticidad?

Tengo un gráfico de valores residuales de un modelo lineal en función de los valores ajustados donde la heteroscedasticidad es muy clara. Sin embargo, no estoy seguro de cómo debo proceder ahora porque, según tengo entendido, esta heteroscedasticidad hace que mi modelo lineal no sea válido. (¿Es eso cierto?)

  1. Utilizar el ajuste lineal robusto utilizando el rlm() función del MASS porque aparentemente es robusto a la heteroscedasticidad.

  2. Como los errores estándar de mis coeficientes son erróneos debido a la heteroscedasticidad, ¿puedo simplemente ajustar los errores estándar para que sean robustos a la heteroscedasticidad? Utilizando el método publicado en Stack Overflow aquí: Regresión con errores estándar corregidos por heterocedasticidad

¿Cuál sería el mejor método para tratar mi problema? Si utilizo la solución 2, ¿la capacidad de predicción de mi modelo será completamente inútil?

La prueba de Breusch-Pagan confirmó que la varianza no es constante.

Mis residuos en función de los valores ajustados tienen este aspecto:

https://i.gyazo.com/9407a829a168492b31dfa3d1dd33a21d.png

(versión ampliada)

32voto

Ben Bolker Puntos 8729

Es una buena pregunta, pero creo que es una pregunta equivocada. Tu figura deja claro que tienes un problema más fundamental que la heteroscedasticidad, es decir, tu modelo tiene una no linealidad que no has tenido en cuenta. Muchos de los problemas potenciales que puede tener un modelo (no linealidad, interacciones, valores atípicos, heteroscedasticidad, no normalidad) pueden hacerse pasar por otros. No creo que haya una regla rígida, pero en general sugeriría tratar los problemas en el orden siguiente

outliers > nonlinearity > heteroscedasticity > non-normality

(por ejemplo, no se preocupe por la no linealidad antes de comprobar si hay observaciones extrañas que están sesgando el ajuste; no se preocupe por la normalidad antes de preocuparse por la heteroscedasticidad).

En este caso particular, yo ajustaría un modelo cuadrático y ~ poly(x,2) (o poly(x,2,raw=TRUE) o y ~ x + I(x^2) y ver si hace desaparecer el problema.

12voto

Sean Hanley Puntos 2428

Enumero una serie de métodos para tratar la heteroscedasticidad (con R ejemplos) aquí: Alternativas al ANOVA unidireccional para datos heterocedásticos . Muchas de esas recomendaciones serían menos ideales porque usted tiene una sola variable continua, en lugar de una variable categórica de varios niveles, pero de todos modos sería bueno leerlas como una visión general.

Para su situación, los mínimos cuadrados ponderados (quizás combinados con una regresión robusta si sospecha que puede haber algunos valores atípicos) serían una opción razonable. También sería bueno utilizar los errores de sándwich de Huber-White.

He aquí algunas respuestas a sus preguntas específicas:

  1. La regresión robusta es una opción viable, pero, en mi opinión, sería mejor si se combinara con ponderaciones. Si no le preocupa que la heteroscedasticidad se deba a los valores atípicos, podría utilizar simplemente una regresión lineal normal con ponderaciones. Tenga en cuenta que la varianza puede ser muy sensible a los valores atípicos, y sus resultados pueden ser sensibles a las ponderaciones inadecuadas, por lo que lo que podría ser más importante que el uso de la regresión robusta para el modelo final sería el uso de una medida robusta de la dispersión para estimar las ponderaciones. En el hilo enlazado, utilizo 1/IQR, por ejemplo.
  2. Los errores estándar son erróneos debido a la heteroscedasticidad. Se pueden ajustar los errores estándar con el estimador de sándwich de Huber-White. Eso es lo que hace @GavinSimpson en el hilo de SO enlazado.

La heteroscedasticidad no hace que su modelo lineal sea totalmente inválido. Afecta principalmente a los errores estándar. Si no hay valores atípicos, los métodos de mínimos cuadrados deberían permanecer insesgados. Por lo tanto, la precisión predictiva de punto las predicciones no deberían verse afectadas. La cobertura de intervalo las predicciones se verían afectadas si no se modelara la varianza en función de $X$ y utilizarlo para ajustar la anchura de sus intervalos de predicción condicionados a $X$ .

1voto

Cargar el sandwich package y calcular la matriz var-cov de su regresión con var_cov<-vcovHC(regression_result, type = "HC4") (leer el manual de sandwich ). Ahora con el lmtest package utilizar el coeftest función:

coeftest(regression_result, df = Inf, var_cov)

-1voto

Jack Wills Puntos 13

¿Cómo es la distribución de sus datos? ¿Se parece en algo a una curva de campana? Por el tema, ¿puede tener una distribución normal en absoluto? La duración de una llamada telefónica puede no ser negativa, por ejemplo. Entonces, en ese caso concreto de las llamadas, una distribución gamma lo describe bien. Y con la gamma se puede utilizar el modelo lineal generalizado (glm en R)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X