Построение регрессии результатов LME4 в R Использование решетки (или что -то еще)

StackOverflow https://stackoverflow.com/questions/1297698

  •  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. Тогда резюме и т. Д. Подойдет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top