查看原文
其他

数据分析中常见的七种回归分析以及R语言实现(四)---多项式回归

2017-01-23 夏尔康 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机器学习入门 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存