3 votos

Diferentes resultados en el modelo mixto entre R lme(), lmer() y Stata

Estoy ajustando un modelo multinivel sobre olas de países agrupados, es decir, ignoro el marco temporal y utilizo individuos anidados en países. Sin embargo, obtengo resultados diferentes ajustando el modelo simple de partida entre lme y lmer

fit1 <- lmer(isei_r ~ fisei + (fisei | country), data = working_age, 
             REML = FALSE, na.action = na.omit) 
fit2 <- lme(isei_r ~ fisei, random = ~ fisei | country, data = working_age,
            method = "ML", na.action = na.omit) 

En concreto, el primero no converge, mientras que el segundo no muestra ningún problema y es idéntico al resultado obtenido con Stata:

mixed isei_r fisei || country : fisei 

Me preguntaba por qué es así. ¿Cuál es la principal diferencia de lmer() con respeto lme() (y/o mezclado en el marco de Stata)?

Añado un pequeño extracto de un conjunto de datos simplificado con sólo las variables incluidas aquí:

 structure(list(country = structure(c(1, 1, 6, 9, 10, 15, 15, 
 18, 21, 23, 23, 25, 25, 25, 27, 27, 28, 29, 31, 31), label = "Country", labels = c(AT = 1, 
BE = 2, BG = 3, CH = 4, CY = 5, CZ = 6, DE = 7, DK = 8, EE = 9, 
ES = 10, FI = 11, FR = 12, GB = 13, GR = 14, HR = 15, HU = 16, 
IE = 17, IL = 18, IS = 19, IT = 20, LT = 21, LU = 22, LV = 23, 
NL = 24, NO = 25, PL = 26, PT = 27, RO = 28, RU = 29, SE = 30, 
SI = 31, SK = 32, TR = 33, UA = 34), class = "haven_labelled"), 
fisei = structure(c(NA, 46, 55, 29, 70, 21, 69, 23, 16, 70, 
37, 29, 30, 34, 16, NA, 32, 32, 41, 34), format.stata = "%10.0g"), 
isei_r = structure(c(50.439998626709, 51, 69, 53.8300018310547, 
51, 43.1699981689453, 67.6999969482422, 25, 33.2000007629395, 
67.6999969482422, 25, 28.8299999237061, 27, 39, 16, NA, 69, 
NA, 55.7799987792969, 69), format.stata = "%9.0g"), essround = structure(c(1, 
2, 2, 4, 5, 4, 5, 4, 4, 3, 4, 3, 4, 5, 1, 2, 4, 3, 3, 4), label = "ESS round", format.stata = "%12.0g")), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame"))

5voto

user219012 Puntos 1

Es difícil ver lo que ocurre sin un ejemplo reproducible. No obstante, los modelos mixtos son, en general, modelos complejos. Y por esta razón, los algoritmos utilizados para encontrar la máxima verosimilitud pueden tener a veces problemas de convergencia. Además, hay que tener en cuenta que lmer() , lme() y STATA utilizan diferentes algoritmos de optimización con diferentes valores por defecto. Por eso, en algunos ejemplos, como el suyo, puede ocurrir que uno tenga éxito y el otro no. En la mayoría de estos casos, ajustar los controles de optimización en el algoritmo que no tuvo éxito resuelve los problemas. Para lmer() en particular, eche un vistazo a la PREGUNTAS FRECUENTES DE LA GLMM y aquí .

2voto

Maran Puntos 2283

Una de las razones por las que las cosas pueden parecer diferentes en lmer() y mixed es que lmer() (y creo que lme() ) estima la covarianza entre la pendiente aleatoria y el intercepto aleatorio por defecto. Por otro lado, mixed no lo hace. Es necesario especificarlo explícitamente como tal:

 mixed isei_r fisei || country : fisei , cov(unstructured)

Vea si añadir esto a su mixed resulta en estimaciones que son similares en todos los programas y rutinas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X