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

绘制线性与非线性多元回归模型的添加变量图

当然可以!avPlots()函数本身就支持生成单张的添加变量图,完全满足你“为每个预测变量单独绘图、控制其他变量不变”的需求,下面给你两种实用的实现方法:

方法1:直接指定单个变量绘制

avPlots()的terms参数可以让你精准指定要单独绘制的预测变量,注意对于多项式这类特殊项,要使用模型中对应的变量名称(你可以通过names(model$coefficients)查看模型里的变量标识)。

示例代码:

library(car)
library(broom)
library(jtools)

# 先拟合你的模型
model <- lm(mpg ~ poly(disp,3) + wt + carb + factor(gear), data = mtcars)

# 可选:查看模型中的所有变量名称,确认多项式项的正确写法
names(model$coefficients)

# 生成单个变量(比如wt)的添加变量图
avPlots(model, terms = "wt")

# 生成非线性项poly(disp,3)的添加变量图
avPlots(model, terms = "poly(disp, 3)")

# 生成分类变量factor(gear)的添加变量图
avPlots(model, terms = "factor(gear)")

这种方法最直接,你还可以循环遍历所有预测变量,批量生成单张图,完全适配你的需求。

方法2:从批量图中提取单张展示

如果你已经生成了所有变量的添加变量图,也可以把它们存储为对象,再通过索引提取单张图单独显示:

# 生成所有图并存储,ask=FALSE避免弹窗询问
all_avplots <- avPlots(model, ask = FALSE)

# 提取第2个图(对应wt,索引可根据变量顺序调整)
all_avplots[[2]]

另外要提醒你:添加变量图展示的是控制其他所有预测变量不变时,响应变量与目标预测变量的偏残差关系,对于你模型中的非线性项(比如poly(disp,3)),图中会自动拟合对应的曲线,能清晰呈现非线性趋势,正好匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:59:34