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

时间:2020-01-11 16:27:21

标签: r lme4

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

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的部分残差?

2 个答案:

答案 0 :(得分:2)

部分残差是通过plot()方法计算的,而不是通过Effect()计算的,因为有必要知道每个面板中的哪些点,这是格子中面板功能可用的信息图,然后计算部分残差。

J。Fox和S. Weisberg(2018),“在具有部分残差的预测因子效应图的复杂回归模型中可视化拟合和不拟合,”中描述了使用的方法,{{3} ?Effect

答案 1 :(得分:0)

首先,运行问题中的建模代码。然后,保存函数Caused by: org.springframework.data.mapping.PropertyReferenceException: No property customMethod found for type MyNiceObject! 的输出。

effects

现在,eff <- effect("hp:gear", partial.residuals = TRUE, model) 给出残差。由于问题要求提供 partial 残差,因此请寻找它们:

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