数据分析中常见的七种回归分析以及R语言实现(四)---多项式回归
往期回顾:
1、数据分析中常见的七种回归分析以及R语言实现(一)--简单线性模型
2、数据分析中常见的七种回归分析以及R语言实现(二)---逐步回归
3、数据分析中常见的七种回归分析以及R语言实现(三)---岭回归
这篇文章是个普及文,比较浅,没有太深入;
在我们平时做回归的时候,大部分都是假定自变量和因变量是线性,但有时候自变量和因变量可能是非线性的,这时候我们就可能需要多项式回归了,多项式回归就是自变量和因变量是非线性所做的一个回归模型,其表达式:
Y=A0+A1X1+A2X2^2+ANXN^2+u
公式存手打,不是很好看,其特定就是右边的等式只有一个自变量,但却以不同的次幂出现,这时候在令Xn^n=XnJ,将模型转换成相应的多元线性回归模型
Y=A0+A1X1J+A2X2J+A3X3J....+u等,从而可以使用最小二乘法进行参数估计;
R语言代码,这里我使用R语言自带的身高体重的数据作为示例,也好久没做一个完整的分析了,这次稍微分析全一些,可以参考《R语言实战》回归篇
确定问题
首先我们要想知道升高和体重是否有什么关联,如果有关联那又是怎么样的关联呢?
数据说明
这里我们使用R语言自带的women数据集,这个不需要安装说明包,R语言自己就自带了,存在两个字段,体重和身高
height 身高
weight 体重
数据探索和可视化
首先我们先使用head()函数看看数据的前六行,因为这样我们可以大致确定数据集的字段名称和数据内容;然后在使用summary()得到数据集的总概括
head(women)
体重的数值大约是是身高的一半,这是我们的猜测;
summary(women)
体重的最小值是58,最大值是72,均值为65;这时候我们在使用看一下身高随体重的分布,因为数据集就两个列;可以直接使用Plot函数
plot(women)
可以看得出体重和身高大致呈现线性关系,略有非线性的因素;这时候我们在回归建模前先看看两个变量的相关系数,这时候我们使用cor函数得到他们的皮尔森相关系数矩阵
cor(women)
身高体重相关系数高达0.995,说明高度相关;接下来我们使用lm函数建模
fit <- lm(weight~height,data=women)
summary(fit)
截距项和体重都和身高高度显著,模型残差1.525,调整后的可决系数是0.9903;模型算是接近完美了,不过由于我们前面看到数据有些轻微的非线性分布,我们能否改进这个模型呢?
多项式回归
这里我们使用多项式回归去拟合数据,给它增加一个二次项,也就是height^2,这里不能增加过多的幂次项,因为有可能导致过拟合,I(height^2),I函数具体用法可以查查;
fit2 <- lm(weight~height+I(height^2),data=women)
summary(fit2)
从上结果上三个项都高度显著,模型貌似更优了,模型残差0.384,调整后的可决系数0.999;
这里就说那么多
夏尔康,天善智能社区专家,通晓各种统计学习方法,熟练使用R语言建模,结合帅气与才智的不明吃瓜群众
Blog:
微信回复关键字即可学习
回复 R R语言快速入门免费视频
回复 统计 统计方法及其在R中的实现
回复 用户画像 民生银行客户画像搭建与应用
回复 大数据 大数据系列免费视频教程
回复 可视化 利用R语言做数据可视化
回复 数据挖掘 数据挖掘算法原理解释与应用
回复 机器学习 R&Python机器学习入门