线性回归介绍之一
作者:未知 整理:Lestat
线性回归在所有的统计方法中绝对占有不可忽视的一席之地,其用途之广泛毋庸置疑,更重要的是它是整个回归家族中最为简单、也最容易理解的方法,几乎所有的统计学教材,不管是医学统计还是社会统计抑或经济统计,线性回归绝对会有独立的章节,而其他的回归方法则很少有这种待遇。
线性回归大致可分为单因素回归和多因素回归,这里的“单”和“多”是针对自变量的(也叫原因变量),例如肥胖会对高血压有影响,这里的肥胖就是自变量。吸烟会引发肺癌,这里的吸烟就是自变量。自变量是可以控制的。与自变量相对应的就是因变量(也叫结果变量)。其实仅从它们的名字就能看出其含义:原因引起结果,原因就是自变量,是可以控制的;结果就是因变量,是受自变量变化的影响的,可以通过自变量的改变而改变。
单因素的线性回归,就是说只有一个因变量和一个自变量的情形,这是最简单的线性回归模型。这里先介绍这种最简单的线性回归。
线性回归主要可以用来做什么呢?一个最主要的目的就是寻找某一现象发生的原因。比如,这几年我国的肺癌发生率一直在上升,是什么原因引起的呢?简单来说,如果我们目前只想考虑一个因素,比如烟草的销量。那我们就可以粗略的看一下烟草的销量是不是与肺癌的发生率呈线性关系。假定如下图所示(虚拟的数据),随着烟草销量的增加,肺癌发生率也增加,表明二者具有线性关系。
线性回归的另一个用途可以用来预测。如果发现了烟草的销量和肺癌发生率有关,那可以通过控制烟草的销量预测肺癌的发生情况。比如,如果减少了烟草销量,可以预期肺癌的发生将会减少。或者说,如果销量到了某一数值,预期肺癌的发生率将对达到多少。但是,预测的前提的其他条件保持不变。比如大气污染等环境因素保持不变,否则就会受这些变化的因素的影响,预测的准确性也就谈不上了。
总之,如果你发现了一种现象,又想探索这种现象背后的原因,就可以考虑采用回归分析。如果这种现象可以用连续型数值来描述的话,可以考虑采用线性回归。
线性回归介绍之二——“线性”的理解
线性回归尽管在各个领域中用得如此广泛,但是真正能对其深入理解的并不多。从目前的统计学教材来看,大多都仅限于肤浅的介绍或一味地抄袭,很少有人加入自己的理解。
前面几篇文章已经说明了“回归”的含义,那么“线性”是什么意思呢?“线性”是个关键词,它决定了线性回归的使用范围。所谓线性,通俗地讲,就是因变量与自变量大致呈直线状变化,不是绝对的直线,而是大体算是直线。如下图所示
自变量x与因变量y大体呈直线关系,因变量y随自变量x的增加而升高。这就是线性。对于线性的描绘,最简单的可以用excel来实现。通过excel的“图表向导”功能,选用其中的“散点图”,就可以绘制上面这样的图形。如果想做的漂亮些,可以加上趋势线,体现出其线性,而且还可以加上方程。如下图所示
“线性”这一词实际上还说明了一个问题,即如果二者的关系不是直线的,用线性回归可能不一定适合,最好就换别的统计方法,如下图所示的数据,就明显的不呈直线关系。
对于这种不呈直线关系的数据,如果非要采用线性回归分析,结果就会偏离实际情况。正如前面一篇文章里所说的,本来数据是个圆形,如果硬拿个长方形来套用,肯定不合适。
对于数据不呈直线关系的,一般可以采用曲线回归,也可以将因变量进行变换,如对数变换、指数变换等,变换成为与自变量呈直线关系的形式,然后将变换后的数据与自变量进行回归分析。
总之,最后的结论就是:对于任何数据,一定要先看清楚数据结构,不能一味地套用,而应具体问题具体分析,符合哪种形式,就用相应的方法,千万不要生搬硬套。
线性回归介绍之三——线性回归的使用条件
线性回归使用范围如此广泛,可惜真正正确使用的却为数不多。从国内的医学杂志情况来看,线性回归的使用都是信手拈来,丝毫不考虑自己的数据是否符合线性回归的使用条件。国内医学杂志80%以上的统计应用都是错误的,这一点已经有专门的有心人发现了。
线性回归使用之前,有几个前提是一定要考虑的:(1)自变量与因变量是否呈直线关系。(2)因变量是否符合正态分布。(3)因变量数值之间是否独立。(4)方差是否齐性。
其实如果正规地来说,应该是看残差(residual)是否正态、独立以及方差齐。所谓残差,就是因变量的真实值与估计值之间的差值。
如果你对这些条件觉得不知道怎么判断,那么有一个简单的方法一定是你乐意了解的。所有的这些条件都可以通过一种方式来判断,即绘制散点图。
是否呈直线关系,这个很简单,在上一篇文章中已经介绍过了。如下图所示,必须大致呈直线关系。
是否正态分布,可以用残差的正态概率图来看,目前用sas、spss等都可以轻松地做出来。如下图,如果正态概率呈一条直线,表明符合正态分布。当然,还可以通过各种正态性检验方法检验是否符合正态分布。
是否方差齐,可以用残差的分布来看,即以因变量的预测值为x轴,以残差为y轴作图,如果残差无明显的分布,表明方差齐性。如果有一定的趋势,可能存在方差不齐的情况,如下图随着x轴的增加残差的范围逐渐增大,明显的方差不齐的情形。
对于是否独立,也可以通过图形来看, 随着时间的变化,因变量应该没有任何趋势,否则可能表明因变量之间有一定的相关性。还可通过Durbin-Watson法检验是否独立。
正规地来说,应用线性回归分析之前,必须对这四个条件进行检验。如果条件不符合仍然使用线性回归,即使得出结果,也不准确。试想一下,前提都不对,怎么保证后面的结果正确呢?实际上,做任何事情,前提都是极为重要的,离开了前提,就相当于南辕北辙,大方向都错了,怎么达到正确的目的呢?
线性回归介绍之四——如何做散点图
前几次关于线性回归介绍的都是一些理论上的东西,这一次想介绍一个非常使用的内容,即如何绘制散点图。当然,用SAS、SPSS等统计软件会很轻松地做出来,但是并不是每个人都能掌握这些统计软件,所以这一次主要是介绍如何通过EXCEL介绍线性回归的散点图。
比如,有x和y两个变量,想分析它们之间的关系。首先,点“插入”-“图表”,选择“XY散点图”,然后一步一步点下去,中间可以加入x轴和y轴的标示以及图的标题等内容。 最终可以形成一个简单的散点图,如下图所示:
这种图是大家都会做的,下面想说的是如何加入趋势线以及方程式。在上面的图中用右键随便点其中的一个数据点,在出现的菜单中点“添加趋势线”,在出现的窗口中,“类型”窗口可以选择数据点的格式,即是线性的还是对数的还是指数的等。“选项”窗口则可以选择是否设置截距=0,是否显示方程式等选项。
其中有一个需要注意的是,是否“显示R平方值”这一个选项。主要是需要了解“R平方值”是什么意思。
R平方值也称校正系数,它跟相关系数有关,是相关系数的平方。R平方值越大,表示因变量y的变化中有多大的比例是由自变量x引起的。比如,上图中R平方值为0.9656,表示y的变化中,有95.56%的原因是由自变量引起的,还有大约4.46%的原因是由别的因素引起的。
校正系数的含义是需要理解的,它是衡量一个方程拟合是否合适的一个重要衡量标志。
线性回归介绍之五——回归与方差分析的关系
如果是初学者,看到这个题目一定有点惊奇:线性回归和方差分析还有关系?其实这不怪他们,应该是怪统计学教材以及统计教师。几乎所有的医学统计学教材中都把方差分析和线性回归分为独立两章,这倒不要紧,但是却没有专门的一章把它们的关系讲透,以至于许多学生学了很久都只能获得零零散散的珠子,缺乏一条将他们穿起来的线。这篇文章的目的就是通过一般线性模型(general linear model)的介绍,将方差分析与线性回归串起来。
这里仍然只是以单因素的线性回归为例,因为这样容易看懂。
对于随机设计的方差分析,其实如果大家注意一下,就应该发现,它们其实一共是两个变量,一个是分组变量,一个是分析的变量。比如,比较3种药物的降压效果,药物就是分组变量,有3个取值;血压值就是分析的变量。当然,对于方差分析来讲,分析变量一般都是连续型资料,而分组变量一般都是分类资料。
如果再注意看一下线性回归的形式,也应该发现,最简单的线性回归也是两个变量,一个是因变量或结局变量,一个是自变量或原因变量。比如体重对肺活量的影响。对于线性回归来讲,自变量和因变量都是连续型资料。
如果将这线性回归中的两个变量与方差分析中的两个变量比较一下,可以发现他们是一致的。方差分析中的分析变量实际上就是线性回归中的因变量,方差分析中的分组变量就是线性回归中的自变量。这两个方法的目的都是为了看自变量(分组变量)对因变量(分析变量)的影响。如上面所说的,目的就是为了看药物对血压的影响,体重对肺活量的影响。
比较一下,可以发现,线性回归和方差分析的结果变量是一样的,都是连续型资料,而自变量就不一样了,方差分析中是分类资料,而线性回归中是连续型资料。但他们都可以统一到一个大的范畴中,即一般线性模型。
其实如果把方差分析的形式改一下,大家可能就更容易理解了。一般的方差分析的数据大都列成这样的形式:
A B C 12 16 32 14 17 23 15 17 28 1319 31 14 21 28
如果A、B、C分别用1、2、3来表示,列成下面的格式: y x 12 1 14 1 15 1 13 1 14 116 2 17 2 17 2 19 2 21 2 32 3 23 3 28 3 31 3 28 3
怎么样,这种形式跟线性回归的形式差不多了吧?y就是因变量,x就是自变量。唯一与线性回归不同的地方是:线性回归中的x和y是一一对应的,而这里的x和y是一对多的,即1个x对应多个y值,但这不影响分析。其实即使在线性回归中,偶尔也会出现一对多的现象的。比如体重对肺活量的影响,如果有好几个人体重相同而肺活量不同,就出现了一对多的现象。这就跟方差分析更像了。
最后加点总结性的、理论性的东西,一般线性模型的形式大致可以这样:
y=α+βx+ε,
这个其实大家都应该很熟悉了,在统计教材中的线性回归章节中一般都有这个公式。这里的y就是因变量,x就是自变量,但是这里需要注意的就是,x是分类变量的时候,就变成了方差分析的形式了,当x是连续型变量的时候,就变成了线性回归的形式了。
总之,正如哲学中内容与形式的原理,一般线性模型是内容,x的变化则显示了其不同的形式,但无论如何,它们的内容都是一般线性模型。
线性回归介绍之六——再谈回归与方差分析的关系
上一篇文章已经对方差分析和线性回归的关系进行了阐述,不过刚看到了一位朋友的留言提问,所以想针对这个问题继续谈一下二者的关系。
这一次主要是想结合一个实例来说明。比如有下面这样一个虚拟的例子:
组别 数值 1 11.1 1 8.17 1 12.73 115.83 1 15.6 1 17.2 1 5.45 1 11.3 2 23.73 2 18.86 2 26.65 2 16.72 2 17.33 218.08 2 16.55 2 17.87
这里可以看到,总共有两个变量,组别肯定是自变量,而数值(不管是什么结果)就是因变量。因为分组是人为控制的,而数值是一个随机变量,是需要观察才能了解的。
这里的自变量只有两个值,即1和2,因变量则有不同的数值。一般来说,如果自变量的类别很少,可以考虑采用方差分析,而如果类别很多,则考虑采用线性回归。实际上,无论采用哪种方法,他们的结果都是一致的。这里用SAS对方差分析和线性回归的分析结果进行比较。
如果用方差分析,结果为F=14.28,P=0.002,两组有统计学差异。如果采用线性回归,结果为F=14.28,P=0.002,或t=3.78,P=0.002。结果表明组别对数值有影响。
可以发现,他们的F值是相同的,而且F值恰好是T值的平方。而P值是不变的。这些绝不是偶然。而是必然的联系。也许大家在学习统计学的过程中,并没有老师介绍方差分析和T检验的关系,这里既然讲到这里,就顺便提一句,方差分析的F值是t检验的t值的平方。如果还想进一步看他们的关系,仔细观察一下F分布和t分布的图形,一定会对大家理解二者的关系有所帮助。
至于到底选择什么模型,是方差分析还是线性回归,其实不必拘泥。如果我的分组变量有2组或3组4组,一般来说,采用方差分析的可能性大一些。如果分组变量(或自变量)的类别很多,比如7类8类等,可以考虑采用线性回归。但这不是绝对的,也跟例数有关。比如,分组变量只有4组,即1、2、3、4,但结果变量只有7个,那这时采用线性回归或许更好一些。如果分组变量有8组,即1-8,但结果变量有1000个,这是还是采用方差分析更好一些。具体选用哪一种方法都无所谓,关键是他们的结果都是一致的,总会得出相同的结论。
线性回归介绍之七——回归诊断
如果你看的书多了,可能经常会发现回归诊断或模型诊断这样的名词,这里的诊断跟医学里的诊断有所不同。什么是模型诊断?其实它的主要目的就是为了看一下我们辛辛苦苦计算所得的方程或模型是不是合理?是不是有符合实际?是不是需要重新分析?
对于线性回归而言,回归诊断需要处理的问题主要是看是不是有共线性?有没有异常点存在?以及前面所说的是否符合线性回归的使用条件。
什么是共线性?这是个更为常见的名词,共线性也叫多重共线性(Multicollinearity),其实可以简单地理解为自变量之间的相关性太强。比如,要分析肺活量与身高和体重的关系,肺活量为因变量,身高和体重为自变量。如果身高和体重之间的相关性很强,就可以认为他们之间存在共线性。
共线性的诊断可以用容许值(tolerance)、方差膨胀因子(VIF)、条件指数(condition index)等指标来体现。最常用的是条件指数,这里想提醒一下,条件指数有多个,最大的条件指数叫做条件数(condition number)。我曾在某医学统计论坛上见到有人对这两个指标的关系大惑不解,故这里提及一下。
什么是异常点(outliner)?从下面这幅图就可以有个感性认识了。
可以发现,有一个点远远脱离其它点,这就是异常。从它的字面意思来看,outliner,实际上就是脱离了线性,与其他的点不合群。
既然讲到了这里,就顺便再提一个名词,叫做杠杆点(leverage),杠杆点属于异常点,但是并不是所有的异常点都是杠杆点。只有那些对方程有影响的点才叫杠杆点。这个也可以从它的字面意思理解。什么是杠杆?就是说,我靠这一个点就能撬起地球,可见这一个点的影响之大。影响小了,就不叫杠杆点了,只能叫做异常点。比如上面图中最后一个点,实际上就是杠杆点,如果把这个点去掉,图形应该是这样的:
比较一下这两个图,下面这个其实斜率小多了,或者说,第一个图更加向上斜,因为被那个杠杆点给拉上去了。就这一个点,就改变了整个的图形,这就是杠杆点的意义。
至于其它是否满足线性回归使用条件的诊断,前面已经提到过了,这里不再赘述。
最后想说一句,统计分析不是简单的将数字放入统计软件,出来结果就算了。而是需要精雕细琢,计算机中有一句话叫做“garbage in,garbage out”,统计中也是一样。关键的在于自己对统计学的理解,决不能一味地依靠统计软件,统计软件不会帮助你分析该用什么方法,也不会跟你说你的数据是不是符合使用条件。统计软件所能做的只是给你一堆结果,至于结果合不合理,结果应该怎么看,只能靠你自己。
线性回归介绍之八——回归方程的评价
如果你已经有了一堆数据,有了因变量和自变量,利用统计软件求出回归方程是非常简单的事情,这些软件虽然不懂得如何分辨你的数据应该用什么方法,但是一旦你确定了方法,他们的计算能力还是非常强大的,可以快速地给出你所需要的结果。但是即使有了回归方程,我们还有一个问题需要解决,那就是:你凭什么认为求出的这个方程是合理的?或者说,凭什么认为求出的方程式符合实际的?这就涉及到回归方程的评价问题。
所谓回归方程的评价,通俗来讲就是通过一些指标,衡量回归方程是否合理,是否符合实际。比较常用的衡量方程的标准由复相关系数R,校正复相关系数R(adj),AIC指标,Cp统计量、均方根误差等。
对于这些指标而言,其实你不必理会他们的具体含义,也没有必要。你只要知道:复相关系数和校正复相关系数越大越好,均方根误差、AIC和Cp统计量越小越好。这些指标一般在统计软件中都会自动输入,如SAS和SPSS就可以看到这些指标。
可能有的人就会问了,我一共就求得了一个方程,怎么比较啊?其实这些指标更多地用在多因素的分析中。比如,我有5个自变量,实在不知道哪个变量有意义了,这时候就可以试着采用这些指标。比如,我加入了一个变量后,复相关系数和校正复相关系数明显增大,而均方根误差、AIC和Cp统计量明显变小,这可能提示你这个变量放入方程中有助于提高方程的质量。而如果加入一个变量后,这些指标变化不大,那可能提示对方程的改善意义不大,可以不考虑加入。
当然,具体的情形还需要结合实际情况来看,这些仅是一个原则。其实最重要的一点是专业,结合专业是最重要的,任何方程,即使指标再完美,如果与实际常理相违背,那也说明你的数据或方程有问题。
最后将回归评价与前面的回归诊断比较一下,回归诊断相当于一个前期工作,前期工作做好了,可以保证你的方法已经选对了,或者说,你的大方向已经正确,不会走错路了。回归评价则是一个善后工作,在大前提正确的情况下,通过回归评价把结果做的更加完美。二者相辅相成,最好全部都使用。
可惜的是,目前大多数人只知道上来就用线性回归,也不理会是不是符合线性回归的条件,做完之后,更想不起要看看方程合不合理,反正结果已经出来了。真希望大家都能懂点统计学,有点科研思想,不一定非要做科研,对日常生活也是有所帮助的。
线性回归介绍之九——多重线性回归
现实中大多数的结果都是多个原因引起的,所谓一因一果对应的事情是非常少见的。从医学领域来看,几乎任何疾病都不是由一种原因造成的,而是多钟病因共同作用的结果。因此,多重线性回归在实际中应用更为广泛。
多重线性回归(multiple linear regression),有的教材也称之为多元线性回归,就是指一个因变量,多个自变量的线性回归。多重线性回归比单因素的线性回归复杂之处不在于多了几个变量,更为重要的是,这些自变量之间可能存在一定的关系,从而导致分析的复杂化。因为我们想了解的是某个自变量对因变量的单独效应,或者说独立效应。因此,必须想办法找出每个自变量的独立影响作用。
比如,我想了解一个人的血压受哪些因素的影响。可以肯定地说,绝不是一个因素就导致血压高,假定我们考虑两个因素,一个是体重,一个是年龄。如果分别对体重和血压、年龄和血压做单因素分析,所得出的结果不一定是体重、年龄的独立影响,因为体重可能与年龄有关(当然,也可能无关)。体重对血压的影响就有可能掺杂着年龄的部分作用,而年龄对血压的影响也可能掺杂着体重的部分作用。那么,如何去除其他因素的作用呢?就需要用到多重线性回归的分析策略了。
多重线性回归更多地应该从它的分析策略上理解,因为分析过程在统计软件的帮助下是极其简单的,把所有的因素往里一放,就出来结果了。关键的地方是哪些因素我该放,哪些因素我不该放?这才是重点所在。
统计分析是一项艺术策略,这主要体现在多因素的分析中。有很多东西是经验积累形成的,并不是说三言两语能讲清楚的。我这里的意思也不是想通过这一篇文章就让大家都明白如何做多因素分析,更为关键的是想让大家能明白,统计分析是一个非常细致的过程,需要多方面的考虑,否则很容易得出错误的结论。在以后的文章中,我会逐渐将多因素分析的策略一一论述,让大家慢慢掌握统计分析的手段。
线性回归介绍之十——多因素分析策略
在多重线性回归中,许多人都会碰到这样的情形:单因素分析有统计学意义,而多因素分析则无统计学意义了。这种情况令很多人头疼,不知道到底该相信哪一个结果。今天就这种情况进行以下阐述,使大家对此有些了解。
比如,描述身高、体重对血压的影响。单因素分析也就是分别做身高对血压、体重对血压的影响分析。结果显示身高和体重对血压的变化都有影响。多因素分析就是将身高、体重同时做对血压的影响分析,结果发现身高对血压的影响无统计学意义了,体重对血压的影响有统计学意义。
上述例子仅是一个最简单的例子,相信很多人都碰到过类似情况。这种情况下,我们需要小心了。
首先需要明白,单因素分析中,自变量对因变量的影响,不仅仅反映自变量本身的作用,由于自变量之间一般存在一定的相互作用,因此,自变量的作用还包含了其它因素的间接作用或交互作用。比如上述的例子,单因素分析中,身高对血压的影响,不仅反映了身高的影响,还有体重的影响。同样,体重对血压的影响,也不仅仅是体重的单独作用,还有身高的间接作用。
而多因素分析中,自变量对因变量的作用是扣除了其他变量的影响后的作用,比如上例,多因素分析中,身高对血压的影响,反映的是扣除了体重的作用后,身高对血压的“纯”作用。同样,体重对血压的影响,反映的是扣除了身高的作用后,体重对血压的“纯”影响。
说到这里,估计大家就会大致明白,我们应该相信哪个结果了。实际分析中,还可以通过标准化偏回归系数(standardized partial coefficient of regression)还比较到底哪个因素对因变量的作用更大。通常,各个自变量之间的单位是不同的,比如身高是cm,体重是kg,二者无法比较作用大小。而标准化系数则将它们都转化为无单位的系数,这样就可以直接比较对因变量的影响大小了。
最后对这个例子再说明一下,单因素分析中,身高对血压有影响,而多因素分析中,身高对血压变的无影响。这表明,身高对血压的影响更多地是由于体重的作用而对血压产生影响,换句话说,身高本身对血压无影响,但是由于体重与身高关系密切,因而身高的本身作用加上体重的作用,就对血压有影响了。而一旦扣除了体重的作用(即多因素分析的结果),身高对血压的作用就不明显了。
这个例子仅仅是一个最简单的例子,实际中的情况可能还要复杂的多。总之,数据分析是复杂的,需要深入理解各变量之间的关系,才能正确地进行分析。
更多:
线性回归介绍之十一——线性回归的替代方法
http://www.52analysis.com/zhuanlanzuozhejingxuan/1994.html
线性回归介绍之十二——回归与相关的区别
http://www.52analysis.com/zhuanlanzuozhejingxuan/1995.html
线性回归介绍之十三——对线性回归的总结
http://www.52analysis.com/zhuanlanzuozhejingxuan/1996.html