r语言 - 从具有交互作用项的线性混合效应模型的效应包中提取部分残差



我正在运行一个带有交互作用项的线性混合效应模型。

library(lme4)
library(effects)
data<-mtcars
model<-lme4::lmer(mpg~cyl + hp*gear+ disp + (1|carb), REML=T, data=data)
# The partial residuals appear on the default effect() plot
plot(effect("hp:gear",partial.residuals=TRUE, model))
# But partial residual values are not included when saving as a dataframe
residuals <- as.data.frame(effect("hp:gear",partial.residuals=TRUE, model))

知道如何从效应((中提取具有交互作用项的LMEM的部分残差吗?

部分残差是通过plot()方法计算的,而不是通过Effect()计算的,因为在计算部分残差之前,有必要知道每个面板中有哪些点,即面板函数在晶格图中可用的信息。

所使用的方法在J. Fox和S. Weisberg(2018(中描述,"使用具有部分残差的预测因子效应图可视化复杂回归模型中的拟合和缺乏拟合",统计软件杂志87:9,1-27(在?Effect中引用(。

首先,运行问题中的建模代码。然后,保存函数effects的输出。

eff <- effect("hp:gear", partial.residuals = TRUE, model)

现在,resid(eff)给出了残差。由于问题要求部分残差,请去寻找它们:

grep("resid", names(eff))
#[1] 12 13
names(eff)[grep("resid", names(eff))]
#[1] "residuals"               "partial.residuals.range"

并使用第二个名称提取列表成员"partial.residuals.range"

eff$partial.residuals.range
#[1] 10.4 33.9

对于所有部分残差,它们定义为

predict(model) + resid(model)
range(predict(model) + resid(model))
#[1] 10.4 33.9

最新更新