一元(多元)线性回归分析之Excel实现
作者简介
okajun
个人博客:https://ask.hellobi.com/blog/okajun
工作中最常用、最简单的估计就是一元(多元)线性回归分析了,比如预测销量等,今天来分享一下Excel的实现方法。
1. 一元线性回归
先说一元:使用R语言中的women数据集,记录了15为女性的身高和体重数据,我们需要建立一个模型,当得到一名女性的身高时,来预测她的体重。
数据如下:
1.1 数据探索
共有15条记录,2列数据,首先我们做散点图,观看数据分布特征:
可以看到数据分布特征非常明显,呈现线性分布,我们添加趋势线,并显示方程,可以看到预测模型。
得到的R²=0.991,非常接近1,说明模型能够解释99.1%的方差,效果非常好。
1.2 构建模型
我们再用Excel自带的数据分析工具,来看一下模型的更多信息及检验情况:
调出数据分析工具:文件→选项→加载项→
,即可得到模型输出结果。
1.3 模型解读
下面对结果进行解读(这一步非常重要):
首先看R²,或者调整R²,它反映了模型的解释能力(即方程能解释多少方差),越接近1,说明效果越好,一般高于80%就说明模型的解释能力较好。
然后看F检验,即对方程是否有线性关系的检验,原假设H0:方程没有线性关系,我们看到P值(Significance F)< 0.01,故拒绝H0,认为方程具有线性关系。亦可说方程通过了F检验。
再看t检验,即对一元线性方程的截距项α和系数β进行检验,H0:α=0,可以看到P<0.01,拒绝H0,说明α通过了t检验;同理,β也通过了t检验。
通过上面3步,基本就可以确定方程的效果了,如果你仅仅是为了预测,个人认为看到这一步就OK了。
下面我们更深入的看一下这个模型:
我们知道一元线性回归使用的是OLS(最小二乘法),它有一些先验条件,比如数据服从正太分布,方差齐次性;还要看一下是否有离群点、高杠杆值、强影响点的影响;样本数据过少的时候即使得到的模型效果很好,也未必稳健。(有兴趣的可以查阅R in Action这本书)
我们继续看一下Excel中输出的图形:
残差图:可以看到数据并没有散乱的分布在X轴两侧,而是呈抛物线的形状,说明模型中需要引入一个二次项,从散点图中亦可以看出。
正太概率图:散点分布在一条直线上,说明服从正太分布。当样本足够大(一般认为≥30)时,一般不需要太关注正太分布性。
以上:一元线性回归的部分结束,下面看多元的。
2.多元线性回归
多元:我们找到了一个关于薪资的数据集,共计52条记录,5列(性别,年龄,工龄,教育程度,年薪),我们根据年龄,司龄,教育程度来预测年薪。性别为分类变量,我们不引入回归方程,有兴趣的话可以使用ANOVA看一下男女在薪资上是否不同。
数据如下:
思路同一元一样,先看数据分布:
可以看到年龄与年薪呈明显的正相关,且有明显的线性关系,同样做工龄*年薪,教育程度*年薪的散点图,可以得到同样的结论,
我们使用数据分析工具来做回归方程(操作方法同一元),我们直接解读结果:
从结果来看:方程:年薪=-44632.8+2303.837*年龄+1952.72*工龄+8052.969*教育程度 效果非常好。
如果你只是为了做预测,模型检验到这里就可以了,但如果你要解释模型,并从稳健的角度出发,我们还要看一下模型的先验条件及模型检验:
1.方程是否符合现实逻辑
例如:我们认为随着年龄的增长,年薪也会更高,所以年龄的系数2303.837必须为正数。
2.计量经济检验(共线性、异方差、自相关)
比如:我认为年龄和工龄可能存在自相关(两者的相关系数为0.87),那么我们就需要做一下检验
以上,为Excel的操作,实现起来非常简单,方便,如果你需要更专业的模型和检验,推荐使用R,请见《一元(多元)线性回归分析之R语言实现》。
如有不正之处还请大家指出,如有更好的建议也请不吝赐教,也欢迎大家多多推荐,谢谢。
注:本文所用数据集,公众号后台回复“回归分析”获取!
公众号后台回复关键字即可学习
回复 R R语言快速入门及数据挖掘
回复 Kaggle案例 Kaggle十大案例精讲(连载中)
回复 文本挖掘 手把手教你做文本挖掘
回复 可视化 R语言可视化在商务场景中的应用
回复 大数据 大数据系列免费视频教程
回复 量化投资 张丹教你如何用R语言量化投资
回复 用户画像 京东大数据,揭秘用户画像
回复 数据挖掘 常用数据挖掘算法原理解释与应用
回复 机器学习 人工智能系列之机器学习与实践
回复 爬虫 R语言爬虫实战案例分享