Pergunta

Eu me encaixei em uma regressão usando Lme4 graças a um resposta anterior. Agora que tenho um ajuste de regressão para cada estado, gostaria de usar treliça para plotar gráficos QQ para cada estado. Eu também gostaria de plotar gráficos de erros para cada estado em um formato de treliça. Como faço um gráfico de treliça usando os resultados de uma regressão LME4?

Abaixo está uma amostra simples (sim, eu gosto de uma boa aliteração) usando dois estados. Eu gostaria de fazer uma treliça de dois painéis feita com o objeto se encaixa.

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)
Foi útil?

Solução

Ao invés de usar lmList, Eu recomendaria o pacote mais geral Plyr.

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 é um quadro de dados R regular e, portanto, é fácil plotar.

Outras dicas

Não tenho certeza de que você possa colocar isso em treliça facilmente. O que você tem em fits é um objeto S4 contendo um slot .data com uma lista de padrão lm objetos:

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))

Este último enredo simplesmente plota o gráfico padrão de 2x2 para lm Objetos duas vezes, uma vez para cada elemento da lista de objetos ajustados. Use o which argumento para plot selecionar subconjuntos destes ou para outros diagnósticos de regressão.

Se você realmente quiser lattice Gráficos de previsto vs real, você pode ter que programar isso.

Eu tive alguns problemas com o Lme4 :: lmlist. Por exemplo, o resumo não parece funcionar. Então você pode ter alguns problemas por causa disso.

Portanto, mesmo que eu use o LMER, em vez do LME, tenho chamado explicitamente o NLME :: lmlist. Então resumo etc. funcionará.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top