文章开头我先打一个小岔:现实生活中当你想一个问题想到百思不得其解时,经常会有这种场景,就是停下来玩个游戏,泡壶茶,跑个步……或者干脆发个呆,你别说~思路就来了。其实本篇标题的答案,也是在我头大了N次的时候COS人家阿基米德时想到的。(话说阿基米德是在思考皇冠问题弄得一个头七个大的时候,洗个冷水浴就突然发现了“浮力定律”,并解决了那个头大的问题。)
我相信,包括以前的我在内,很多的数据分析师用统计软件拟合好回归方程后,估计扫一眼那一堆的统计检验显著性水平,只要不超过0.1,心里那股爽歪歪的劲儿,就好比铁丝绑豆腐——甭提了!之后就屁颠屁颠开始忙着写报告了,很少去认真思考这样的一件事儿:为啥回归方程(或模型)之后要做那一堆的检验,或者这些检验的目的是什么?
不过这也不能全怪大家,因为当年我们读书的教材也没有解释为什么要这么做,只是告诉我们要做这件事儿。我们的教授也忙着搞科研项目,也没和我们讲为什么要这么做,再加上光是搞懂第一次见面的OLS的推导过程就已经眼花缭乱了,有多少人还有心思和精力再去补刀这个问题呢?所以我印象中相当长一段时间内,我只关注这些检验的显著性水平只要足够小,就不去管它了。
那为啥我又要去搞懂这个问题呢,其实还是工作倒逼的,说的更直接点就是客户要我用他们能听得懂的话去解释。讲真,我还真的很感谢工作以来遇到的那些客户(无论是内部客户还是外部客户),因为在他们的压力之下,我除了要把原理性的东西搞明白之外,我还得将其用对方能够听得懂的业务语言去解释,或者说业务上能够解释的清楚。这个过程虽然很辛苦,但是却不失为一种机会,只要这一关你撑过去了,那么这个模型或者方程就深深地烙印在你的脑海里了。
好,我们现在步入正题,来讲讲为啥回归方程之后要做那一堆的统计检验。
首先我们要搞清楚一点就是,我们为什么要做回归方程。从统计的视角来看,回归方程的作用就是将几种可观测的现象之间的相互作用,用抽象的数学方式进行显性化和固化。说的更直白些,就是要研究他们之间的规律。如果这些规律可靠或者有很高的代表性,那么我们就可以应用这个规律去做很多事情。而回归之后的这些统计检验是非常有必要的,我是举双手双脚赞成的。因为从找作用规律而言,你得排除一个很大的风险,那就是这个方程对样本的代表性不够,或者说这个方程有可能是偶然的结果。
那么回归方程之后要做哪些检验呢?我们就最主要的那3大检验来聊聊
第一种统计检验,对残差的检验。
我们打个比方,采集到某个菜园大棚内一天内气温和二氧化碳浓度的数据。这个时候我们会发现温度对植物的呼吸作用会有些影响,在一定的温度范围内温度越高二氧化碳浓度会越低。进行数学建模的话,可以根据散点图的形状,做直线、抛物线、对数曲线……的回归拟合。如果我们采用的是最常用的最小二乘法进行建模的话,以线性回归为例,我们会采用这样的形式,
这个时候好多人会问,怎么多出一个尾巴ε出来?其实,这个是有道理的。因为我们做一个直线去拟合散点图,是很难把全部点都用一条直线给串起来的,总会有些点没有在直线上。这种情况下,我们所有样本的信息就被分拆成2部分:一部分是可用规律来表示的,就是y=ax+b,
另一部分就是不能用这个规律来表示的,也就是误差。那么我们就专门用ε来表征这个误差。
但是这个误差又不能干扰整个线性方程,不然的话试想一下,如果ε对线性方程有影响,那么说明自变量就不止x一个,那么这个方程就不能叫做一元线性方程了。在上面的例子中,如果我们发现因为光照时间也会影响温度,同时光合作用也会影响二氧化碳浓度,那么,说明x作为自变量还不够彻底,线性方程的解释性不够充分,这样的话ε就包含了光照时间的影响规律在里面,就会体现出ε“藏着其他规律”的情况。在上例中,残差和应变量y之间有相关关系,也会和x存在相关关系。
所以,为了满足上面ε不能与回归方程中的变量有相关关系的要求,此时ε就相当于的要满足以下的3个假设:
(1)
误差项ε是一个期望值为零的随机变量,即E(ε)=0。
(2)
ε的方差都相同或者固定。
(3)
误差项ε是一个服从正态分布的随机变量,且相互独立。
对于第一个假设,其实很好理解,我们可以从文字和图像的角度来进行解读。首先我们看“语文视角”。我们还是以温度和二氧化碳浓度之间的关系来举例,E(ε)=0就意味着我们的回归方程拟合的好或足够理想,因为这说明除了温度以外的所有其他因素,它们对二氧化碳浓度所产生的总的随机扰动影响为0。你想啊,由于总误差项(随机扰动)之和为0,那么必然其均值(期望)就等于0了。
那我们再来看“美术视角”,如下图表现的那样,理想状态下回归方程拟合的好,那么这条回归直线会穿过样本点群中最具代表性的位置(满足MSE准则),如此一来虽然各个样本点有的分布在回归直线的两侧,有的可能就在回归直线上,但是它们各个点和回归直线之间的偏离ε总和却是为0的。如果样本采集的更凑巧一点的话,散点图和回归直线就好像一根电线的铜芯和绝缘橡胶皮的关系一样,绝缘胶皮就会扭成什么形状,铜芯就会扭成什么形状,回归方程(“铜芯”)的代表性最好。
对于第二个假设,同样也可以用“语文”和“美术”两个视角来理解。用“语文视角”来理解的话,就是无论温度越来越高/低,还是二氧化碳浓度越来越低/高,误差项ε都不会随之变化而变化,因为各个误差项ε之间都保持着固有的稳定性(方差固定)。
同样用“美术视角”来看如下图,如果我们任意按照温度方向,还是二氧化碳浓度方向,将归回方程和样本点群分成若干分区间,那么每个区间里的误差项ε的分散程度都一样(也就是方差固定)
对于第三个假设,则相对来说较为复杂些,但用“历史+语文视角”来解释可能更轻松些。关于误差项服从正态分布,得要追溯到伽利略所在的中世纪时代。那个时代科学家大都在天主教廷中任职,因为他们要观测很多天体并做研究。由于不同的望远镜,不同的观测条件,甚至不同的人用相同的正确的方法去观测天体,记录下来的结果都会存在观测误差。所以观测误差是无法避免的。但观测误差总有这样一个规律,也就是说只要不犯错误(系统性偏差),大的误差和小的误差总会出现的比较少,而大多数观测的误差都会集中在某个范围内。经过伽利略、拉普拉斯……高斯等等天文学家、数学家几百年的努力,终于被高斯证明了观测误差是一种随机扰动,服从正态分布,并给出了正态分布的数学表达式。所以,第三个假设实际上要说明的就是“只要回归方程拟合的足够理想,即把所有影响二氧化碳浓度的因素都找对了,找齐了,那么剩下回归方程和样本点之间的各个误差项ε就是属于一种随机扰动了”
综上所述,既然有了关于误差项的假设,我们求出了回归方程后,就得去验证下误差项是不是真的服从些这个假设。不过说实话,对误差项的检验,并不是说一定要100%等于这个假设,因为现实中能够完美地服从者3个假设的回归方程是很难找到的。但这并不妨碍我们去检验在一定的概率下,这个回归方程所产生的误差项的特征,和3个假设的要求有较高的一致性。
最后,ε在实际应用中,是用残差来代替的。只要计算出了残差,我们就可以用残差去做检验。
那检验残差是不是就得对这3个假设一个一个去检验呢?当然你可以一个一个去检验。但其实有一个比较快速全面的检验方法。就是利用正态分布的特点,将3个假设合并在一起一起检验。简单的来说,就是要检验残差e是否服从N(0,σ^2),其中0代表均值, σ^2代表固定的方差,N( )就代表了正态分布。在很多统计软件里都有对残差的检验,例如Excel可提供残差的参数,自行进行检验;SPSS、Eviews、R、SAS……都带有这些功能。
最后再补充一点就是,如果残差检验没有通过,该怎么办呢?其实前人已经总结了很多的方法:
如果只是没有通过均值为0的检验,但是通过了另外2个假设的检验。换句话说是残差分布服从
,那么可以对原来的回归方程增加一个截距项μ即可。
也可以通过中心极限定理得到的“标准化残差”或根据杠杆参数换算得到的“学生化残差”,将之与自变量构成多维的散点图进行分析,推测是漏了变量还是用错了变量的表达式。
有时候极端值的出现也会影响回归方程的代表性,所以也要对其进行探索式的排除。
还有就是社会科学领域的回归模型,可能要更多的去研究业务流程,只有对业务流程吃的比较透,才会对建模的变量和参数选择有深刻的理解,才不会那么容易遗漏变量;或者才会更快的找到被遗漏的变量。
有时候残差还隐含了其他的规律,这时候对残差研究说不定还能找到其他的规律。例如著名的ARCH(p)模型,其核心思想就是误差项在t时刻的方差,依赖于时刻(t-p)的误差平方大小:
第二种检验,对整个回归方程的检验: F
统计量检验
上面我们对残差做完检验后,说明我们的回归方程把样本的信息提取的是比较充分的。不过这里又冒出另外一个潜在问题,那就是这个回归方程计算结果是偶然的吗?这里可能你会很不理解:我可是花了2张A4纸,写满了Σ的推导公式算出来的方程系数,为什么还会“偶然出现”呢?
其实说到这里,如果不对F统计量做一个介绍的话,估计没法继续往下讲了。F统计量按照解决问题的场景,是有不同的表达式的。最适合这个问题场景的表达式,应该是用于ANOVA分析的场景。回忆起ANOVA分析,里面主要讲的是2组样本之间是否方差存在显著差异,从而判断2组是否来自同一个整体。由于研究的目的不同,我们对F检验的通过与否也持不同的态度。
这里多啰嗦几句。如果我们是希望验证某些改良措施是有效的,那我们是希望有施加这些影响的样本,和没有施加这些影响的样本之间的结果是显著存在差异的;当然了,如果我们是希望验证某些破坏性试验构不成对原有物件的影响,那我们是希望有施加破坏性试验的样本组,和没有施加破坏性试验的样本组之间的差异是不显著的。
那么回到对回归方程的整体显著性检验来看,F统计量该如何应用呢?回答这个问题的时候我们稍加认真思考,其实也就不难了。整个样本的信息其实被划分成了2个部分:被回归方程表示规律的那部分,和被残差表示没有规律的那部分。从前面残差的分析我们了解到,残差不应该和回归方程有联系,也就是说他们俩的方差应该是有显著差异的。否则,说明这个回归方程有问题:它的各个自变量系数没有使自变量的信息提取到足够让回归方程能够显著的区别于残差。因此,我们就有理由判断我们推导得到的回归方程不是必然的结果。
这样,从逻辑上讲明白了为什么要做F统计检验的道理后,我们就可以构建F统计量了。
首先,我是真用了2张A4纸自己独立推导出了这样的一个等式(没办法,别人半页纸算完,我笨,只好用2张)
左边是观测值的总离差平方和,表示总的样本信息。等号右边第一个是代表回归离差平方和,它代表回归方程本身所产生的信息;等号右边第二个,就是我们熟悉的老朋友——残差平方和了,它代表所有非回归方程的信息。我们现在要做的就是将右边这2个部分的内容做一下F检验,看看他们是否存在显著性差异。
根据F统计量的计算公式,还不能用他们2个直接比较,必须用上他们的自由度:
在这里面,m代表自变量的个数,n代表样本的个数。
H0假设就是所有的自变量的“系数i”都各自=0,写成数学表达式就:是系数1=0,系数2=0……系数n=0;
H1假设,就是“系数i”不全为0
那么此时,我们当然是希望H0假设成立啦,因此只要能够拒绝H0假设的话,那么就说明该回归方程的各个系数的出现不是偶然的,也有种说法是说“回归方程提取到的信息显著区别于残差的信息”;这就等价于整个回归方程不是偶然出现的了。
第三种检验,对回归方程的各个系数检验,t统计量检验
上面讲了残差的检验和对整个回归方程的检验,现在就来讲讲对回归方程的各个自变量的系数检验了。
为啥还要对系数做检验呢?
其实,残差的检验如果通过了,只是说明了回归方程把样本信息量提取全了,F检验通过了只是说明回归方程不是偶然的;但这里还存在另外一个问题:是不是所有的自变量在回归方程中都是起到明显的作用,会不会有些是其实不怎么对回归方程起作用,它的引入只是起到了锦上添花的效果?比方说只是起到了从89分到90分那么点儿的效果。如果是这样的自变量,我们不考虑引入也罢。因为从回归方程的目的出发,我们是要找变量间的“重要的起作用”的变量,而不是要找这些没啥用的变量。既然如此,如何判断这些自变量是否有用呢?一个很重要的指标就是它的系数。如果某个自变量的系数太小,和0没有显著差异的话,那么即便给这个自变量赋予一个正常的值,那么被这个系数一乘就几乎没作用了,因为结果也接近0嘛。因此,我们是不能忽视对系数的检验的。
刚才我们从逻辑上讲清楚了要对回归方程的系数要做检验,那用什么方法呢?为什么书上总是告诉我们要用t检验呢?为啥不用正态检验呢?
说到用t检验这也是有原因的。实际上我们用样本推算出来的方程系数,是一个估计值。比方说我们上面那个温度和二氧化碳浓度的例子,也就是抽取了某一天的测量值。而真正意义上大棚里的温度和二氧化碳的浓度之间的回归系数,得把大棚从正式投入生产到报废这段时间内,所有时间段、所有内部空间角落的数据都采集到(也就是总体),然后计算得到它们。一个大棚管理的好能用个2-3年,然而我们不可能花个2-3年去采集总体数据,因此我们是希望判断这个抽样的数据算出来的回归系数,能多好地代表总体的回归系数。
虽然总体的回归系数我们不可能求到,换句话说我们不知道总体的回归系数的方差是多少,但我们可以拍胸口保证总体的样本量绝对大于30,而且远远大于30!大到由于足够大,可以将之看成是一个正态总体,甚至某些时候直接假设总体就是服从正态分布。当满足刚才所述:总体方差未知,但总体来自正态分布这2个条件时,前人通过大量实证研究得出的一个比较稳妥的方案就可以派上用场了,那就是t检验。t检验之所以比较稳妥,就在于抽样的样本可能受随机因素的影响,抽取出来后并不完全呈正态性,更多的时候它呈偏态!而t检验能减少样本呈偏态分布产生的干扰。这就是为啥要用t检验的原因了。
那既然选择用t检验,该如何操作呢?
这个问题问好,我们就得从看系数的本质来回答这个问题。
前面我们说到,假如推导算出的回归方程的系数很小,比方说为0.001,还是用刚才的例子:你想即便在冬天,大棚的温度变化幅度顶多在5-20℃之间,它再乘以0.001的话,就变成0.005到0.02这么小的数了。对整个方程而言影响,已经没有影响力了。这时候你做不做检验实质上都一样。
那如果我们推算出来的回归方程系数是2.0,或者5.5,或者17.9……呢?这就不能像刚才那样去容易断言了。因为我们得考虑下它们出现的偶然性概率多大,如果是大概率条件下出现的,那当然要考虑接纳它;但如果它是小概率偶然出现的,我们就有理由怀疑它对变量其实是没作用的,换句话说这个系数和0没区别。
于是乎我们得构建若干个H0假设,假设这些个系数和0之间是不存在显著性差异的,或者直接写“系数i=0”,然后自然就会产生若干个H1的假设“系数i≠0”。通过中心极限定理的推论,我们的前辈已经得出
,这里n,m的含义同F检验自由度的含义。
这样,有了t统计量的代数值后,我们就可以用之来进行显著性检验了。
四、小结和后记
这次的项目阶段性复盘的知识点,看上去应该早在校园里就该搞清楚的。然而人生总是充满了未知数。我要是早知道我工作中会用到回归建模,或者我早知道客户会来挑战我的话,我当然会在学生时代就整明白啊。不过现在搞清楚也不算晚,人生毕竟如同长跑,看的不是某个时点你跑得快还是慢,而是全程下来你到了哪个位置。或许这次复盘还漏了一些问题没搞清楚,或者说还没遇到更难对付的客户挑战,但当再遇到类似的项目时,我对建模的拿捏会更加轻松和从容。
|