sirven regresion que para negativa modelos modelo mixtos mixto los lineales lineal generalizados generalizado ejemplo efectos ecuaciones ecologia commander binomial r lme4 mixed-models lmer

regresion - Reinicie la estimación del modelo de efectos mixtos con los valores estimados previamente



para que sirven los modelos lineales generalizados (1)

Este fue un error confirmado en lme4 y según los comentarios

He registrado un problema en github.com/lme4/lme4/issues/55 - Andrie Jul 2 ''13 a las 15:42

Esto debería arreglarse ahora para lmer (aunque no para glmer, que es un poco más complicado). - Ben Bolker Jul 14

Eso fue cuando la versión era <0.99999911-6; lme4 en CRAN ha tenido versiones> 1.0-4 desde el 21 de septiembre de 2013.

Estoy usando lmer() en el paquete lme4 para estimar modelos de efectos mixtos. Esto funciona bien, pero ahora quiero ejecutar el proceso de estimación para un número fijo de iteraciones, luego reanudo el proceso especificando los valores de inicio, según lo calculado por el último proceso de estimación.

De acuerdo con la ayuda para el ?lmer esto es posible, estableciendo los argumentos:

  • start - estos son los nuevos valores de inicio, y de acuerdo con la ayuda uno puede extraer el valor en la ranura ST de un modelo ajustado y usarlos, es decir, usar x@ST
  • maxiter - suministrado como un argumento nombrado para control

Entonces, por ejemplo, supongamos que quiero ajustar un lme usando los datos del iris , uno puede intentar esto:

library(lme4) # Fit model with limited number of iterations frm <- "Sepal.Length ~ Sepal.Width | Species" x <- lmer(frm, data=iris, verbose=TRUE, control=list(maxIter=1), model=FALSE) # Capture starting values for next set of iterations start <- list(ST=x@ST) # Update model twoStep <- lmer(frm, data=iris, verbose=TRUE, control=list(maxIter=100), model=TRUE, start=start)

Esto funciona. Eche un vistazo a la salida, donde la primera columna es la REML, es decir, la máxima verosimilitud del efecto aleatorio. Observe especialmente que el REML en el modelo 2 comienza donde termina el modelo 1:

> x <- lmer(frm, data=iris, + verbose=TRUE, control=list(maxIter=1), model=FALSE) 0: 264.60572: 0.230940 0.0747853 0.00000 1: 204.22878: 0.518239 1.01025 0.205835 1: 204.22878: 0.518239 1.01025 0.205835 > # Capture starting values for next set of iterations > start <- list(ST=x@ST) > # Update model > twoStep <- lmer(frm, data=iris, + verbose=TRUE, control=list(maxIter=100), model=TRUE, + start=start) 0: 204.22878: 0.518239 1.01025 0.205835 1: 201.51667: 0.610272 2.00277 0.286049 2: 201.46706: 0.849203 1.94906 0.358809 3: 201.44614: 0.932371 1.88581 0.482423 4: 201.39421: 1.00909 1.71078 0.871824 5: 201.36543: 1.00643 1.60453 1.01663 6: 201.31066: 1.00208 1.35520 1.27524 7: 201.28458: 1.08227 1.22335 1.35147 8: 201.24330: 1.50333 0.679759 1.31698 9: 201.11881: 1.95760 0.329767 0.936047

Sin embargo, cuando tengo un valor diferente de maxIters esto ya no funciona:

x <- lmer(frm, data=iris, verbose=TRUE, control=list(maxIter=3), model=FALSE) start <- list(ST=x@ST) twoStep <- lmer(frm, data=iris, verbose=TRUE, control=list(maxIter=100), model=TRUE, start=start)

Observe que el valor de REML se reinicia en 264 , es decir, el comienzo:

> x <- lmer(frm, data=iris, + verbose=TRUE, control=list(maxIter=3), model=FALSE) 0: 264.60572: 0.230940 0.0747853 0.00000 1: 204.22878: 0.518238 1.01025 0.205835 2: 201.94075: 0.00000 1.51757 -1.18259 3: 201.71473: 0.00000 1.69036 -1.89803 3: 201.71473: 0.00000 1.69036 -1.89803 > # Capture starting values for next set of iterations > start <- list(ST=x@ST) > # Update model > twoStep <- lmer(frm, data=iris, + verbose=TRUE, control=list(maxIter=100), model=TRUE, + start=start) 0: 264.60572: 0.230940 0.0747853 0.00000 1: 204.22878: 0.518238 1.01025 0.205835 2: 201.94075: 0.00000 1.51757 -1.18259 3: 201.71473: 0.00000 1.69036 -1.89803 4: 201.64641: 0.00000 1.82159 -2.44144 5: 201.63698: 0.00000 1.88282 -2.69497 6: 201.63649: 0.00000 1.89924 -2.76298 7: 201.63649: 4.22291e-08 1.90086 -2.76969 8: 201.63649: 4.22291e-08 1.90086 -2.76969

Pregunta: ¿Cómo puedo reiniciar confiablemente lmer() con los valores de inicio obtenidos a partir de un modelo ajustado previamente?

Información de la sesión:

packageVersion("lme4") [1] ‘0.999999.2’