Modelado de regresión con varianza desigual

22

Me gustaría ajustar un modelo lineal (lm) donde la varianza de los residuos depende claramente de la variable explicativa.

La forma en que sé hacer esto es usando glm con la familia Gamma para modelar la varianza, y luego poner su inverso en los pesos en la función lm (ejemplo: http://nitro.biosci.arizona.edu/r/chapter31 .pdf )

Me preguntaba:

  • ¿Es esta la única técnica?
  • ¿Qué otros enfoques son relevantes?
  • ¿Qué paquetes / funciones de R son relevantes para este tipo de modelado? (aparte de glm, lm)
Tal Galili
fuente
44
¿Dónde se utilizan glm()a continuación, lm()en el capítulo que hace referencia. Me parece que glm()es todo lo que se requiere y se usa allí, pero es posible que me haya perdido algo. Puede probar los mínimos cuadrados generalizados ( gls()en nlme ) que permiten estimar los pesos para controlar el tipo de heterocedasticidad que menciona; ver ?varFuncy seguir los enlaces desde allí. IIRC varFixed()hará lo que quieras.
Restablecer a Monica - G. Simpson
En 'proc mixed', 'subject = option' produce una estructura de bloques en diagonal en la matriz de varianza-covarianza de los residuos. ¿Ha considerado así un modelo mixto lineal general para alterar la hipótesis de la homocedasticidad?
ocram
Gracias Gavin, he examinado un poco estas funciones. Dos preguntas: 1) ¿Recomiendas algún tutorial? (Sospecho que el libro MASS puede ser un buen comienzo, pero me preguntaba si usted lo pensó). 2) Dado que el modelo que estoy ajustando es un OLS simple, ¿qué tan diferente será la estimación al usar la función gls? (Si recuerdo correctamente, no mucho, ya que debería estar trabajando en una aproximación iterativa de primer grado, pero no estoy del todo seguro de esto). Ocram: gracias, pero no uso SAS.
Tal Galili
Aquí en la Sección 2 se explica cómo hacer esto en STATA para la regresión de cuasipoisson : stata.com/meeting/fnasug08/gutierrez.pdf . Si alguien pudiera sugerir una forma de recodificar esto en R, estaría muy agradecido.
a11msp

Respuestas:

17

Las píldoras contra el "efecto megáfono" incluyen (entre otras):

  1. Y
  2. Utilice la regresión ponderada de mínimos cuadrados . En este enfoque, cada observación tiene su propio factor de varianza. Esta respuesta muestra cómo usar WLSR en R (por ejemplo, si la varianza de los residuos es proporcional a las medias, puede proporcionar como pesos la inversa del valor ajustado en el modelo no ponderado).
  3. Usa una regresión robusta. La función rlm()en el MASSpaquete de R hace la estimación M, que se supone que es robusta a la desigualdad de las varianzas.

Edición de julio de 2017: Parece que los mínimos cuadrados generalizados, como se sugiere en la respuesta de Greg Snow, es una de las mejores opciones.

gui11aume
fuente
2
Partí de esta respuesta para una pregunta de desbordamiento de pila .
Peter Ellis
1
Podría valer la pena señalar también la opción de mínimos cuadrados generalizados, usando gls con la opción de pesos establecida en varFixed () - para mí esta parece ser una de las opciones más elegantes ...
Tom Wenseleers
@TomWenseleers Estoy de acuerdo. Tenga en cuenta que esta es la respuesta de Greg Snow.
gui11aume
9

Con el paquete gamlss puede modelar la distribución de errores de la respuesta como una función lineal, no lineal o suave de las variables explicativas. Este parece ser un enfoque bastante poderoso (aprendí mucho sobre todas las posibilidades que pueden surgir durante el proceso de selección del modelo) y todo se explica muy bien en varias publicaciones (incluidos libros) a las que se hace referencia en el enlace anterior.

ils
fuente
8

La glsfunción en el nlmepaquete para R puede estimar la regresión y la relación con la varianza al mismo tiempo. Vea el weightsargumento y el segundo ejemplo en la página de ayuda.

Greg Snow
fuente