由于previous answer,我使用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)
答案 0 :(得分:7)
我建议使用更通用的plyr包,而不是使用lmList
。
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数据框,因此很容易绘制。
答案 1 :(得分:2)
我不确定你能否轻易将它变成格子。你在fits
中拥有的是一个S4对象,其中包含一个带有标准 lm
对象列表的.Data插槽:
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))
最后一个图只是简单地为lm
个对象绘制两次标准2x2图,对于拟合对象列表的每个元素一次。使用which
plot
参数选择这些参数的子集或其他回归诊断。
如果你真的想要lattice
预测与实际的关系图,你可能需要对此进行编程。
答案 2 :(得分:-1)
我在使用lme4 :: lmList时遇到了一些麻烦。例如,摘要似乎不起作用。因此,你可能会遇到一些问题。
所以即使我使用lmer而不是lme,我也明确地调用了nlme :: lmList。然后总结等将起作用。