Tengo adaptarse a unos modelos de efectos mixtos (en particular los modelos longitudinales) utilizando lme4
en R
, pero me gustaría realmente dominar los modelos y el código que va con ellos.
Sin embargo, antes de sumergirme con los dos pies (y comprar algunos libros), quiero estar seguro de que estoy aprendiendo la biblioteca correcta. Lo he usado lme4
hasta ahora porque lo encontré más fácil nlme
, pero si nlme
es mejor para mis propósitos, creo que debería usarlo.
Estoy seguro de que ninguno de los dos es "mejor" de una manera simplista, pero valoraría algunas opiniones o pensamientos. Mis criterios principales son:
- fácil de usar (soy psicólogo por capacitación y no estoy particularmente versado en estadística o codificación, pero estoy aprendiendo)
- buenas características para ajustar datos longitudinales (si hay una diferencia aquí, pero esto es para lo que los uso principalmente)
- buenos resúmenes gráficos (fáciles de interpretar), de nuevo no estoy seguro de si hay una diferencia aquí, pero a menudo produzco gráficos para personas aún menos técnicas que yo, por lo que los gráficos claros y agradables siempre son buenos (me gusta mucho la función xyplot en la red) () por esta razón).
Como de costumbre, espero que esta pregunta no sea demasiado vaga, y gracias de antemano por cualquier sabiduría.
fuente
lme4
puede especificar una estructura de covarianza diagonal (es decir, efectos aleatorios independientes) o matrices de covarianza no estructuradas (es decir, todas las correlaciones deben ser estimadas) o matrices de covarianza parcialmente diagonales y parcialmente no estructuradas para los efectos aleatorios. También agregaría una tercera diferencia en las capacidades que pueden ser más relevantes para muchas situaciones de datos longitudinales:nlme
no especifiquemos estructuras de varianza-covarianza para los residuos (es decir, autocorrelación espacial o temporal o heterocedasticidad)lme4
.lme4
permite elegir diferentes estructuras de VC. Sería mejor que lo agregue en su propia respuesta, junto con otras ideas que pueda tener. Votaré Por cierto, también me di cuenta de que tambiénlmList()
está disponible enlme4
. Parece recordar alguna discusión sobre eso en R-sig-ME.Como señaló CHL, la principal diferencia es qué tipo de estructura de varianza-covarianza puede especificar para los efectos aleatorios. En
lme4
puede especificar:~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group)
)~ (1 + x1 + x2 | group)
)y ~ (1 + x1 | group) + (0 + x2 | group)
donde se estimaría una correlación entre la intersección aleatoria y la pendiente aleatoria parax1
, pero no hay correlaciones entre la pendiente aleatoria parax2
y la intercepción aleatoria y entre la pendiente aleatoria parax2
y la pendiente aleatoria parax1
).nlme
ofrece una clase mucho más amplia de estructuras de covarianza para los efectos aleatorios.lme4
Sin embargo, mi experiencia es que la flexibilidad es suficiente para la mayoría de las aplicaciones.También agregaría una tercera diferencia en las capacidades que pueden ser más relevantes para muchas situaciones de datos longitudinales:
nlme
especifiquemos estructuras de varianza-covarianza para los residuos (es decir, autocorrelación espacial o temporal o heterocedasticidad o variabilidad dependiente de covariable) en elweights
argumento (cf?varFunc
), mientras quelme4
solo permite pesos previos fijos para las observaciones.Una cuarta diferencia es que puede ser difícil
nlme
ajustar los efectos aleatorios cruzados (parcialmente), mientras que eso no es un problemalme4
.Probablemente estarás bien si te quedas
lme4
.fuente
Otros han resumido muy bien las diferencias. Mi impresión es que
lme4
es más adecuado para conjuntos de datos agrupados, especialmente cuando necesita usar efectos aleatorios cruzados. Sin embargo, para diseños de medidas repetidas (incluidos muchos diseños longitudinales),nlme
es la herramienta ya que solonlme
admite la especificación de una estructura de correlación para los residuos. Lo haces usando el argumentocorrelations
ocor
con uncorStruct
objeto. También le permite modelar la heterocedasticidad usando unvarFunc
objeto.fuente
En realidad, hay una serie de paquetes en R para ajustar modelos de efectos mixtos más allá
lme4
ynlme
. Hay un buen wiki dirigido por el grupo de interés especial R para modelos mixtos, que tiene muy buenas preguntas frecuentes y una página que compara los diferentes paquetes .En cuanto a mis opiniones sobre el uso real
lme4
ynlme
: En general, me pareciólme4
más fácil de usar debido a su extensión bastante directa de la sintaxis básica de la fórmula R. (Si necesita trabajar con modelos aditivos generalizados, entonces elgamm4
paquete extiende esta sintaxis un paso más y tendrá una buena curva de aprendizaje). Como otros han mencionado,lme4
puede manejar modelos generalizados (otras funciones de enlace y distribuciones de errores), mientras quenlme
El enfoque en la función de enlace gaussiano le permite hacer algunas cosas que son muy difíciles en el caso general (especificando la estructura de covarianza y ciertas cosas que dependen del cálculo de los grados de libertad, como los valores p, los últimos de los cuales le animo a moverse ¡lejos de!).fuente