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
相关产品推荐
相关产品推荐

