线性回归分析与实战(下)

上篇详细介绍了线性回归的原理、优缺点、应用场景等内容,大家一定觉得意犹未尽,线性回归如何实施落地呢?本节内容主要介绍线性回归的步骤和案例分享。

四、怎么做线性回归

线性回归基本可以按照以下6个步骤进行:

1.探索分析。计算自变量的描述性统计量,作散点图,分析因变量与自变量的相关性

2.变量和模型选择。根据业务及模型选择自变量,并进行模型和参数估计

3.假设条件验证。根据第2步结果,查看评价指标、需满足的假设检验结果(整个模型的F检验、自变量系数的t检验,残差图等)

4.共线性和异常值检查。通过VIF、COLLIN、Collinoint进行共线性检查,通过Rstudent残差、Cook’s D统计量及DFFITS进行强影响点检查

5.模型修改。如果第3、4步的检验结果表名模型有问题,则需重新进行模型选择和拟合,并返回第3、4步的检验

6.模型验证。确定最终拟合模型后,将模型应用于验证数据集进行模型的验证。

(来源:《深入解析SAS》)

五、线性回归实例分析

由于数据机密原因,因此未使用实际工作数据,以R自带的iris以鸢尾花的特征作为数据来源。

该数据集由3种不同类型的鸢尾花的150个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。

该数据集包含了5个属性:

Sepal.Length(花萼长度),单位是cm;

Sepal.Width(花萼宽度),单位是cm;

Petal.Length(花瓣长度),单位是cm;

Petal.Width(花瓣宽度),单位是cm;

Species(种类):Setosa(山鸢尾)、Versicolour(杂色鸢尾),Virginica(维吉尼亚鸢尾)。

模型目标:Petal.length作为因变量,探索与其他自变量的线性关系

Step1:首先对数据集的变量及内容做一个初步探索,由于数据的量纲在同一层级,且单位一致,因此未做标准化处理

Step2:发现Species为分类变量,包括:setosa、versicolor、virginica三类,因此做转化成哑变量:issetosa、isversicolor、isvirginica

Step3:以Petal.length作为因变量,其他连续性变量做散点图,观察相关关系

由散点图比较明显看出:Petal.length与Petal.width、Sepal.length有比较明显的相关关系

Step4:以Petal.length为因变量,除Sepcies外的变量为自变量,利用step()逐步筛选变量法,做初步的多元回归拟合,选定自变量为:

Petal.Length~Sepal.Length + Petal.Width + isVirginica + isVersicolor

模型分析:

1. 选入的自变量除Sepal.Width外,均明显与因变量显著相关

2. Adjusted R-squared为0.9778,& 整体模型的F检验p-value

3. 残差为0.2627,也是比较小的

Step 5: 回归诊断及共线性检查

分析:

1. 如第三部分介绍,样本数低于2000,采用Shapiro-Wilk(W)检验,p-value 大于0.05,说明不能拒绝原假设(样本服从正态分布),即残差服从正态分布

2. KAPPA值大于100,说明选取的自变量中包含共线性问题(即自变量间具有强相关性)

因此,需要对选定的自变量进行修正。

Step 6:模型修改。

自变量的选择是不断探索的过程,但是优先的选择方法应该是来源于实际业务,也可以结合主成份分析、因子分析等技术进行选择。

经过多轮测试,选定模型为:

Petal.Length~Sepal.Length + Sepal.Width + Petal.Width

分析结果同Step4。但总体误差略有增加。

Step 7: 回归诊断及共线性检查

分析结果,同Step5。残差服从正态分布,且不存在多重共线性

由残差图,也得出未存在强影响点(一般认为Cook距离大于1即是异常值)

综上步骤后,得出最终选定的模型为:

Petal.Length=-0.2671+0.72914×Sepal.Length - 0.64601×Sepal.Width + 1.44679Petal.Width

至此,已详细介绍了线性回归如何应用于实际案例。显然模型的选择不是一蹴而就的工作。实际场景中,如果样本量允许,建议将原始数据集拆分成训练数据集,验证数据集。训练数据集用于搭建模型,验证数据集用于模型的验证,避免选定的模型过度依赖于训练数据集,而造成过度拟合。两部分比例建议为7:3。

作为数据挖掘实战中最常用的模型之一,只有在实战中不断的优化总结,才能有的放矢,扬长避短,实现有效的挖掘应用。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180418G02K8Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券