Построение регрессии результатов LME4 в R Использование решетки (или что -то еще)
-
18-09-2019 - |
Вопрос
Я вписываю регрессию, используя LME4 благодаря Предыдущий ответ. Анкет Теперь, когда у меня есть регрессия, подходящая для каждого состояния, я хотел бы использовать решетку для построения графиков QQ для каждого состояния. Я также хотел бы построить графики ошибок для каждого состояния в формате решетки. Как сделать график решетки, используя результаты регрессии LME4?
Ниже приведен простой образец (да, мне нравится хорошая аллитерация), используя два состояния. Я хотел бы сделать двух панельную решетку, сделанную из объекта.
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)
Решение
Вместо использования lmList
, Я бы порекомендовал более общий пакет 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
это обычная рама данных R, и поэтому легко построить.
Другие советы
Я не уверен, что вы можете легко получить это в решетку. Что у вас есть в fits
это объект S4, содержащий слот .data со списком стандартный lm
объекты:
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))
Этот последний сюжет просто задумал вам стандартный график 2x2 для lm
Объекты дважды, один раз для каждого элемента списка подходящих объектов. Использовать which
аргумент plot
Чтобы выбрать подмножества этих или для другой диагностики регрессии.
Если вы действительно хотите lattice
Графики прогнозируемого против фактического, вам, возможно, придется запрограммировать это.
У меня были проблемы с LME4 :: LMList. Например, резюме, кажется, не работает. Так что вы можете столкнуться с некоторыми проблемами из -за этого.
Поэтому, несмотря на то, что я использую LMER, вместо LME, я явно называл NLME :: LMList. Тогда резюме и т. Д. Подойдет.