Trazado de resultados de la regresión de lme4 en I utilizando Entramado (o algo más)
-
18-09-2019 - |
Pregunta
Tengo ajustar una regresión usando lme4 gracias a un respuesta anterior . Ahora que tengo un ajuste de regresión para cada estado que me gustaría utilizar celosía para trazar gráficos QQ para cada estado. También me gustaría trazar parcelas de error para cada estado en un formato de celosía. ¿Cómo hago una parcela de celosía utilizando los resultados de una regresión lme4?
A continuación se muestra un ejemplo sencillo (sí, me gusta una buena aliteración) utilizando dos estados. Me gustaría hacer un enrejado de dos paneles hechos de los ataques de los objetos.
library(lme4)
d <- data.frame(state=rep(c('NY', 'CA'), c(10, 10)), year=rep(1:10, 2), response=c(rnorm(10), rnorm(10)))
fits <- lmList(response ~ year | state, data=d)
Solución
En lugar de utilizar lmList
, me gustaría recomendar el paquete plyr más general.
library(plyr)
d <- data.frame(
state = rep(c('NY', 'CA'), c(10, 10)),
year = rep(1:10, 2),
response = c(rnorm(10), rnorm(10))
)
# Create a list of models
# dlply = data frame -> list
models <- dlply(d, ~ state, function(df) {
lm(response ~ year, data = df)
})
# Extract the coefficients in a useful form
# ldply = list -> data frame
ldply(models, coef)
# We can get the predictions in a similar way, but we need
# to cast to a data frame so the numbers come out as rows,
# not columns.
predictions <- ldply(models, as.data.frame(predict))
predictions
es una trama de datos R regular y así es fácil de trama.
Otros consejos
No estoy seguro de que usted puede conseguir esto en celosía con facilidad. Lo que tiene en fits
es un objeto que contiene una ranura S4 .Data con una lista de objetos lm
estándar:
R> class(fits)
[1] "lmList"
attr(,"package")
[1] "lme4"
R> class(fits@.Data)
[1] "list"
R> class(fits@.Data[[1]])
[1] "lm"
R> op <- par(mfrow=c(2,4))
R> invisible(lapply(fits@.Data, plot))
Esta última trama, simplemente se traza la trama 2x2 estándar para objetos lm
dos veces, una para cada elemento de la lista de objetos empotrados. Utilice el argumento which
a plot
para seleccionar subconjuntos de estos o de otros diagnósticos de regresión.
Si usted quiere realmente parcelas de lattice
predicho vs real, puede que tenga que programar esto.
He tenido algunos problemas con lme4 :: lmList. Por ejemplo, no parece Resumen de trabajar. Así que usted podría encontrarse con algunos problemas a causa de eso.
Así que, aunque yo uso LMER, en lugar de LME, he estado llamando explícitamente nlme :: lmList lugar. Entonces Resumen etc. funcionará.