격자 (또는 다른 것)를 사용하여 R의 LME4의 회귀 결과를 플로팅
-
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
목록이있는 .data 슬롯이 포함 된 S4 객체입니다. 기준 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에 문제가있었습니다. 예를 들어, 요약은 작동하지 않는 것 같습니다. 따라서 그 때문에 몇 가지 문제가 발생할 수 있습니다.
따라서 LME 대신 lmer를 사용하더라도 NLME :: LMLIST를 대신 명시 적으로 호출했습니다. 그러면 요약 등이 작동합니다.