Usando lmer para la predicción

18

Hola, tengo dos problemas que suenan como candidatos naturales para modelos multinivel / mixtos, que nunca he usado. El más simple, y que espero probar como introducción, es el siguiente: los datos parecen muchas filas del formulario

x y innergroup outergroup

donde x es una covariable numérica sobre la que quiero retroceder y (otra variable numérica), cada y pertenece a un grupo energético, y cada grupo energético está anidado en un grupo externo (es decir, todas las y en un grupo energético dado pertenecen al mismo grupo externo) . Desafortunadamente, innergroup tiene muchos niveles (muchos miles), y cada nivel tiene relativamente pocas observaciones de y, así que pensé que este tipo de modelo podría ser apropiado. Mis preguntas son

  1. ¿Cómo escribo este tipo de fórmula multinivel?

  2. Una vez que lmer se ajusta al modelo, ¿cómo se puede predecir a partir de él? He ajustado algunos ejemplos de juguetes más simples, pero no he encontrado una función de predicción (). La mayoría de las personas parecen más interesadas en la inferencia que en la predicción con este tipo de técnica. Tengo varios millones de filas, por lo que los cálculos pueden ser un problema, pero siempre puedo reducirlo según corresponda.

No necesitaré hacer el segundo por algún tiempo, pero bien podría comenzar a pensar en ello y jugar con él. Tengo datos similares a los de antes, pero sin x, yy ahora es una variable binomial de la forma . También exhibe mucha sobredispersión, incluso dentro de grupos energéticos. La mayoría de los no son más de 2 o 3 (o menos), por lo que para obtener estimaciones de las tasas de éxito de cada he estado usando el estimador de contracción beta-binomial , donde y(n,nk)nyi(α+kyo)/ /(α+β+norteyo)αβson estimados por MLE para cada grupo energético por separado. Esto ha sido algo adecuado, pero la escasez de datos todavía me afecta, por lo que me gustaría utilizar todos los datos disponibles. Desde una perspectiva, este problema es más fácil ya que no existe una covariable, pero desde la otra la naturaleza binomial lo hace más difícil. ¿Alguien tiene alguna guía de nivel alto (o bajo!)?

grg s
fuente
Verifique que los paréntesis que inserté en la fórmula de contracción estén donde usted los pretendía.
whuber
1
¿No debería ser la segunda parte de su pregunta (con una variable binaria) una pregunta separada?
chl

Respuestas:

17

La expresión de las relaciones de factores usando fórmulas R se deriva de la notación de Wilkinson, donde '*' denota cruces y '/' anidamiento, pero hay algunas particularidades en la forma en que se manejan las fórmulas para los modelos de efectos mixtos, o en general los efectos aleatorios. Por ejemplo, dos efectos aleatorios cruzados pueden representarse como (1|x1)+(1|x2). He interpretado su descripción como un caso de anidamiento, al igual que las clases están anidadas en las escuelas (anidadas en estados, etc.), por lo que lmerse vería una fórmula básica con (a menos que se indique lo contrario, una gaussianfamilia se usa por defecto):

y ~ x + (1|A:B) + (1|A)

donde A y B corresponden a sus factores internos y externos, respectivamente. B está anidado dentro de A, y ambos se tratan como factores aleatorios. En el paquete nlme anterior , esto correspondería a algo como lme(y ~ x, random=~ 1 | A/B). Si A se considerara como un factor fijo, la fórmula debería leerse y ~ x + A + (1|A:B).

Pero vale la pena verificar con mayor precisión las especificaciones de D. Bates para el paquete lme4 , por ejemplo, en su próximo libro de texto, lme4: Modelado de efectos mixtos con R , o los numerosos folletos disponibles en la misma página web. En particular, no es un ejemplo de tales relaciones de anidación en ajuste lineal de efectos mixtos modelos, el paquete lme4 en I . El tutorial de John Maindonald también proporciona una buena visión general: La anatomía de un modelo mixto de análisis, con el paquete de R lme4 . Finalmente, la sección 3 de la viñeta R sobre la implementación de lme4 incluye un ejemplo del análisis de una estructura anidada.

No hay predict()función en lme4(esta función ahora existe, vea el comentario a continuación), y debe calcular usted mismo los valores individuales predichos usando los efectos estimados fijos (ver ?fixef) y aleatorios (ver ?ranef), pero también vea este hilo sobre la falta de función de predicción en lme4 . También puede generar una muestra de la distribución posterior utilizando la mcmcsamp()función. Sin embargo, a veces puede chocar. Consulte la lista de correo sig-me para obtener información más actualizada.

chl
fuente
3
Para actualizar: lme4ahora incluye una función de predicción inside-r.org/packages/cran/lme4/docs/predict.mermod
Bar
Documentación para predic.merMod ahora disponible aquí: rdocumentation.org/packages/lme4/versions/1.1-12/topics/…
DirtStats
10

El paquete ez contiene la función ezPredict (), que obtiene predicciones de modelos más antiguos en los que la predicción se basa únicamente en los efectos fijos. Realmente es solo una envoltura alrededor del enfoque detallado en la wiki de glmm .

Mike Lawrence
fuente
5

Usaría la función "logit.mixed" en Zelig , que es un contenedor para lime4 y hace que sea muy conveniente hacer predicciones y simulaciones.

Shige
fuente
Parece que no hay un método predcit () para logit.mixed en zelig ..
nassimhddd
3

La versión de desarrollo de lme4 tiene una función de predicción incorporada (predict.merMod). Se puede encontrar en https://github.com/lme4/lme4/ .

El código para instalar los "binarios de desarrollo casi actualizados del repositorio lme4 r-forge" se puede encontrar en la página anterior y es:

install.packages("lme4", repos=c("http://lme4.r-forge.r-project.org/repos", getOption("repos")["CRAN"]))
Martin P
fuente
1
Tenga en cuenta que esta ya no es la versión de desarrollo, predictha estado disponible desde hace algunos años.
Ben Bolker
1

Stephen Raudenbush tiene un capítulo de libro en el Manual de análisis multinivel sobre " Muchos grupos pequeños ". Si solo le interesan los efectos de x sobre y y no le interesan los efectos de nivel superior, su sugerencia es simplemente estimar un modelo de efectos fijos (es decir, una variable ficticia para todas las agrupaciones de nivel superior posibles).

No sé cuán aplicable es eso a la predicción, pero me imagino que algo de lo que escribe es aplicable a lo que estás tratando de lograr.

Andy W
fuente