分享

蔡云飞:SPSS 软件实现多重线性回归及共线性解决办法

 子悠682 2016-07-21

蔡云飞:SPSS 软件实现多重线性回归及共线性解决办法

软件

皮肤科的统计学家(蔡云飞) · 2016-01-02 20:30

蔡云飞:SPSS 软件实现多重线性回归及共线性解决办法

本文章参照多个文章材料整合而成。


1. 模型简介


本文所要讨论的问题是如何同时考虑多个因素对同一观测结果的影响这一观测结果是需要满足正态分布的计量资料。此时,因变量(Dependent Variable)只有一个,也称为反应变量或响应变量(Response Variable),常用 Y 表示。自变量(Independent Variable),也称解释变量(Explanatory Variable)可有多个,p 个自变量用向量形式表示为(X1,X2,X3,...,Xp)。设有 n 例观察对象,第 i 例(i=1,2,3,…,n)的一组观察值为(Yi, Xi1,Xi2,Xi3,…,Xip)。当因变量与自变量组之间存在多重线性关系时,应用多重线性回归模型可以很好地刻画它们之间的关系。


由上式可以看出,实测值由两部分组成,第一部分为其估计值,用表示,即给定各自变量取值时,因变量Y的估计值,表示能由自变量决定的部分。为残差,是应变量实测值 Y 与其估计值之间的差值,表示不由自变量决定的部分。它对于判断当前建立的模型是否成立,是否还有别的变量需要引入模型等一系列问题是非常有价值的。式中为常数项,它表示当所有自变量取值均为 0 时因变量的估计值,为偏回归系数,表示当其他自变量取值固定时(所以在回归系数前加上“偏”字),自变量 Xi 每改变一个单位时,的变化量。


2. 案例


某医生收集了 97 名成年男性的资料,并分别测得其血常规和血生化指标,原始数据如下表,试以血红蛋白为因变量,其他变量为自变量进行线性回归分析。




3. SPSS 录入数据


变量赋值如下:


X1:性别

=0 ;男=1

X2:年龄

青年= 1,中年= 2,老年= 3

X3:红细胞数

不用赋值

X4:白细胞数

不用赋值

X5:血小板

不用赋值

X6:总胆红素

不用赋值

X7:直接胆红素

不用赋值

Y:血红蛋白

不用赋值



图1 变量视图



图2 数据视图


4. SPSS 操作过程


分析→回归→线性



图3 操作步骤1



图4 操作步骤2



图5 操作步骤3


5. SPSS 计算结果解读


5.1 模型中移入/移去的变量


共纳入“年龄量化”、“红细胞”、“性别量化”三个变量。“年龄量化”为有序分类变量,“红细胞”为连续型变量,“性别量化”为二分类变量。自变量进入模型的方法为“Enter”法,即“进入法”,为默认选项,意即所有选入自变量框的候选变量均进入模型,不涉及变量筛选的问题。推荐选择此方法,变量筛选可考虑通过单因素分析联合临床专业知识判断进行,比如首先通过临床专业知识确定潜在需要纳入回归方程的变量,然后通过单因素筛选出 p 值小于 0.2 的变量最终纳入回归方程。


Variables Entered/Removeda

Model

Variables Entered

Variables Removed

Method

1

年龄量化, 红细胞, 性别量化b

.

Enter

a. Dependent Variable: 血红蛋白Y

b. All requested variables entered.

图6 模型中移入/移去的变量


5.2 模型汇总结果

“R”,“R Square”, “Adjusted R Square”, “Std. Error of the Estimate”分别代表“复相关系数”,“决定系数”,“校正的决定系数”,“剩余标准差”。R值越大代表线性回归关系越密切。R Square 表示因变量 Y 的总变异可由回归模型中自变量解释的那部分所占的比例,R Square 越大越好。根据样本含量及模型中自变量的个数即可计算Adjusted R Square,该值越大,模型拟合效果越好。在第一个“模型汇总”表里,我们看到R、R方及调整R方,在简单线性回归模型时,这里的R相当于自变量与因变量的pearson相关系数R方即前面R的平方,意义是有多大比例的因变量变异能被自变量解释,在这里即肺活量的36%的变量可以由身高解释(影响);调整R方在多重线性回归模型里,可以通过查看增加或减少某个自变量后调整R方的变化来决定是否在模型里保留某变量



Model Summary

Model

R

R Square

Adjusted R Square

Std. Error of the Estimate

1

.827a

.684

.674

14.125

a. Predictors: (Constant), 年龄量化, 红细胞, 性别量化

图7 模型汇总结果


5.3 Anova 结果

因变量 Y 的总变异可分为两个部分:①回归平方和,表示因变量变异种由回归模型中所包含的自变量所能解释的部分;②残差平方和,表示因变量的变异种没有被回归模型所包含的变量解释的部分。本例中 F=67.125,p=0.000。说明至少一个自变量的回归系数不为 0,所建立的回归模型有统计学意义。

下图是判断方程模型是否成立的方差检验,在多重线性回归里,只要有一个自变量对因变量的影响有统计学意义,此检验的P值都会小于0.05,也即如果此检验P值不小于0.05,可认为所有自变量与因变量都没有线性关系



图8 Anova 结果


5.4 回归系数表(最重要的结果)


表格中给出了这个回归方程中常数项(Constant)、红细胞、性别量化、年龄量化的偏回归系数(Unstandardized Coefficients)及对应的标准误,分别为:23.967、22.467、8.164、2.510,其中常数项表示当自变量取值为 0 时,因变量的取值,本例中没有实际意义。为了消除原始变量单位不同或者量纲不同的影响,软件同时计算了标准化的偏回归系数(Standardized Coefficients),分别为:0.781、0.165、0.067。回归系数绝对值越大说明对回归模型的贡献越大。同时对回归系数进行了假设检验,并给出了相应的 p 值,分别为:0.007、0.000、0.008、0.260,其中常数项的回归系数没有实际意义,其他 p 值表明红细胞、性别的回归系数有统计学意义。“Collinearity Statistics”提供了共线性诊断两个参数。容忍度(Tolerance)越小,多重共线性越严重,一般认为容忍度小于 0.1 时,存在严重的共线性。方差膨胀因子(VIF)即容忍度的倒数,一般认为其不应大于 5。本例中,可以认为不存在明显的共线性问题



图9 回归系数表(最重要的结果)


5.5 共线性诊断


该图进一步给出了特征根(Eigenvalue):对模型中常数项及所有自变量计算主成分,如果自变量间存在较强的线性相关关系,则前面的几个主成分数值较大,而后面的几个主成分较小,甚至接近 0。事实上,本例中单从特征根这个结果上并不好判断共线性的问题。下面我们再看看条件指数(Condition Index):其等于最大的主成分与当前主成分的比值的算术平方根。所以第一个主成分相对应的条件指数总为 1。同样,如果几个条件指数较大,比如大于 30,则提示存在多重共线性。本例中,从条件指数这个结果中并未见明显的共线性。我们再看看变异构成(Variance Proportions):回归模型中各项(包括常数项)的变异被各主成分所能解释的比例,换句话说,即各主成分对模型中各项的贡献。如果某个主成分对两个或多个自变量的贡献均较大(如大于0.5),说明这几个自变量间存在一定程度的共线性。本例中并未出现这种情况。综合图 9 与图 10 共线性诊断的各项参数,并未检测到明显的共线性问题。本例也提醒我们共线性的诊断要从多个维度去综合判断。



图10 共线性诊断


到此小伙伴们是不是认为回归做完了呢?答案是否定的,线性回归模型还要满足以下5个条件:独立、正态、线性、等方差和无异常值或强影响点。

独立:即我们数据是各个case是独立的,不能有一个人测量两次或者多次数据,或者对称器官的数据作为两条数据使用,主要从数据来源判断数据是否独立。

正态:回归分析对自变量及因变量的分布均没有要求,因此正态不是指因变量或自变量正态,而是指回归之后的残差正态,具体检验方法:在回归对话框里点击“保存”按钮,如下图选择未标准差残差:

这样在数据集最后一列多出一列变量,即未标准化残差,可检查此残差是否符合正态分布(检查方法可以回复“正态”查看)。

线性:是看自变量与因素是否有线性关系。主要查看两个变量的散点图,观察是否线性关系。

如下图可以认为两者有线性关系。如果如下图数据如果直接做回归分析,可能都没有线性关系(r=0),但观察散点图,左侧认为没有线性关系,右侧有曲线关系(抛物线)。因此散点图在相关及回归分析中至关重要。

等方差:等方差不是指因变量或自变量方差相等,而是在因变量的每个预测值处,残差的方差相等。在SPSS里可以直接画残差与因变量预测值的散点图查看,如下图所示:

结果如下图,如果随着预测值变量,残差在预测值上下分布分布基本相同,可以认为残差相等。

异常值或强影响点:即某一个或几个点可能会对线性关系影响很大,这一组(或几组)数往往是离群值,因此可以通过画因变量与自变量的散点图查看。本例子中散点图见前面的图,认为没有观察到强影响点。如下图可认为有强影响点,是否为异常值需要再查看数据或进行专业判断。


在多重线性回归中,除要满足上述要求外,还要满足各自变量间没有共线性,在线性回归中,可以在线性回归对话框“统计量”-“共线性诊断”查看。

在结果中,一般认为容忍度(SPSS中文译为“容差”)<0.1或方差膨胀因子(VIF)大于10时认为有共线性。

下面我们以一个例子说明共线性的诊断及处理。如下面数据,我们有11年的经济数据,我们想看总产量、存储量、总消费量与进口总额的关系。我们以进口总额(y)为因变量,以总产量(x1)、存储量(x2)、总消费量(x3)为自变量,进行多重线性回归,结果如下:

我们发现结果中,进口总额与总产量没有关系,而与存储量、总消费量正相关(方程中系数为正值),这与我们常识可能不符合,我们一般认为总产量应该会影响进口额,而存储量越高,进口应该减少。再看后面容差及VIF,发现有两个VIF超过180,即存在严重共线性。

从上面例子中也可以看出,共线性会影响结果的解读,即可能使某自变量的系数偏大或偏小,甚至改变系数正负号,如果我们使用前进或后退法筛选变量,可能导致我们认为有意义的变量被踢除方程。

怎么解决共线性问题呢?有几种方法供大家参考。

1.一般产生共性问题的两个或多个变量之间相关性r值达到0.9或更高,也即我们可以人为选择其中一个变量代表共线性的另外变量进行回归,即选择专业上认为有意义或更容易解读的变量进行回归。在前面例子中我们发现总产量与总消费量高度相关(r=0.997,见下图),我们可以选择这两个变量其中之一进行回归;

2.可以进行因子分析,用提取的公因子进行回归分析,因子分析过程较复杂,详细可以查看书籍。

3.进行岭回归分析。岭回归原理较难理解,感兴趣的可以查看相关资料。在SPSS可以作岭回归,但不能在菜单操作,需要调用安装文件下的岭回归程序。

皮肤科的统计学家(statistician_derma)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多