当前课程知识点:基于R语言的社会统计分析 > 第十一章:多元回归 > 11.3 潜在问题及解决方案 > Video
好下面我们来一起聊一聊在构建多元回归线性模型的时候
我们可能面临的一些潜在的问题
那所谓的这些潜在的问题呢
在传统的多元回归的教科书上
是把它放在回归诊断的那一个章节的
那如果说你想特别特别系统地
学习多元回归的话
有一本书
专门讲多元回归啊是谢宇老师写的
这本书非常好
那如果说想把多元回归学明白其实可以用
一个学期的课程来讲
那稍微简短一点也可以用两个这个
两节课的时间来
专门的讲回归诊断这一小部分内容
为什么呢这个问题非常复杂
我们可以说就是鉴别与克服这些
建模的时候存在潜在问题呢似乎
非常具有艺术性
那英文的教材里它直接就说说
identifying and overcoming these problems is as much an art as a science就是
不知道到底是科学还是艺术了好像很具有艺术性
那
主要我们谈的是什么问题就是说很多同学呢
认为只要我学会了
构建多元回归模型
我学会了用软件去估计
模型的回归系数以后
我就可以只要拿来数据我就
建模是要拿来数据我就建模
那其实呢回归是有一些要求的
在不满足这些前提假设条件下如果我
非要构建一个模型呢其实这个模型也不见得是有效的
那这些问题呢和我们
这个建模时候的基本假设紧密相关
那我们下来就分别来看一看都会存在哪些潜在的问题
那第一个问题就是响应变量
与自变量间的
非线性关系
我们前面
就说过说比如说f检验啊
要想使f检验成立我就要求
自变量和因变量之间必然是一个线性关系如果
不是线性关系呢
不光是f检验啊你整个模型都可能是无效的
那下面呢
第二个问题是误差项间的相关问题
误差项方差
如果不是常数σ方
会产生什么样的问题
比如说你的响应变量y上
存在一些异常值啊有一些
点它和其他的点呢特别不一样
还有强杠杆
作用啊比如说自变量x
有一些特别之处
还有最后就可能是我们听到的关于共线性问题的讨论
好下面我们就一个一个具体来讲啊
对于每一个问题呢我们都会聊一聊首先
遇到这样的问题我们会产生
什么样不良的后果
然后我们怎么样去
诊断它怎么样去发现问题
最后呢我们要
谈谈怎么样去解决问题
好首先我们来看看数据的非线性问题啊
每次都在讲就是做
线性回归一定是有线性假设的
那如果说响应变量和
自变量之间恰巧
不是你想象的那种线性关系
你
面临的后果呢首先你
整个的模型估计的这个
结论可能都是
令人产生质疑的存疑
然后你模型的
预测的
准确性可能显著的降低
就是你预测的那个
估计值可能和你的观测值
差得很远啊尤其是在比如说
如果
明明是一个曲线的关系那在
曲线的这个
凹陷的地方呢这个
残差可能就会很大
然后诊断
诊断的话我们用到
一个
非常好的工具啊叫残差图
残差图是一个什么样的图形呢
我们看看左下角这张图啊
左下角这张图横轴
它叫做fitted values
叫做拟合值
或者我们有时候管它叫预测值有时候管它叫
估计值
总之它对应的是
y(hat)
是基于模型估计系数
产生的那个y的
取值
然后我的y轴是什么呢residual 就是我的残差
残差是什么
突然问你你可能又
反应不过来啊残差
是观测值
和拟合值或者说
我们讲说是观测值和预测值之间的差距
我们希望残差越小越好同时我还
要求
所有的残差的
均值应该等于0
同时
我说残差和残差之间没有任何
相关性啊
所以理想情况下
如果我非要画一个
x轴是拟合值
y轴是残差的这样一个残差图
它
理论上应该呈现的一个
形式是
残差图应该
看不到任何可
分辨的图案和趋势
我希望的是什么叫
看不到可分辨的图案和趋势呢就是
我希望我的
点
这个图上的个点应该
是散落各处的
很随机的一个
分布啊就好像我们之前讲
相关系数的时候如果x
y之间没有相关性
我们希望在散点图上看到
点很随机很随性的这个
散落各处
那残差图也是一个意思
那另外呢我同时
还希望它应该是
沿着中间这条虚线虚线是残差是0啊
它应该是
以这个0为中心
而上下振动的
就是它应该是
既有在线下的又有在线上的四处散着
那
我们现在看到这个残差图显然
是有一些
可分辨的趋势的对吧
它是一个
凹的曲线
然后
红色的这条线
实际上它是一种
非参数的对
现实数据的一种拟合
就是
它会
很紧密的按照现实数据
与实际呈现的形态给我们一种
非常好的平滑就告诉你说
大致上数据的实际趋势是什么样子的
那如果说
对一个
没有趋势的残差图画一个这样
线呢实际上我们希望看到的是类似于
在
0上的这条虚线这样的位置啊所以
我们希望看到这条红线和
黑色的虚线应该是重合的
那很显然离得十万八千里对吧
那说明我的数据呢
好像给了我一些
这个非线性的证据
那下面我就要想怎么样来解决这些问题啊
解决问题呢就是要对
自变量就是对模型里的x
进行一些非线性转换
怎么转呢
你可以考虑对x取对数加一个log
可以考虑开根号
可以把它加平方
但对于不同的数据形态呢
我们具体用哪种方法
是不一样的
那我们这里面不展开说就是
选择怎么样的这个
非线性转换
非线性转换的方法
因为我们没有时间具体来讲了
由同学如果有兴趣的话
随便的找到一本
稍微偏理论一点的回归分析
的书或者我刚才讲谢宇老师讲的那本
回归分析的书你可以看看
非线性转换的问题
那
我们看右边这张图啊
对于我们这个数据
我做了一个线性转换
这个假想的数据啊
做了一个线性转换用到的是它说这个
表的台头叫做
它的意思就是
把x加了一个平方啊
加了一个平方以后我们看
这条现实的
红线
比起刚才的那个
那个大凹陷的情况已经有了很好的
改善了啊
但是仍然还是有
一些小小的趋势存在的
那我们说就是在原有基础之上一定是
有所进步了
这是关于
数据的非线性问题你一定要注意啊
对模型进行非线性的转化其实有点
就是死马当活马医的意思啊
我并不一定说
一定能找到一条非线性转换的
途径
不一定百分之百的但
可能通过我一个小小的转换
不管是加对数
取对数也好还是开根号以后
可能会有所改善 那已经是
一个很重要的进步了
第二个问题关于
残差项的相关问题
理论上要想使一个
多元回归模型很合法的成立啊
合法的成立的话
我希望残差项之间没有任何的关系
我们说残差是什么
是随机误差是我们
模型所解释不了的部分是我们
靠理论靠猜测
都不能解决的问题它们
完全是很随性的我没有任何事情可预测到
包括它们本身就是
在不同的xi的取值上呢
不同的残差它应该是没有任何关系的
那如果说残差项
产生了某种程度的关联后果是
直接的后果是估计的标准误被低估
我想问问大家如果估计的标准误被低估直接的影响是什么
标准误被低估了以后你会觉得
你会产生一个错觉认为
我的模型估计准确性
特别高因为它的扰动很小
离散程度很小就说明
假设说我抽了好多个样本得出了好多个回归系数
我会发现这些样本和样本之间的回归系数之间的差距非常小
说明我的样本代表性很高但实际上
可能这种
较低的标准误是因为残差项之间的相关性引起的
这是直接后果就是给你产生一种错觉
那怎么诊断呢
这个残差项相关的诊断呢
有一种方法是直接画图的方法
但是画图的时候一定要联系理论我们举一个例子
比如说这个经济时间序列数据为例啊
我们
为什么残差项会产生相关性
靠理论想经济时间序列是
同一个解释变量在
不同时间测量值时候的
取值那也就是说
如果是同一个个体或者同一个公司的数据啊
它只是这个
收集数据时间不同
那它不同的观测值之间必然是有一些相关性的
所以我会想要解释残差和时间的关系
我们看看你们到这张图啊
ρ=0
代表的是
残差项之间的相关性等于0的情况它应该是完全是一个
扰动的情况啊然后你们看当这个
残差项的相关系数变大
等于0.5的时候它好像就
有了一定的趋势啊
然后到残差项的相关系数等于0.9的时候这个趋势就显得
更明显了
但不是一个很平均的扰动了
那解决方法是什么
最常用的解决方法用到的是多水平模型
英文叫做 multilevel analysis 它有的时候也用来
去
分析追踪数据啊
追踪数据的特点就是追同一个人在
后面我们最后一节课会
稍微提一点关于多水平模型的问题现在先
稍微说一下这个多水平模型的特点就是要解决
这个残差项相关的问题
那什么情况下残差项很容易相关
对同一个个体我测量很多次或者是
测量已经形成了某种自然匹配的数就之前我们讲paired t-tests配对
T检验的时候实际上也是这种问题
这是残差项相关的问题那第三个问题
叫做误差项
方差非常数
σ方non-constant variance of error terms
我们对于
这个残差项或者叫做误差项的要求特别多
我刚才说的是我要求残差项之间没有关系
另外我还要有一个要求
我们看对于不同的xi的取值
对于不同的x的取值
那y呢一定会有不同的取值这就是
随机性的存在啊就是说不一定
有一个x值就能确定一个y值
那假设说
对于同一个x取值我有好多好多个y
那每一个y和
这个y的预测值之间就会形成不同的残差
那残差和残差之间又会形成一个方差
对吧就是我关注的是不同
残差间的离散程度那就会形成一个方差
有一个很重要的假设我认为不管我的
x取值是多少
那么这个残差的扰动
应该是一致的所以我假设
跟
这个残差的方差也就是这个σ方
应该是和x的取值没有关系的
而且它应该是一个常数
那如果说
不是常数
产生的不良后果
首先第一个它认为标准误的估计
置信区间的估计以至于后面假设检验
都会产生偏误
那诊断呢
又要用到我们无敌的残差图了
这里面我们说误差项方差非常数σ也可以把它理解成
异方差性就方差不一样了也叫作异方差性
然后我们看
残差图
如果有什么样的
形态会告诉你说是异方差呢
一个很典型的形态叫做
funnel shape如果呈现漏斗形
就说明
误差项的方差应该是
非常数的了我们下面看
一个假想的例子啊
左下角这张图横轴还是
拟合值然后纵轴是残差
你会发现
拟合值比较小或者是
x值的取值比较小的情况下
这个
残差的离散程度好像比较小都
就在0之间啊
紧密地团结在0左右
然后随着这个拟合值y(hat)的增大
你会发现这个离散程度也随之增大
像一个漏斗一样啊x值越大
这个离散程度越大
这是一个特别特别简单的
异方差性特别直观的异方差性的体现
那
解决的办法是什么呢
我们这里面用了稍微这个数学
数学性稍微强一点的一个
名词一个term叫凹concave function
我要用一种凹函数对y进行转换那什么是凹函数呢
典型的凹函数就是
对数还有开根号啊假设我对y
取一个对数或者对它开根号
实际上就是把这个离散程度这个本来这个平方
这种方差的离散程度有一种扩大
效应我现在要把它开回来就开根号的形式
把这个离散程度把它收回来啊
用凹函数
那可以选择用log
logy的方式啊你看右边这张图
你把y变成logy以后显然这个漏斗的形状就
就没那么明显了啊这个数据显得也比较的
分散了
然后还有一种
这里面呢它说用的是
改用加权最小二乘估计法
这就回到我们之前讲的问题了啊我们说
估计一个回归模型我们最终呢
是想找到一条线
能够最好的
代表
空间里的这些观测点
那我们说
什么叫最好的代表那些点
找这条线的
方法有很多种
那最小二乘估计
只是我们众多方法中最简单最直观最
浅显易懂的方法之一特别好用所以它流传甚广
那其实呢
找到这条回归曲线的方法很多
另外一种很常用的方法叫做极大似然估计
那面对一些特殊的数据特性还有另外的
很多种很高级的方法啊
比如说
最小二乘估计法大家
不用具体的理解最小二乘估计法
加权最小二乘估计法到底是怎么算的啊
只要知道当你的误差项呈现了异方差性的时候
有一种方法供你选择叫做加权最小二乘法
用统计软件都可以很容易做到
下面一个问题这是第四个问题了啊
是异常值的问题
在不同的
在等式左边发生的异常和在等式右边也就是响应变量发生的异常和
自变量发生异常值的专业术语不一样
通常我们在
回归模型这个框架下讲异常值的时候讲的是
响应变量y的异常
那如果y
上面出现了异常值
会有什么样的后果
可能会
对参数估计值产生影响这里面我用
绿色把它标出来是因为并不一定
会对参数估计值产生影响
然后可能会对rse产生影响啊
残差标准误产生影响也可能对r方
产生偏误啊
那我们下面看看左下角这张图
我为什么说这个
参数估计值
并不一定受到影响呢
假设说啊就是所谓的异常值就是说y的取值
远远地不同于其他值
我经常举一个例子
举得例子是我们想像一下这个
大家出入职场啊开始找工作
然后假设说大家都应聘一个秘书职位
然后工作经验少
的人他的起薪会相对较低对吧
那如果说突然出现了一个人
他和大家同台竞争但他的工作经验有
三十年之久了
那可能因为他的工作经验
很久所以他的
经验和收入的关系
如果看经验和收入的关系可能因为
他的收入高是因为他的经验高所以仍然是一个线性的关系
然后如果你去做回归的话其实这条直线的截距和斜率都不受影响
所以一定要
注意一件事啊y
y轴上的异常值也许并不一定
对回归直线产生影响
但是它一定会影响到rse和r方
那诊断的方法呢
又用到了那个无敌的残差图啊
我们看
中间这个残差图
它的y轴呢就属于residuals
然后你会看到
其他的点表现都不错啊
很平均的团结在0左右
但偏偏有一个人这个第20号选手
他在图的最上端啊
然后和其他值很不一样
然后另外呢
还有一张图叫做studentized residualas
studentized residualas相当于
把残差进行一个标准化的动作啊
有点像什么减均值除标差这种感觉啊但是
这个studentized residualas
它是每个残差ei除以其对应的
估计标准误啊稍微有一点点不同
那
如果说这个studentized residualas
大于3的话我们就一定认为它是一个异常值了啊我们看到
这个20号选手呢他
比6还大呢那显然是个异常值了那解决办法呢
一种情况如果你很确定
什么其他事情都没有
如果你特别确定它就是异常然后
没有其他理论可以解释的话那就把它删除掉
但是这要说我们
在删除任何一个变量的时候都要慎重啊
因为以这个y轴上的异常值为例啊
它的异常也有可能是由于缺少了重要变量造成的
那现在我们只有一个值啊那如果说在
20附近又多了两三个数
那有没有可能是因为某种非线性的关系造成的呢
所以这是或者这是有另外的因素
对它产生影响造成的呢
所以
要么删除但在删除之前还是要有一些考量的
所以我们看这是
这是这个异常值的诊断和处理
好第五个问题叫强杠杆作用啊我们说
等号左边的奇怪的
数叫异常值等号右面在
自变量上异常值呢叫强杠杆作用
是自变量xi上不寻常的点
如果xi上有特别奇怪的数它的
直接的产生的
影响呢是回归模型的估计值都不太对路了
那诊断怎么诊断呢
那这个问题呢因为
自变量x上的异常值对模型
影响比较大我们专门还有一个
造就了一个统计量来
研究这个问题
这个统计量呢叫做hi啊叫做leverage statistic
或者翻译成杠杆统计量
hi它就等于n分之一加上右边这一坨东西
我这个i'
它的意思是除去了
第i个变量以外其他的变量
的其他变量啊
我们看hi代表的是
针对的是第i个观测值的一个杠杆统计量
所以说如果你有一套数这里面有
200个观测值
你就可以生成200个
杠杆统计量然后
对于每一个观测值你都可以
研究它到底是不是异常那
这对于每一个
观测值你都算一个hi算出了hi以后呢你要
确定它到底
是不是异常
依靠的标准是它是否
大于p+1除以n
p代表的是模型中有多少个自变量
n呢代表的就是你的
观测值的总数你的样本量
如果说确实发现有异常值了
我们就可以大踏步的把它删除了啊
这是关于强杠杆作用点high leverage point
最后一点我们来讲一下共线性的问题啊
共线性
其实是大家
一说到回归诊断的时候第一个会想到的问题啊collinearity
我们其实刚才在
讲这个多元回归线性模型的时候
我们讲那个
广告预算和销量例子的时候已经有所提及了啊我们说把
电视
报纸和广播这三个变量一起一股脑
扔进模型以后我发现报纸本来
一打一的时候它是显著的
那放进模型了以后不显著了
为什么
因为报纸和收音机
和广播呢高度相关
那你放到模型里以后呢
我就分不清楚到底是报纸的
影响还是广播的影响了
所以总结一下
第一个很严重的后果啊就是
出现共线性以后第一个很严重的后果就是
很难以区分
高度相关的自变量
对响应变量的
独立影响
然后另外其实它还有一个很可怕的问题它会
降低模型系数估计的准确性
然后使系数标准误的估计增加
怎么来理解这个问题呢我们来看一个例子啊
这个例子来自于之前我们举的这个
信用卡的卡账
及其相关因素的这个例子我们在
将虚拟变量的时候讲了这么个例子啊
还画了一个散点图的矩阵
看了各个变量之间的相关性
那假设说我
构建第一个模型啊
我想知道年龄还有你的
刷卡的限度刷卡的限额
和卡账的多少有没有相关性
于是乎我把年龄放进去了然后发现
p值是0.0007
说明
这个年龄越大
刷卡的卡账会
越少说明年纪大的人可能
消费欲没有那么强啊
然后limit这是一个正相关的关系了啊发现这个
卡的限额越高那欠账就也越高
这是我们刚才看图的时候就已经体现的关系了
那看age的时候如果之前你还
记得我们乍一看那个散点图的时候我说我看不清楚
太明显的趋势
但是通过数值的方法用建模的方法
实际上看出来它呈一个负相关的关系
p值虽然显著性没有
limit那么高啊但它也是显著的
然后我们在注意一下这个standard error
就是标准误的量级
我们看limit它在这个模型里面
标准误是0.005
这说明什么呢
说明我们这个模型里面对限额和
卡账之间关系这个系数估计的准确性还是比较高的这个
样本的代表性也比较好
下面第二个模型
我把age去掉我
换成一个rating
如果你还记得的话我们之前那个rating和limit之间是一个特别强的
相关的关系
就是说这个人
必然是信用评级很高所以他的
刷卡的限额才会很高
那
这两个变量就形成了一种
共线性那我们下面
放到模型里面估计看看啊
你会发现rating
是显著的但显著性呢并没有很高
limit在刚才model1第一个模型里面它是
非常非常显著的那在这里面突然它变得不显著了
而且
再关注一下它的 standard error它的标准误
之前那个模型的标准误是在0.005
现在它的标准误是0.064
实际上它的标准误
大大的膨胀了是原来的十倍
说明
不仅我们说加了一个
很高度相关的
自变量以后我们会
分辨不出到底是rating对
欠账
起作用了呢还是limit起作用
除此之外我们还会影响这个
标准误的这个准确性
那诊断怎么诊断呢
我们
第一个方法用相关系数矩阵啊这是我们讲
广告效应的那个
例子的时候已经给大家
演示过了啊我首先要
画一个自变量和自变量之间相关性的这么一个矩阵
如果说比如说其他的
自变量之间它们的相关性都在0.0几左右而
这两个变量相关性到0.3 0.4
你就要小心了
然后下面还有一种东西呢叫膨胀因子
variance inflation factor简称vif
有时候我们直接说要看vif的值啊
这个膨胀因子呢是用来衡量到底
某一个变量
是不是和模型里面的其他变量产生共线性了
如果这个vif是大于10的话我们就要考虑
把这个变量剔除了
那我们看vif
如果是βj啊针对的是模型里面第
j个自变量
它前面的系数它等于什么呢
它等于1除以1减去r方xj
然后x减j什么意思呢
我们看这个r方它好像一个判定系数对吧
它这个判定系数的意思指的是
我现在我不把响应变量
就不把y当成相应变量了
我把xj就是把我关注的第j个自变量
当成响应变量
用除了这个自变量以外的其他自变量对它进行回归
也就是我想知道其他的变量能不能很好的
解释我关注的这个自变量
你想象一下如果说模型里面有共线性的情况
那很可能出现我xj本身可以
作为一个响应变量模型里面其他变量可以很好的
代表我这个xj
所以如果说这个r方值很大的话那很可能
这个模型就有共线性的问题了那r方很大
近乎于1了那1减去这个数呢就会变得很小很小
那再分之一
以后vif就会变得很大很大
所以如果说vif很大
它这个就显示说xj是一个
膨胀了的东西啊
它就是
共线性的很强烈的证据
那如果发现
某一个变量
会产生共线性的问题那
第一个很直接的解决办法就是把它去掉对吧
去掉这个问题变量
那另外呢如果你实在不想放弃它
那你就找到和它
非常相关的那个变量是不是可以考虑把这两个变量
合并呢比如说
我可以考虑把它加和再除以2啊
这种做法但并不是总合适的比如说我把rating和limit
怎么合并啊这两个数
单位都不一样
对吧一个是级别一个是限额的额度
我没有办法把它直接合并
那你就可能只能
很心疼的把它扔掉了
这是关于共线性的问题
好以上我们就把你在构建多元回归模型的时候
可能
遇到的潜在问题很粗略的介绍了一遍
实际数据总是比我们的理论要复杂得多
如果说你真的需要构建一个比较复杂的
多元线性模型
建议大家
还是要静下心来去
好好的读读我们的参考书关于多元线性模型这个
模型构建模型诊断上面的细节问题
相信你会受益匪浅的
那下面呢我们就用R语言来
来给大家演示一下怎么样去构建一个
多元回归模型以及怎么去进行
模型诊断
-1.1 什么是统计学?
--视频1.1
-1.2 数据
--视频 1.2
-1.3 随机化原则
--视频 1.3
-1.4 数据收集方法
--视频 1.4
-第一章:绪论--1.5 习题
-2.1 描述统计概述 - 社会学概念的量化问题
--Video
-2.2 变量的分类
--Video
-2.3 描述统计方法 I: 制表法 Tabular Method
--Video
-2.4 描述统计方法 II: 绘图法 Graphical Method
--Video
-2.5 描述统计方法 III: 数值法 Numerical Method
--Video
-第二章:描述统计--2.6 习题
-3.1 探索性数据分析
--视频3.1
-3.2 EDA的制图原则
--Video
-3.3 R语言初体验
--R 语言初体验
-3.4 CRAN 和学习资源
-3.5 R 基础知识
--Video
-3.6 图形和数值
--Video
-4.1 概率的基本概念
--Video
-4.2 离散型与连续型变量的概率分布
--Video
-4.3 正态分布
--Video
-4.4 抽样分布
--Video
-第四章:概率分布--4.5 习题
-5.1 用抽样分布来代表抽样的变异性
--Video
-5.2 样本均值的抽样分布
--Video
-5.3 中心极限定理
--Video
-5.4 点估计和区间估计
--Video
-第五章:统计推断 - 估计--5.5 习题
-6.1 区间估计
--Video
-6.2 总体比例的区间估计
--Video
-6.3 置信水平
--Video
-6.4 总体均值的区间估计
--Video
-第六章:统计推断 - 区间估计--6.5 习题
-7.1 绪论
--Video
-7.2 一个显著性检验的五个部分
--Video
-7.3 均值的显著性检验
--Video
-7.4 比例的显著性检验
--Video
-7.5 检验中错误的类型
--Video
-第七章: 统计推断 - 显著性检验--7.6 习题
-8.1 预备知识
--Video
-8.2 比较两组比例
--Video
-8.3 比较两个独立样本的均值
--Video
-8.4 比较两个相依样本的均值
--Video
-8.5 方差分析(选学)
--Video
-第八章:两组比较和多组比较--8.6 习题
-9.1 变量间的关联分析
--Video
-9.2 列联分析
--Video
-9.3 定序变量间的关联关系
--Video
-第九章:变量间的关联分析--9.4 习题
-10.1 简单线性回归模型概述
--Video
-10.2 模型系数估计
--Video
-10.3 评价系数估计的准确性
--Video
-10.4 评价模型的准确性
--Video
-10.5 R Lab: 用R构建简单线性模型
--Video
-第十章:简单线性回归--10.6 习题
-11.1 多元线性回归概述
--Video
-11.2 多元线性回归
--Video
-11.3 潜在问题及解决方案
--Video
-11.4 用R语言进行多元线性回归
--Video
-第十一章:多元回归--11.5 习题
-12.1 社会科学中的分类问题
--Video
-12.2 Logistic回归概述
--Video
-12.3 Logistic回归系数估计
--Video
-12.4 Logistic回归模型评价
--Video
-12.5 其他多元统计方法
--Video
-12.6 R语言实践
--Video
-12.7 结束语
--Video