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

问题描述 投票:0回答:1

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

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))

任何想法如何从effects()中提取具有交互项的LMEM的部分残差?

r lme4
1个回答
1
投票

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

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

现在,resid(eff)给出残差。由于问题要求partial残差,因此请寻找它们:

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
© www.soinside.com 2019 - 2024. All rights reserved.