关键词:SAS; 多重线性回归; 多元线性回归; 多重共线性; 自变量选择; 逐步回归; 模型拟合评价; 哑变量设置
一、案例介绍
某社区医师从本社区的糖尿病患者中随机抽取50名,收集了他们的性别(Gender)、经济水平(Income)、空腹胰岛素(Fasting insulin,mmol/L)、糖化血清蛋白(Glycosylated serum protein)和空腹血糖(FBS,mmol/L),欲探究空腹血糖是否受到其他几项指标的影响。部分数据见图1。本文案例可从“附件下载”处下载。其中,Gender 是受试者的性别,Income是受试者的收入,Fasting_insulin是受试者的空腹胰岛素,Glycosylated_ serum_protein是受试者的糖化血清蛋白,FBS是受试者的空腹血糖。
二、问题分析
本案例的目的是分析空腹血糖是否受到其他几项指标的影响,由于因变量是定量资料,初步考虑可使用多重线性回归分析。但需要满足以下7个条件:
条件1:样本量是自变量个数的5~10倍。本案例有4个自变量,样本量为50,满足该条件。
条件2:自变量若为连续变量,需要与因变量之间存在线性关系,可通过绘制散点图予以考察。
条件3:各观测值之间相互独立,即残差之间不存在自相关。通过研究设计和数据收集的过程分析,可判断本案例中观测值之间不存在互相影响的情况。该条件还可通过软件分析后辅助判断。
条件4:不存在显著的多变量异常值,该条件需要通过软件分析后判断。
条件5:自变量之间无多重共线性,该条件需要通过软件分析后判断。
条件6:残差符合正态(或近似正态)分布,该条件需要通过软件分析后判断。
条件7:残差大小不随所有变量取值水平的变化而变化,即方差齐性,可通过绘制残差图进行判断。
三、软件操作及结果解读
(一) 适用条件判断
1. 条件2判断(连续性自变量与因变量之间的线性关系)
(1) SAS实现
首先导入数据,代码如下:
proc import datafile="G:\test\多重线性回归分析.csv" dbms=csv out=data1; run;
使用如下的proc univariate过程步,分别绘制空腹胰岛素(Fasting insulin,mmol/L)、糖化血清蛋白(Glycosylated serum protein)和空腹血糖(FBS,mmol/L)的散点图:
proc sgplot data=data1; scatter x=Fasting_insulin y=FBS; run; proc sgplot data=data1; scatter x=Glycosylated_serum_protein y=FBS; run;
(2) 结果解读
图2和图3分别展示了空腹胰岛素(Fasting insulin,mmol/L)、糖化血清蛋白(Glycosylated serum protein)和空腹血糖(FBS,mmol/L)的散点图,可见空腹胰岛素(Fasting insulin,mmol/L)、糖化血清蛋白(Glycosylated serum protein)和空腹血糖(FBS,mmol/L)均存在线性关系。案例数据满足条件2。
2. 条件3判断(各观测值之间的独立性)
(1) SAS实现
由于本案例中性别(Gender)和经济水平(Income)为分类变量,需要为其设置哑变量,以女性和低收入为参照,代码如下所示:
data data2; set data1; length Gender1 Income1 Income2 8.; Gender1 = ifc(Gender="男",1,0); Income1 = ifc(Income="中等收入",1,0); Income2 = ifc(Income="高收入",1,0); run;
使用proc reg过程步model语句的DW选项输出Durbin–Watson自相关检验的结果,代码如下:
proc reg data=data2; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein/DWPROB; run; quit;
(2) 结果解读
Durbin–Watson检验的结果如图3所示,DW统计量为1.655,Pr <DW =0.1284且Pr >DW =0.8716, 说明正相关和负相关检验均无统计学意义,则观测值相互独立,满足条件3。
3. 条件4判断(不存在显著的多变量异常值)
(1) SAS实现
SAS proc reg过程步的r选项输出残差信息,包括Cook’s D(库克距离)的值,代码如下:
proc reg data=data2; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein/r; run; quit;
(2) 结果解读
如图5所示,最大库克距离D为0.234<0.5,提示不存在显著异常值,本研究数据满足条件4。
4. 条件5判断(多重共线性判断)
(1) SAS实现
SAS proc reg过程步的tol和vif选项分别给出参数估计值的容忍度和方差膨胀因子,代码如下:
proc reg data=data2; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein/tol vif; run; quit;
(2) 结果解读
如图6所示,容忍度的值均>0.1,方差膨胀因子的值均<10,提示自变量之间不存在严重共线性问题,满足条件5。
5. 条件6判断(残差的正态性检验)
(1) SAS实现
SAS proc reg过程步的plots=qqplot选项绘制残差Q-Q图,output语句将残差值输出到res数据集,残差用变量r表示,并使用proc univariate过程步对残差值进行正态性检验,代码如下:
proc reg data=data2 plots=qqplot; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein; output out=res r=r; run; quit; proc univariate data=res normal; var r; run;
(2) 结果解读
如图7所示,残差Q-Q图中各散点基本围绕对角线分布,提示残差服从正态分布。
图8展示了正态性检验的结果,Shapiro-Wilk检验统计量W=0.98344,P=0.7030,表明残差服从正态分布,满足条件6。
6. 条件7判断(方差齐性检验)
(1) SAS实现
SAS proc reg过程步的spec选项执行验证方差齐性的White检验,代码如下:
proc reg data=data2; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein/spec; run; quit;
(2) 结果解读
如图9所示,方差齐性检验结果显示,不能拒绝“等方差齐性”的原假设(P=0.3708),提示残差的方差齐,本研究数据满足条件7。
(二) 变量筛选和模型拟合
1. SAS实现
使用前向逐步回归方法进行变量筛选,代码如下所示:
proc reg data=data2 outest=result; model FBS=Gender1 {Income1 Income2} Fasting_insulin Glycosylated_serum_protein/selection=forward stb clb AIC BIC; run; quit;
其中,outest=result选项输出result数据集至work库,包含最终模型的参数估计值和模型拟合度量值;stb选项给出标准化回归系数,用来衡量不同自变量对因变量影响的相对重要性;clb选项给出参数估计的95%置信区间;AIC、BIC选项分别输出最终模型的AIC和BIC值至result数据集。
2. 结果解读
如图10所示,变量Glycosylated_serum_protein首先进入模型,模型有统计学意义(F=43.67,P<0.0001)。
如图11所示,变量Income继续进入模型,此时模型包含Glycosylated_serum_protein和Income两个变量,且模型有统计学意义(F=51.59,P<0.0001)。
如图12所示,变量Fasting_insulin继续进入模型,此时模型包含Glycosylated_serum_protein、Income和Fasting_insulin三个变量,且模型有统计学意义(F=67.03,P<0.0001)。
如图13所示,变量Gender未能进入模型。即经过变量筛选,最终模型包含Glycosylated_serum_protein、Income和Fasting_insulin三个变量。
结果的最后一部分展示了最终模型的模型拟合度量和参数估计值,如图14所示。模型有统计学意义(F=67.03,P<0.0001)。模型的决定系数R2为0.8563,提示自变量(Glycosylated_serum_protein、Income和Fasting_insulin)可以解释85.63%的因变量的变异(空腹血糖FBS);校正决定系数adjusted R2为0.8435,提示校正了自变量个数后,自变量可以解释84.35%的因变量的变异。
图14的最后一张表格展示了模型的参数估计结果,给出了截距和自变量的非标准化回归系数、统计量t值、P值,标准化回归系数以及非标准化回归系数的95%CI。结果显示,回归模型的截距为9.567(95%CI:8.071~11.062),P<0.0001,截距有统计学意义,表明截距≠0。Income1的非标准化回归系数为0.814 (95%CI:0.192~1.435),P=0.0115,回归系数有统计学意义,表明相比低收入人群,中等收入人群比低收入人群空腹血糖高0.814 mmol/L。Income2的非标准化回归系数为3.934 (95%CI:3.122~4.745),P<0.0001,回归系数有统计学意义,表明相比低收入人群,高收入人群比低收入人群空腹血糖高3.934 mmol/L。Fasting_insulin的非标准化回归系数为-0.194 (95%CI:-0.269~-0.118),P<0.0001,回归系数有统计学意义,表明空腹胰岛素每增加1 mmol/L,空腹血糖减少0.194 mmol/L。Glycosylated_serum_protein的非标准化回归系数为0.501 (95%CI:0.366~0.636),P<0.0001,回归系数有统计学意义,表明糖化血清蛋白每增加1%,空腹血糖增加0. 501mmol/L。
据此可以写出本案例的回归方程为:
空腹血糖 = 9.567+ 0.814×(经济水平=中等收入) + 3.934×(经济水平=高收入) - 0.194×空腹胰岛素 + 0.501×糖化血清蛋白
根据此方程输入相关自变量数值即可对空腹血糖进行预测。
四、结论
本研究采用多重线性回归模型考察“空腹血糖”是否受到性别、经济水平、空腹胰岛素和糖化血清蛋白的影响。通过绘制散点图,提示空腹胰岛素和糖化血清蛋白与空腹血糖之间存在线性关系;通过专业判断和Durbin-Watson检验提示数据之间相互独立;通过库克距离分析,提示数据不存在需要删除的异常值;通过方差膨胀因子和容忍度判断自变量之间不存在严重多重共线性,通过Shapiro-wilk检验及绘制残差Q-Q图,提示残差服从正态分布;通过White检验,提示残差方差齐。满足多重线性回归分析条件。
多元线性回归分析结果发现,在其他变量不变的情况下,中等收入人群比低收入人群空腹血糖高0.814 mmol/L (β=0.814,95%CI:0.192~1.435;P=0.011);高收入人群比低收入人群空腹血糖高3.934 mmol/L (β=3.934,95%CI:3.122~4.745,P<0.001);空腹胰岛素每增加1 mmol/L,空腹血糖减少0.194 mmol/L (β=-0.194,95%CI:-0.269~-0.118;P<0.001);糖化血清蛋白每增加1%,空腹血糖增加0.501 mmol/L (β=0.501,95%CI:0.366~0.636;P<0.001)。
线性回归分析方程为:空腹血糖 = 9.567+ 0.814×(经济水平=中等收入) + 3.934×(经济水平=高收入) - 0.194×空腹胰岛素 + 0.501×糖化血清蛋白。回归模型具有统计学意义,F=67.03,P<0.001;模型可以解释84.35%的因变量的变异(adjusted R2=0.8435)。
五、分析小技巧
(一) 各观测值之间的独立性检测
- 判断观测值是否独立,主要取决于研究设计和数据收集阶段的质量控制,Durbin-Watson检验最好用于辅助判断。Durbin-Watson检验值分布在0~4之间,越接近2,观测值相互独立的可能性越大。且根据Pr <DW和Pr >DW,可得知正相关检验和负相关检验的P值大小,更容易客观的判断独立性。
(二) 异常值检测
- Cook’s D(库克距离)用来判断强影响点是否为因变量的异常值点。一般认为当D<0.5时不是异常值点,当D>0.5时认为是异常值点。
- 并非所有的异常点都意味着结果不好,有时候发现异常点可能会提示有更重要的信息。如果出现异常点,首先应检查数据是否录入错误,也可以选择其他相应模型来拟合,或者需要收集更多的数据来证实。
(三) 残差的正态性检测
- 如果残差不符合正态分布,可以考虑对因变量进行数据变换,使其服从正态分布后再拟合线形回归模型。
(四) 残差的方差齐性检测
- 残差的方差齐是指在自变量取值范围内,对于任意自变量取值,因变量都有相同的方差。线形回归中,残差的方差齐实际上要比残差正态分布重要。如果这一条件不满足,可对因变量进行变量变换,使其满足残差方差齐,也可以采用加权回归分析,消除方差的影响。
(五) 变量筛选
- 多重回归分析中,变量的筛选一般有向前筛选(selection=forward)、向后筛选(selection=backward)、逐步筛选(stepwise)三种基本策略。
- 向前筛选是变量不断进入回归方程的过程。首先,选择与因变量具有最高线性相关系数的变量进入方程,并进行回归方程检验;其次,在剩余的变量中寻找与因变量偏相关系数最高的变量进入回归方程,并对新建立的回归方程进行检验;一直重复这个过程,直到再也没有可进入方程的变量为止。
- 向后筛选是变量不断剔除出回归方程的过程。首先,所有变量全部引入回归方程,并对回归方程进行检验,然后在回归系数不显著的变量中,剔除t检验值最小的变量,并对模型进行检验;直到回归方程中所有变量的回归系数均显著,则回归模型确定。
- 逐步筛选在向前筛选的基础之上,结合向后筛选策略,在每个变量进入方程后再次判断是否存在可以剔除方程的变量。因此,逐步筛选在引入变量的每一个阶段都提供了剔除不显著变量的机会。
(六) 回归模型
- 在进行回归分析时,要注意避免对数据的过渡挖掘,不能将回归模型分析的结果随意延伸到自变量取值范围以外的数值。也不能随意将模型分析结果延伸到因果关系。
(七) 模型评价
常见的回归模型评价指标有:决定系数R2、校正决定系数adjusted R2和均方根误差RMSE等。实际分析时,可以综合多个指标,并结合模型所反映的实际情况来判断。
- 决定系数R2 (determination coefficient)反映了因变量的变异能够被自变量解释的比例,或者说方程中的自变量解释了因变量变异的多少。R2越大,表示方程中自变量解释能力越强。但该指标有一缺陷,即其值随着自变量的增多而增加,即使加入无意义的变量,该指标值也会随之增加,因此不能较好地反映模型优劣。
- 校正决定系数adjusted R2(adjusted determination coefficient) 是对决定系数的修正。当有统计学意义的变量进入方程时,该指标随之增大,而当无统计学意义的变量进入方程时,其值减小。值越大表明模型越好,是衡量模型优劣的重要指标之一。
- 均方根误差RMSE主要反映模型的估计精度,值越小越好。一般会随模型中自变量个数增加而减小,这一性质与校正系数相似。