开发者学堂课程【机器学习算法 :总结与回顾】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7217
总结与回顾
内容介绍
一、违背基本假设的处理方法
二、如何合理的选择自变量
三、多重共线性问题的回归与处理
四、几种常见的改进后的回归方法
五、学习目标
六、思考与练习
一、违背基本假设的处理方法
回归模型的诊断就学习完成了,接下来做一个简单的总结与回顾。坦白说这一章还是比较困难的。对使用回归模型的前提条件应该很清楚了。比如对误差项是零均值、同方差、无自相关、正态分布等等。实际上在很多条件下是满足不了这些基本假设的,就列举了几个常见的违背基本假设的情况。包括异方差、自相关、异常值等等。在介绍异方差的时候介绍了它的坏处,它会导致普通最小二乘法失效,然后显示性检验失效,回归模型的应用效果极差。实际上一旦发生异方差的时候对回归模型的影响极大。通常在缺少一些关键的变量,就是自变量对方差的解释不足,有一些关键的自变量没有选进来,就导致残差里面包含了一些规律性的东西。它就不满足异方差了。可能在这种情况下根本就不适合用线性回归模型。选择线性的回归模型导致异方差的情况发生。或者是数据样本量比较少,存在一些异常数据,就特别容易带来异方差。还有一个比较明显的情况就是在持续分析的时候或者是在使用面板数据的时候,选择的数据之间存在一些明显的偏差,这个时候就会导致异方差。对于识别异方差也介绍了一些方法,比如直观法就是画一个残差图来看残差,它的表现是发散的还是在某一个值周围或者是在0这个值周围摆动的,或者是用量化的方法就是计算一下等级相关系数。通常缓解或解决异方差的办法是使用加强最小二乘。另外一种情况就是自相关。自相关就是移入了一些关键的解释变量或是选择了错误的函数形式或者是发生了蛛网现象。另外如果在进行数据加工的时候选择了不恰当的差分变换导致引入了自相关。自相关的识别也是有几种常见的方法,比如直观的图示检验法,或者是算一下它的自相关系数,自相关系数比较大说明它存在自相关。还有一个就是 D.W 检验法。如果要消除自相关有叠盖法、差分法,重点介绍了 BOX-COX 变换,它不仅能解决自相关的问题,同时还能解决异方差的问题。对于异常值有两种情况,如果自变量存在异常值识别的时候用标准化相差,有时候自变量也存在异常值,就是被解释的变量的外值有时候存在异常值,通常两种方法来识别,一是算它的杠杆值,或者是算一下它的库克值。如果想使用线性回归模型,一定要重点关注违背基本假设是否存在,如果存在要如何去解决它。通常是存在的,基本上很难有基本假设全部都满足的。
二、如何合理的选择自变量
在做线性回归建模的时候最初就介绍了非常大的问题就是如何选择合理的自变量参与到建模过程中来。首先要知道自变量选择的准则。通常认为残差平方和 SSE 比较小,决定系数 R² 比较大,一般就会认为模拟效果比较好,这其实是不对的,有些片面。实际上就是说这两个值只是反映了模型对当前数据的拟合情况,它并不能完全的决定这个自变量就是好。一般还会使用调整决定系数来看,这个也是越大越好。另外还有一些别的办法,比如算统计量,统计量越小说明模型越好。最常见的办法就是使用信息量,比如说赤池信息量(Akaike Information Creterion),赤池信息量它就等于 n·ln(SSE)+2p, 赤池信息量越小说明模型越好。在做自变量选择的时候介绍了三种方法,第一种叫前进法,第二种叫后退法,还有一种叫逐步回归法。前进法就是由少到多,就是刚开始的时候只选一个自变量然后逐个往里增加;后退法就恰恰相反,就是刚开始把所有自变量都选进来,然后一个一个减少,去算它的 ARC,看是否变小直到它最小。其实前进法和后退法都有自己的问题。比如像前进法它不考虑环境变化的因素,或者说它是终身制,一个变量它一旦被选进来,这个变量就不可能再被踢出去了。那后退法它也同样存在这个问题,它也不考虑环境变化的因素。就是一个变量它一旦被踢出去,它就永远再也没有机会被选进来了。后退法还有另外一个毛病就是计算量比较大,刚开始把所有的自变量全部加进来进行计算,这个量还是很大的。所以通常都使用逐步回归。它就是有进有出。
三、多重共线性问题的回归与处理
多重共线性对问题的影响也是很大的,它同样会导致估算方法失效,就是普通最小二乘法不能用了。像显示性检验这些都不能用了。最终的结果就是导致回归模型的使用效果极差。所以多重共线性是非常忌讳的一个问题。另外在现实的应用中经常会出现多重共线性,因为很多变量它本身就存在多重共线性的问题。如果选中的两个或多个自变量有相同的变化趋势,这个时候就非常容易引起多重共线性。或者是引入了之后的自变量,它有一个时间差,把这些变量都引进来了,看上去这些变量好像没什么联系,实际上它是一个滞后的关系,这个时候就非常容易引起多重共线性。如果要判断模型是否存在多重共线性,通常有几种判断方法。第一个是从模型里增加或减少自变量,结果就会发现回归系数估计值变化非常剧烈,这个时候就会认为它存在多重共线性。或者有的变量从常识角度它非常重要,但没有选到模型里面去。或者选的模型里面没有通过显示性教研,就表明可能存在多重共线性。另外一个就是变量系数的正负号和从业务角度的理解是相反的。另外一个办法就是算不同自变量之间的相关系数,相关系数比较大可能存在多重共线性。另外一种就是在做线性回归的时候,有一个好处是它不但能估算系数,还能估算这个系数的标准误差。就是算出这个系数来之后,发现这个系数的标准误差很大,就是它的变化范围很大,那也有可能存在多重共线性。当然还可以用量化的方法来算,比如算一下方差扩大因子或者叫方差膨胀系数。另外也可以使用特征根判断法,计算一下条件数 KI,KI 的值如果大于100,存在严重的多重共线性;如果在10到100之间,就可能存在多重共线性;如果是0到10,基本上就没有问题。如果碰到多重共线性问题,第一个考虑一下增大样本量,多重共线性有可能是因为样本太小导致的,尝试增大样本的数量。或者是手动删除一些不太重要的自变量,可能是自变量选择的时候有问题。另外的办法就是不要再使用回归系数的无偏估计了,尝试一下有偏估计的方法。比如使用岭回归,或者使用 LASSO 回归,或者使用偏最小二乘法等等这些有偏估计去估算模型的系数。
四、几种常见的改进后的回归方法
其实改进后的回归方法非常多,这里只讲了两种,就是岭回归和 LASSO 回归。其他的还有偏最小二乘回归。在做风险评估的时候,实际上是考虑了它的惩罚项,常见的有 L1 范数和 L2范数。如果选择的 L1 范数就是 LASSO 回归,如果选择的 L2 范数就是岭回归。如果两个都选择了,它就是一种新的回归方法。L1 范数更倾向于把某一些不重要的自变量对应的项的系数变成0,而对 L2 范数而言它通常会保留所有的自变量,只是对某一个自变量的系数可能会设置成一个比较小的值。
五、学习目标
1、掌握违背基本假设的处理方法
2、能从多个变量中选取合适的变量进行回归
3、能识别多重共线性并合理解决
4、了解常见的改进后的回归方法
六、思考与练习
1、理解线性回归的基本假设,并能描述常见的违背基本假设的情况及处理思路。
2、理解变量选择的标准,掌握常见的变量选择方法。
3、结合线性回归,理解正则项的含义,了解岭回归和 LASSO 回归。
4、对 Motor 的例子,去判断有无存在违背基本假设的情况,并处理。同时请进行变量选择。在做显示性检验的时候,发现方程虽然显著,但所有的自变量都不显著,这就表明一定是存在多重共线性。
5、找几个回归的例子,去进行模型诊断和优化。