Modelo mixto con 1 observación por nivel

12

Estoy ajustando un modelo de efectos aleatorios con glmeralgunos datos comerciales. El objetivo es analizar el desempeño de ventas por distribuidor, teniendo en cuenta la variación regional. Tengo las siguientes variables:

  • distcode: ID de distribuidor, con aproximadamente 800 niveles
  • region: ID geográfica de nivel superior (norte, sur, este, oeste)
  • zone: geografía de nivel medio anidada dentro region, alrededor de 30 niveles en total
  • territory: geografía de bajo nivel anidada dentro de zoneunos 150 niveles

Cada distribuidor opera en un solo territorio. La parte difícil es que se trata de datos resumidos, con un punto de datos por distribuidor. Así que tengo 800 puntos de datos y estoy tratando de ajustar (al menos) 800 parámetros, aunque de manera regular.

He ajustado un modelo de la siguiente manera:

glmer(ninv ~ 1 + (1|region/zone/territory) + (1|distcode), family=poisson)

Esto se ejecuta sin problemas, aunque imprime una nota:

El número de niveles de un factor de agrupación para los efectos aleatorios es igual a n, el número de observaciones

¿Es esto algo sensato? Obtengo estimaciones finitas de todos los coeficientes, y el AIC tampoco es irrazonable. Si pruebo un poisson GLMM con el enlace de identidad, el AIC es mucho peor, por lo que el enlace de registro es al menos un buen punto de partida.

Si trazo los valores ajustados frente a la respuesta, obtengo lo que es esencialmente un ajuste perfecto, lo que supongo es porque tengo un punto de datos por distribuidor. ¿Es razonable o estoy haciendo algo completamente tonto?

Esto está utilizando datos de un mes. Puedo obtener datos para varios meses y obtener alguna replicación de esa manera, pero tendría que agregar nuevos términos para la variación de mes a mes y las posibles interacciones, ¿correcto?


ETA: volví a ejecutar el modelo anterior, pero sin una familydiscusión (por lo tanto, solo un LMM gaussiano en lugar de un GLMM). Ahora lmerme dio el siguiente error:

Error en (función (fr, FL, inicio, REML, detallado): el número de niveles de un factor de agrupación para los efectos aleatorios debe ser menor que el número de observaciones

Entonces supongo que no estoy haciendo algo sensato, ya que cambiar la familia no debería tener un efecto. Pero la pregunta ahora es, ¿por qué funcionó en primer lugar?

Hong Ooi
fuente

Respuestas:

4

Estoy totalmente en desacuerdo con la práctica de ajustar un modelo mixto donde tienes el mismo número de grupos que las observaciones por motivos conceptuales, no hay "grupos", y también por motivos computacionales, ya que tu modelo debería tener problemas identificables, en el caso de un LMM al menos. (Yo trabajo con LMM exclusivamente, también puede ser un poco parcial. :))

yN(Xβ,ZDZT+σ2I)Dσ2

(No entiendo lo que quiere decir con AIC "razonable". AIC debería ser computable en el sentido de que a pesar de sobreajustar sus datos, todavía está "computando algo").

glmeryXβXβ>0glmer

La parte conceptual: creo que esto es un poco más "subjetivo" pero también un poco más directo. Usas Mixed Eff. modelos porque esencialmente reconoció que hay una estructura relacionada con el grupo en su error. Ahora, si tiene tantos grupos como puntos de datos, no hay una estructura para ver. Cualquier desviación en su estructura de error de LM que pueda atribuirse a una "agrupación" ahora se atribuye al punto de observación específico (y, como tal, termina con un modelo sobreajustado).

En general, los grupos de observación única tienden a ser un poco desordenados; para citar D.Bates de la lista de correo r-sig-mixed-models:

Creo que encontrará que hay muy poca diferencia en los ajustes del modelo si incluye o excluye los grupos de observación única. Pruébalo y verás.

usεr11852
fuente
1
Es cierto que esto no parece tener mucho sentido en un entorno lineal, pero puede ser muy útil en la regresión de Poisson. Veré si puedo localizar un enlace a algo que dijo Ben Bolker sobre el tema (es uno de los desarrolladores de lme4, junto con Doug Bates).
David J. Harris
Sí, como dije, probablemente soy parcial pensando principalmente en LMM y estaba comentando sobre la "parte conceptual". Sin glmerembargo, expliqué por qué esto funciona en el caso de todos modos (a pesar de no estar demasiado contento con eso).
usεr11852
8

Un nivel por observación puede ser muy útil si ha dispersado los datos de conteo como su variable de respuesta. Es equivalente a decir que espera que sus datos de recuento provengan de una distribución lognormal de Poisson, es decir, que el parámetro lambda de su distribución Poisson no está completamente determinado por las variables predictoras en su modelo y que las posibilidades se distribuyen de manera lognormal.

Ben Bolker, uno de los desarrolladores de lme4, ha hecho dos ejemplos de tutoriales con esto. El primero, con datos sintéticos, entra un poco más en detalles. Puedes encontrar un pdf aquí . También realizó un análisis exploratorio de datos con datos reales que involucran búhos (código pdf y R disponible desde aquí ).

David J. Harris
fuente
1
+1. Estoy de acuerdo con lo que dices Como mencioné en mi publicación original: " sobre-dispersión (...) es cómo" eludir "el tema de tener tantos grupos como observaciones " . Gracias por hacer un mejor punto de glmeruna manera conceptual.
usεr11852
1
Gracias por los enlaces! Después de leerlos y de mirar más de cerca los valores ajustados de mi modelo, tengo una mejor idea de lo que está sucediendo. De hecho, no creo que lo que está haciendo Ben sea apropiado para mi análisis. Está usando una variable de nivel de observación para permitir la sobredispersión, por lo que es como un efecto molesto. Para mi análisis, distributores un efecto de interés: quiero ver cómo se desempeñan los distribuidores en relación entre sí al permitir otras variables. Por lo tanto, es más comparable a un modelo mixto lineal convencional, donde el sobreajuste es una preocupación genuina.
Hong Ooi