문제

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를 대신 명시 적으로 호출했습니다. 그러면 요약 등이 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top