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

R语言如何绘制含连续+分类变量的二阶多项式回归图

R语言绘制含1个连续变量+1个分类变量的二阶多项式回归图

完全可以实现,你只需要组合已经掌握的两种绘图的参数即可,以下是可直接运行的示例代码:


场景1:不同分类组各自拟合独立的二阶多项式

这是最常用的需求,最终会按分类分组显示散点,每个分组单独拟合一条二阶多项式回归曲线:

library(ggplot2)
library(ggthemes)
# 沿用你生成的示例数据集
set.seed(1)
df <- data.frame(minutes = runif(60, 5, 15), endtime=60, category="a")
df$category = letters[seq( from = 1, to = 2 )]
df$endtime = df$endtime + df$minutes^3/180 + df$minutes*runif(60, 1, 2)

# 核心绘图代码:同时保留分类颜色映射 + 指定二阶多项式公式
ggplot(df, aes(y=endtime, x=minutes, col = category)) +
  geom_point() +
  geom_smooth(method='lm', formula = y ~ poly(x,2), size = 1) + 
  xlab('Minutes of warm up') +
  ylab('End time') +
  theme_few()

核心修改点就是在geom_smooth中加入二阶多项式formula参数,同时保留aes中对category的颜色映射即可。


场景2:拟合纳入分类变量交互项的全局二阶多项式

如果你需要拟合的是同时包含连续变量、分类变量及二者交互项的全局回归模型,可以用如下代码实现:

ggplot(df, aes(y=endtime, x=minutes, col = category)) +
  geom_point() +
  geom_smooth(method='lm', formula = y ~ poly(x,2)*category, size = 1) + 
  xlab('Minutes of warm up') +
  ylab('End time') +
  theme_few()

公式中poly(x,2)*category会自动生成连续变量的二阶项、分类变量、以及二者的交互项,输出的曲线和分组独立拟合结果一致,但回归模型的统计检验结果会是全局的。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:27:00