本节主要包括:
在这里先给大家普及一个单词 aftermath 创伤!真的是,,,学完实变函数心灵受到了极大的创伤,,,
言归正传,接下来的几章我们会说明,在回归的三大基本假设不满足的情况下,会有什么解决方案。
还记得回归的三大假设嘛?他们是:
- 解释变量
是确定性变量,设计矩阵是满秩矩阵。
- 随机误差项的高斯-马尔科夫条件:
- 随机误差项的正态假设
在本章中我们主要研究不满足第二条的情况我们该如何处理。
一、异方差性
数学上说就是 。现实中这样的例子也有很多,比方说收入模型,贫穷如我的人整天就会想怎么才能吃饱,就算想买点东西也买不起,穷人之间的购买力差异就很小,而富有的人的话,有的人出手阔绰,有的人比较节约,这就导致了富有的人支出差异很大。在异方差出现的时候,会有很多问题。比方说参数不再是最佳线性无偏估计(但依然无偏),显著性检验也失效了。所以回归的效果也很不理想。所以统计学家要想办法去侦测到它,并且努力去消除它。
异方差的检验
1.残差图分析法
因为正常情况下,,所以异方差性是可以通过残差看出来的,这就是残差图检验的由来。
以残差ei为纵坐标,以其他适宜的变量为横坐标画散点图。
常用的横坐标有:
1.拟合值;
2.横坐标,;
3.观测时间或序号.
在满足假设时残差图上的n个点散布应是随机的,无任何规律;存在异方差时,残差图上的点散布呈现相应的趋势.比方说我的残差长下面这个样子
有没有看到随着观测的进行,它的方差越来越大了?所以这个时候就可以大概的判断出,它是存在异方差性的。但是这样的方法未免过于主观,而统计学家显然更喜欢用检验和p值的方法,所以就有了下面的等级相关系数检验(斯皮尔曼检验)。
2.等级相关系数法
这种方法简单来说就是计算自变量与残差绝对值
之间的相关性,看看他们之间有没有什么系统的关系(函数关系)。注意我们采用Spearman 等级相关系数而没有采用 Pearson 简单相关系数,这是因为等级相关系数可以反映非线性相关的情况。
定义:
等级相关系数:
斯皮尔曼检验量:
在做等级相关系数检验之前需要先对模型做一次回归(虽然我们这里已经知道异方差性存在的情况下,回归没啥用了。但是如果你不做回归测试异方差性,你又怎么确定回归没用的呢?)。得到随机误差的估计值残差
.然后取残差绝对值
,把
与
都按照从高到低的顺序或者从低到高排序,最后标记二者的排位(就是第几大或者第几小),算出二者等级的对应差值计算出来就是
。比如说一个数据的自变量值
是第8大的,但是它的对应的残差绝对值
是第三大的,那么对应的
。
这个检验量在的时候是近似服从 t 分布的,因此如果检验量的值
,就可以认为没有异方差。否则说明
与
之间存在系统关系。
异方差问题的处理办法
加权最小二乘估计是解决异方差问题的一种办法。还有Box-Cox变换法,等等。
1.一元加权最小二乘估计(WLS)
一般来说,在最小二乘回归中,我们实际上就是要最小化 。注意到的是这个和式的每一项的期望都是
(因为异方差性假设存在,所以我们不再使用
)。所以如果某一项方差越大,实际上这一项所占的比重就很大,那么为了最小化我们的离差平方和,就必须要让回归直线“尽量偏向”这个方差很大的数据点。
从这里也可以看出来加权最小二乘法的一个局限性:照顾小残差项是以牺牲大残差项为代价的。
为了解决这个问题我们把平方和改一下,写成下面的样子:
按照相同的方法回归,可得:
得到啥你自己看书吧-.-!P97 4.5
所以这个回归的关键就是如何选择我们的 。直观上来看,因为每一项的期望是
,所以!只要让
就可以啦~(让回归直线“尽量偏向”这个方差很大的数据点嘛,方差越大权重就小一点,回归系数就大了)
problem solved~
不好意思没那么简单,理论可行,可是是啥你不知道啊。所以如果没有电脑,我们一般是通过残差图去“猜测”应该用什么权。比方说如果
与
成正比,那么这个时候可以考虑拿
去作为权函数。实际上我们也是一般使用类似于
这样的自变量的幂函数来构造权函数。
如果使用 SPSS 计算就简单多了,通过寻找 m 值使得对数似然函数值最大,具体参见 P98。
2. 多元加权最小二乘估计
多元的情况与一元十分相似,有一个问题就是我们权函数的构造,在一元中我们可以用自变量的幂函数构造。但是多元的情况,如果我们用每一个自变量的幂函数构造,那么对应的计算量可能就是级别的,所以在多元的情况下我们一般都只使用其中一个自变量。所以问题来了,我们用哪一个自变量呢?
这也是有一个法则的,一般来说需要计算每一个自变量与变通残差(
)的等级相关系数(斯皮尔曼等级相关系数),取最大的那个构造即可。
具体的例子见 P103
二、自相关性问题
随机误差项之间存在自相关性的意思就是 。简单点来说就是误差项之间存在相关关系。
这种自相关包括一阶自相关与多阶自相关。
- 一阶自相关是指
只与
时刻有关(滞后一期)
- 多阶自相关是指
与滞后很多期有关
这在现实生活中也是很常见的。比如说金融危机一般都是要延后两三年才会有很显著的负面影响。另外时间序列模型本质上也就是一种自相关的模型。
自相关产生的原因
(1)遗漏关键变量;
(2)经济变量的滞后性;
(3)采用错误的回归函数形式;
(4)蛛网现象带来的序列自相关性;
(5)对数据加工整理导致误差项之间产生自相关性。
自相关带来的问题
自相关其实就相当于不满足G-M条件了,如果还是使用普通最小二乘法估计参数就会产生很多问题:
(1)参数估计值不再具有最小方差线性无偏性;
(2)均方误差(MSE)可能严重低估误差项的方差;
(3)容易导致 t 值过高,所以 F 检验、 t 检验就失效了
(4)最小二乘估计量也会对抽样的波动很敏感,意思是说在一些特定的样本中,虽然无偏,但是估计出来的值
却可能严重与
真实值不同。
(5)预测和分析会带来较大的方差,甚至错误的解释。
这个问题还是挺严重的,下面瞅瞅怎么把这个问题检验出来:
自相关的诊断
1.图示检验法
首先直接使用普通最小二乘法估计参数,根据回归残差项的相关性来判断随机误差项
的序列相关性。一般有两种方法:
-
绘制
与
的散点图。
随机扰动项存在正的序列相关 -
按照时间顺序绘制回归残差项
的图形。
并不频繁的改变符号,正的序列相关
可以看出这相当于是说随着时间的推移,残差并不是散乱,而是有序,或者说以一个函数形式出现的。这就说明存在自相关性了。
但是这种定性的分析总是感觉不够精确,所以我们需要更好的方法。
2. 自相关系数法
自相关系数说白了就是计算随机误差项之间的相关程度总和的一个量。如果这个量超过了某个数我们就认为这些随机误差项之间有关系,也就是说存在自相关性。
首先给出误差序列的系相关系数定义:
这也是时间序列中一个很重要的统计量。和简单相关系数对比容易得到它的范围是 。
当接近 -1 时表明误差序列存在负相关,当
接近 1 时表明误差序列存在正相关。
还是有一个问题就是,误差序列的真实值是未知的,那么我们就只能使用其估计值:残差
去代替。这就可以得到自相关系数的估计值
。
估计是可以的,但是这样又产生了一个问题,就是这个作为
的估计值就与样本量有关了(直观来想就是样本量越多估计的越好呗),这就需要构造统计量,做一下显著性检验才能确定自相关性是否存在。一般使用下面的 DW 检验代替对
的检验。
3. DW 检验
DW (Durbin-Watson)检验其实说白了就是一假设检验。要有假设,需要构造统计量,计算拒绝域,最后根据显著性水平判断。DW 检验是很常用的一种检验自相关的方法。
DW 检验有一定的使用条件:
- 模型中必须有常数项;
- 当模型中含有被解释变量的滞后项时,此检验产生偏误,即 DW 常取值在 2 造成模型中不存在自相关的假象;
- DW 检验只能用于检验随机扰动项具有一阶自回归形式的序列相关问题(其实也就是满足下面形式)。
首先需要知道,随机扰动项的一阶自回归形式为:
其中为自回归系数(数值上等于自相关系数,就是刚刚刚学的自相关系数还记得吗),
是满足 G-M 条件的随机误差项。
为了检验序列相关性,(其实就是检验上面的方程成立)原假设是:
构造的统计量是:
其中:是回归估计式的残差
。
接下来的问题就是求拒绝域啦,首先我们来看看 DW 的取值范围:其实只需要将 DW 的分子展开一下就可以得到:
分子的第一项与第二项在 n 比较大的时候几乎是相同的(所以一般来说 DW 检验要求 ),而第三项与分母的比就是我们的
。所以有
,换句话说
。根据以上的分析我们大约知道 DW 的取值范围为
。
因而 DW 值与的对应关系表如下表所示:
在书上的P109页有一张表。(假装这里有表)
所以确定拒绝域的方法是:根据样本量 n 和解释变量的数目 k (这里包括常数项)查 DW 分布表,得到临界值 和
,最后根据计算得到的 DW 值决定模型的自相关状态。如下图所示:
自相关问题的处理办法
行,我们费了老大劲把自相关问题检验出来了,下面看看咋处理吧,,,咋整呀,,,
在处理自相关问题的时候需要首先查明自相关产生的原因,我们顺便复习一下 5 点奥(其实我也没记住翻回去看的,逃有几个问题可以直接解决,实在不行咱再想办法:
- 回归模型选用不当:改用适当的回归模型
- 缺少重要的自变量:增加自变量(还能干啥)
要是其他原因导致的就没招了,按照下面的方法来吧,一般采用迭代法,差分法来处理。
1.迭代法
迭代法的想法就是想办法消掉误差项中相关的那一部分(剩下的不就是不相关的),这样就可以使用普通最小二乘回归啦,最后再把所做的变量替换带回去就可以的。
我们就以一阶自相关来举例:假设我们的模型为:
其中满足 G-M 条件(期望值相等,相互独立)。
根据这个模型让时间倒退回去一点,就可以得到:
为了消除自相关性,归根结底是要让误差项回到 ,(谁让人家满足G-M条件嘛)
这就需要我们得到。所以我们来计算
对应的变量做换元就可以可到:。这个时候可以看出误差项就满足 G-M 条件啦。接下来就对变换后的模型使用普通最小二乘法就可以啦,然后再把变量带回去。
那么这样的方法可以看出如果真的误差项存在一阶自相关的话,那么很明显是有效的。但是实际情况并不总是如此,有时候误差项的自相关阶数是很高的,所以我们的方法是不停的迭代,直到我们的 DW 检验能够说明它没有自相关了为止,可以说是简单粗暴啊。
2. 差分法
差分法的适用范围就更窄了,它是适用于原模型存在较高程度一阶自相关的情况才可使用。在迭代法的模型中我们设 ,就可以得到一个差分法的模型:(注意这个模型不带常数项,回归直线过原点)
其中,
对它做一个回归就可以得到:(注意 t = 2 开始是因为差分肯定只能从第二项开始才会有数据)。
一般来说我们先使用估计
,(注意这里的
是自相关系数,而不是普通相关系数),如果
接近 1 就采用差分法而不使用迭代法,这是因为:
- 迭代法需要使用样本估计自相关系数
,对
的估计会影响迭代法的使用效率。
- 差分法比迭代法简单。
三、异常值与强影响点
有时候数据中会包含一两个极端或异常的观测值,这些数据与其他数据远远分开,会引起较大的残差,影响回归效果(这可不是啥好事儿),所以呢我们就想着怎么把这些害群之马给踢了,一般对于二元三元呢,我们画一个散点图看一下就知道了,但是多元就麻烦了,这家伙,没法儿画啊,你说气不气人,想想有没有啥其他招吧。
一般来说我们会分为 x y 两个维度讨论异常值:
1. 关于因变量 y 的异常
在数据分析中,刚开始总是要看有没有特别特别“高”的点。一般来说会认为残差超过
的残差的话它就是异常值。但是问题在于,多元回归中
,其中
为帽子矩阵
的主对角线元素,这也就说明每一个数据点的误差是不相同的。那么单纯的因为它“特别高”就认为数据异常就不合适了。因为这很有可能是残差导致的,换句话说这个数据“特别高”不是因为它异常,而是因为它“就完全有可能这么高”。换句话说,因为误差是每一个数据点的固有性质,所以如果是因为残差特别大,导致某一个数据点像异常值,那么即使你剔除掉这个异常值,也不会对回归有任何帮助。(就是你踢错人了,人家不异常)
那么应该如何去做呢?我们在之前介绍过一个学生化残差
看似通过把杠杆值的影响去除掉可以解决方差不等的问题,但是如果观测数据中真的存在异常值,学生化残差也没有什么卵用。这是因为这个时候,异常值的存在会使得回归线“偏向”它,进而使得回归的标准差 实际上是偏大的。那么这样子的话,实际的学生化残差是偏小的,这就不能使用
的原则来判断残差了。
为了解决异常值的问题,我们需要别的办法。
删除残差
我们这么构造删除残差:针对第 i 个观测值,我们计算它的残差时,用其余 n-1 个观测值拟合回归方程,计算出第 i 个观测值的删除拟合值,那么这个值显然不会受到第 i 个值是否是异常值的影响。所以我们定义删除残差为:
进一步:
删除化学生残差为:
一般来说,认为的时候就是异常值点。
2. 关于自变量 x 的异常,强影响点
首先需要知道啥叫强影响点:还是关于残差的方差式,可以看出
大的点残差小,因此如果观测值的杠杆值(
)大,就会使得回归方程偏移产生影响。所以一般来说杠杆值大的点我们叫做强影响点,注意它不一定是 y 的异常值。
强影响点并不总是 y 值的异常点,此强影响点并不总会对回归方程造成不良影响,但是实际上,强影响点还是很需要被关注的,这是因为:
- 在强影响点附近,因变量与自变量之间可能不再是线性函数的关系,在选择回归函数形式时要强调强影响点。
- 会使得回归方程“偏向”自身,使得回归方程产生偏移。
强影响点的判定:
中心化杠杆值
直觉上很明显,超过均值太多肯定就是不太正常的。根据这个思路,我们设(中心化杠杆值),那么这样的话注意到
,(p 是自变量的个数)就可以得到
。所以均值就是
。实际情况下,如果某一个自变量对应的杠杆值
,就认为它是异常值。
顺便提一嘴 SPSS 中计算的杠杆值都是中心化杠杆值。库克距离
库克距离也可以用来判断强影响点是否为 y 的异常点。库克距离的定义为:
库克距离可以反映杠杆值与残差
的综合效应。
实际情况是很复杂的,所以一般使用一个粗略的标准,认为就是异常值,
就是非异常值。
四、Box-Cox 变换
Box-Cox 变换也叫方差稳定性变换。这个方法比较特殊,所以把它单独拿出来了,说他特殊是因为它真的太!好!使!了!B-C 变换可以处理异方差、自相关、误差非正态、回归函数非线性等情况。
够狠!
它是对 y 做如下的变换:
在实际应用时,我们一般使用计算机找到一个 使得对数似然函数达到极大,也就是
达到最小即可(具体的推导见 P117)
最后找到最佳的之后再把方程还原回去。下面举一个特例,考试喜欢这么出一个:
转化为原始变量方程:只需要把 代入,还原为原始方程为: