You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可计算线性混合效应偏残差的R函数及termplot报错解决方法

线性混合效应模型(lmer)偏残差图的绘制方案

你遇到的报错是因为termplot在处理lmer生成的merMod类模型时,内部调用的predict.merMod函数不支持type="terms"参数,导致无法生成所需的拟合项来计算偏残差。下面提供三种实用的解决方法:

方法一:手动计算偏残差,自定义绘图

偏残差的核心逻辑是原始残差 + 该自变量对应的固定效应拟合值,我们可以手动拆分模型结果来计算,再用基础绘图或ggplot2实现可视化:

library(lme4)
library(ggplot2)
library(gridExtra)

# 拟合混合效应模型
lmer.cars <- lmer(mpg ~ disp + drat + qsec + (1|cyl), data=mtcars)

# 提取模型的固定效应设计矩阵(去除截距项)
X <- model.matrix(lmer.cars)[, -1]
# 提取对应自变量的固定效应系数
fixef_coefs <- fixef(lmer.cars)[-1]
# 计算每个自变量的固定效应拟合值
term_fits <- X %*% fixef_coefs

# 提取模型残差
model_resids <- residuals(lmer.cars)

# 计算每个自变量的偏残差
partial_resids <- as.data.frame(model_resids + term_fits)
colnames(partial_resids) <- colnames(X)
# 保留原数据的自变量值
partial_resids <- cbind(partial_resids, mtcars[, colnames(X)])

# 用ggplot2批量生成偏残差图
plot_list <- lapply(colnames(X), function(var) {
  ggplot(partial_resids, aes(x = .data[[var]], y = .data[[var]])) +
    geom_point(color = "purple") +
    geom_smooth(method = "loess", se = FALSE, color = "black") +
    labs(x = var, y = "偏残差") +
    theme_bw()
})

# 2x2排列图形
grid.arrange(grobs = plot_list, ncol = 2)

方法二:用sjPlot包快速生成

sjPlot包对混合效应模型的可视化支持很友好,plot_model函数可以直接生成偏残差图,无需手动计算:

library(sjPlot)
library(lme4)

lmer.cars <- lmer(mpg ~ disp + drat + qsec + (1|cyl), data=mtcars)

# 绘制偏残差图,展示原始数据点
plot_model(lmer.cars, type = "resid", show.data = TRUE, colors = "purple") +
  theme_bw()

方法三:用effects包适配混合模型

你之前尝试的effects包其实支持merMod模型,只需通过Effect函数提取单变量效应后,结合残差绘制偏残差图:

library(effects)
library(lme4)

lmer.cars <- lmer(mpg ~ disp + drat + qsec + (1|cyl), data=mtcars)

# 设置2x2绘图布局
par(mfrow = c(2,2))

# 遍历每个自变量绘制偏残差图
for (var in c("disp", "drat", "qsec")) {
  # 提取该变量的效应对象
  eff_obj <- Effect(var, lmer.cars)
  # 计算偏残差:残差 + 该变量的拟合效应(去除截距)
  partial_resid <- residuals(lmer.cars) + (eff_obj$fitted - fixef(lmer.cars)[1])
  # 绘制效应曲线,再叠加偏残差点
  plot(eff_obj, main = var, ylab = "偏残差")
  points(mtcars[[var]], partial_resid, col = "purple")
}

内容的提问来源于stack exchange,提问作者Vincent Pua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:17:14