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)
glm()
a continuación,lm()
en el capítulo que hace referencia. Me parece queglm()
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?varFunc
y seguir los enlaces desde allí. IIRCvarFixed()
hará lo que quieras.Respuestas:
Las píldoras contra el "efecto megáfono" incluyen (entre otras):
rlm()
en elMASS
paquete 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.
fuente
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.
fuente
La
gls
función en elnlme
paquete para R puede estimar la regresión y la relación con la varianza al mismo tiempo. Vea elweights
argumento y el segundo ejemplo en la página de ayuda.fuente