R语言多项式回归拟合非线性关系

多项式回归是独立x变量和因果y变量之间的非线性关系。

由Kaizong Ye,Coin Ge撰写

当我们分析有一些弯曲的波动数据时,拟合这种类型的回归是很关键的。 


在这篇文章中,我们将学习如何在R中拟合和绘制多项式回归数据。

多项式回归是一种回归分析方法。它通过使用自变量的高次多项式来拟合因变量与自变量之间的关系。例如,可以用二次多项式来拟合数据,形如 y = ax² + bx + c,其中 a、b、c 是待确定的系数,x 是自变量,y 是因变量。多项式回归可以更好地捕捉数据中的非线性关系,相比简单的线性回归具有更强的拟合能力。在统计学和数据分析中被广泛应用。

我们在这个回归模型中使用了lm()函数。

在回归模型中使用了 lm()函数。lm()函数通常是用于线性回归模型的函数,但文中提到通过改变目标公式类型,它对多项式模型也适用。一般来说,lm()函数可以用来拟合自变量和因变量之间的线性关系,通过最小二乘法来确定模型的参数,从而建立回归模型。在特定的情况下,还可以对其进行调整以适应多项式模型的构建。

虽然它是一个线性回归模型函数,但通过改变目标公式类型,lm()对多项式模型也适用。本教程包括


可下载资源


作者


本文分析的数据、代码、报告分享至会员群

  1. 准备数据
  2. 拟合模型
  3. 寻找最佳拟合
  4. 源代码

准备数据

我们首先要准备测试数据,如下所示。

function(x) x^3+2*x^2+5

 
df = data.frame(x = x, y = y)
head(df)


我们可以将’df’数据可视化,在图中进行直观的检查。我们的任务是用最佳曲线拟合这个数据。

plot(df$x, df$y


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

拟合模型

我们用lm()函数建立一个带有公式的模型。  I(x^2)在一个公式中代表x2。我们也可以使用poly(x,2)函数,它与I(x^2)的表达方式相同。


接下来,我们将用训练好的模型来预测数据。

pred = predict(model,data=df)

寻找最佳拟合

找到最佳拟合的曲线很重要。我们用各种可能的函数检查模型。在这里,我们应用四种类型的函数进行拟合,并检查其性能。
橙色线(线性回归)和黄色曲线对这个数据来说是错误的选择。粉红色曲线很接近,但蓝色曲线是与我们的数据趋势最匹配的。因此,我使用y~x3+x2公式来建立我们的多项式回归模型。
你可以通过将你的数据可视化来找到最适合的公式。

源代码列在下面。

 lines(df$x, predict(lm(y~x, data=df)), type="l"  lwd=2)
 
legend("topleft", 
        legend = c("y~x,  - 线性","y~x^2", "y~x^3", "y~x^3+x^2"),

想了解更多关于模型定制、辅导的信息?


绘制结果

1. 用plot()函数作图。


R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析

阅读文章


2. 用ggplot()作图。
多项式回归数据可以用ggplot()拟合和绘制。

ggplot(data=df ) +
       geom_smooth(  y~I(x^3)+I(x^2))


随时关注您喜欢的主题


在本教程中,我们简要了解了如何拟合多项式回归数据,并使用R中的plot()和ggplot()函数绘制结果,完整的源代码如下。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498