登录
首页精彩阅读数据分析中常见的七种回归分析以及R语言实现(四)---多项式回归
数据分析中常见的七种回归分析以及R语言实现(四)---多项式回归
2017-01-23
收藏

数据分析中常见的七种回归分析以及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;

这里就说那么多


数据分析咨询请扫描二维码

客服在线
立即咨询