R语言多项式回归拟合非线性关系
首页 专栏 算法 文章详情
0

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

拓端tecdat 发布于 5 月 8 日

原文链接:http://tecdat.cn/?p=22438 

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

当我们分析有一些弯曲的波动数据时,拟合这种类型的回归是很关键的。 
在这篇文章中,我们将学习如何在R中拟合和绘制多项式回归数据。我们在这个回归模型中使用了lm()函数。虽然它是一个线性回归模型函数,但通过改变目标公式类型,lm()对多项式模型也适用。本教程包括

准备数据 拟合模型 寻找最佳拟合 源代码

准备数据

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

function(x) x^3+2*x^2+5   df = data.frame(x = x, y = y) head(df)


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

plot(df$x, df$y

拟合模型

我们用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()函数作图。

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

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

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

最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

算法 机器学习 人工智能 深度学习 数据挖掘
阅读 37 更新于 5 月 8 日
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
拓端数据
拓端tecdat分享最in的大数据资讯,提供“一站式”的数据分析学习和咨询体验,让我们一起做有态度的数据人...
关注专栏
avatar
拓端tecdat

拓端(http://tecdat.cn )创立于2016年,自成立以来,就定位为提供专业的数据分析与数据挖掘服务的提供商,致力于充分挖掘数据的价值,为客户定制个性化的数据解决方案与行业报告等。

169 声望
27 粉丝
关注作者
0 条评论
得票数 最新
提交评论
你知道吗?

注册登录
avatar
拓端tecdat

拓端(http://tecdat.cn )创立于2016年,自成立以来,就定位为提供专业的数据分析与数据挖掘服务的提供商,致力于充分挖掘数据的价值,为客户定制个性化的数据解决方案与行业报告等。

169 声望
27 粉丝
关注作者
宣传栏
目录

原文链接:http://tecdat.cn/?p=22438 

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

当我们分析有一些弯曲的波动数据时,拟合这种类型的回归是很关键的。 
在这篇文章中,我们将学习如何在R中拟合和绘制多项式回归数据。我们在这个回归模型中使用了lm()函数。虽然它是一个线性回归模型函数,但通过改变目标公式类型,lm()对多项式模型也适用。本教程包括

准备数据 拟合模型 寻找最佳拟合 源代码

准备数据

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

function(x) x^3+2*x^2+5   df = data.frame(x = x, y = y) head(df)


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

plot(df$x, df$y

拟合模型

我们用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()函数作图。

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

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

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

最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标