23.多元线性回归一、多元线性回归1.模型为Y=𝛽0+𝛽1X1+…+𝛽NXN+ε其中X1,…,XN是自变量,Y是因变量,𝛽0,𝛽1…,𝛽N是待求的未知参数,ε是随机误差项(残差),若记多元线性回归模型可写为矩阵形式:Y=Xβ+ε通常要求:矩阵X的秩为k+1(保证不出现共线性),且kN;ε为正态分布,E(ε)=0和E(εε’)=𝜎2I错误!未定义书签。,其中I为N×N单位矩阵。用最小二乘法原理,令残差平方和最小,得到为β的最佳线性无偏估计量(高斯-马尔可夫定理)。2.𝜎2的估计和T检验选取𝜎2的估计量:则假如t值的绝对值相当大,就可以在适当选定的置信水平上否定原假设,参数的1-α置信区间可由下式得出:其中tα/2为与α%显著水平有关的t分布临界值。3.R2和F检验若因变量不具有0平均值,则必须对R2做如下改进:随着模型中增添新的变量,R2的值必定会增大,为了去掉这种增大的干扰,还需要对R2进行修正(校正拟合优度对自由度的依赖关系):22/(1)111(1)/(1)1ESSNkNRRTSSNNk做假设检验:H0:𝛽1=…=𝛽N=0;H1:𝛽1…,𝛽N至少有一个≠0;使用F统计量做检验,若F值较大,则否定原假设。二、PROCREG过程步基本语法:PROCREGdata=数据集;MODEL因变量=自变量列表/可选项;restrict自变量的等式约束;说明:MODEL语句用来指定因变量和自变量;restrict语句示例:restricta1+a2=1;常用的输出可选项:STB——输出标准化偏回归系数矩阵CORRB——输出参数估计矩阵COLLINOINT——对自变量进行共线性分析P——输出个体观测值、预测值及残差(R/CLM/CLI包含P)R——输出每个个体观测值、残差及标准误差CLM——输出因变量均值95%的置信界限的上下限CLI——对各预测值输出95%的置信界限的上下限MSE——要求输出随机扰动项方差𝜎2的估计2ˆ与残差分析有关的可选项VIF——输出变量间相关性的方差膨胀系数,VIF越大,说明由于共线性存在,使方差变大;COLLIN——输出条件数,它表示最大的特征值与每个自变量特征值之比的平方根。一般情况下,条件数越大越可能存在共线性;TOL——表示共线性水平的容许值,TOL越小说明其可用别的自变量解释的部分多,自然可能与别的自变量存在共线性关系;DW——输出Durbin-Watson统计量;influence——对异常点进行诊断,对每一观测点输出统计量(Cook’sD50%,defits/debetas2说明该点影响较大)。交互式语句add——向模型中增加变量;delete——删除原拟合模型中的有关变量;refit——重新拟合模型;print——输出有关模型的相关信息。绘制回归分析的图形在PROCREG过程步加入绘图选项语句即可。基本语法:PROCREGdata=数据集PLOTS=(图形类型);可选的绘图类型:FITPLOT——带回归线、置信预测带的散点图;RESIDUALS——自变量的残差图;DIAGNOSTICS——诊断图(包括下面各图);COOKSD——Cook'sD统计量图;OBSERVEDBYPREDICTED——根据预测值的因变量图;QQPLOT——检验残差正态性的QQ图;RESIDUALBYPREDICTED——根据预测值的残差图;RESIDUALHISTOGRAM——残差的直方图;RFPLOT——残差拟合图;RSTUDENTBYLEVERAGE——杠杆比率的学生化残差图;RSTUDENTBYPREDICTED——预测值的学生化残差图;注:残差图(RESIDUALS)和诊断图(DIAGNOSTICS)是自动生成的,根据模型也有其它默认的图形输出;若只绘制指定的图形需要加上ONLY:PROCREGdata=数据集PLOTS(ONLY)=(图形类型);例1用多元线性回归模型,来研究耗氧量的是如何依赖其它变量的。31位成年人心肺功能的调查数据(见下表),由于回归是相关的,所以理论上还应该做共线性诊断。ageweightOxygen耗氧量runtime跑15英哩的时间(分)rstpulse休息时每分钟心跳次数runpulse跑步时每分钟心跳次数Maxpulse每分钟心跳次数最大值4489.4744.60911.37621781824075.0745.31310.07621851854485.8454.2978.65451561684268.1559.5718.17401661723889.0249.8749.22551781804777.4544.81111.63581761764075.9845.68111.95701761804381.1949.09110.85641621704481.4239.44213.08631741763881.8760.0558.63481701864473.0350.54110.13451681684587.6637.38814.03561861924566.4544.75411.12511761764779.1547.27310.60471621645483.1251.85510.33501661704981.4249.1568.95441801855169.6340.83610.95571681725177.9146.67210.00481621684891.6346.77410.25481621644973.3750.38810.08761681685773.3739.40712.63581741765479.3846.08011.17621561655276.3245.4419.63481641665070.8754.6258.92481461555167.2545.11811.08481721725491.6339.20312.88441681725173.7145.79010.47591861885759.0850.5459.93491481554976.3248.6739.40561861884861.2447.92011.50521701765282.7847.46710.5053170172代码:datafitness;inputageweightoxygenruntimerstpulserunpulsemaxpulse;datalines;4489.4744.60911.37621781824075.0745.31310.07621851854485.8454.2978.65451561684268.1559.5718.17401661723889.0249.8749.22551781804777.4544.81111.63581761764075.9845.68111.95701761804381.1949.09110.85641621704481.4239.44213.08631741763881.8760.0558.63481701864473.0350.54110.13451681684587.6637.38814.03561861924566.4544.75411.12511761764779.1547.27310.60471621645483.1251.85510.33501661704981.4249.1568.95441801855169.6340.83610.95571681725177.9146.67210.00481621684891.6346.77410.25481621644973.3750.38810.08761681685773.3739.40712.63581741765479.3846.08011.17621561655276.3245.4419.63481641665070.8754.6258.92481461555167.2545.11811.08481721725491.6339.20312.88441681725173.7145.79010.47591861885759.0850.5459.93491481554976.3248.6739.40561861884861.2447.92011.50521701765282.7847.46710.5053170172;run;proccorrdata=fitnessPLOT=MATRIX(HISTOGRAMnvar=all);varoxygenageweightruntimerstpulserunpulsemaxpulse;labeloxygen='Oxygenconsumption'age='Ageinyears'weight='weightinkg'runtime='Min.torun1.5miles'rstpulse='Heartratewhileresting'runpulse='Heartratewhilerunning'maxpulse='Maximumheartrate';run;procregdata=fitnessPLOTS(ONLY)=(DIAGNOSTICSFITPLOT);modeloxygen=agemaxpulserstpulserunpulseruntimeweight/ss1ss2;/*ss1为第Ⅰ类型平方和,ss2为第Ⅱ类型平方和*/run;deleterstpulse;print;run;procregdata=fitness;modeloxygen=agemaxpulserunpulseruntimeweight;pulse:testmaxpulse+runpulse=0;run;procregdata=fitness;modeloxygen=agemaxpulserunpulseruntimeweight/ss2;/*带restrict约束条件的回归,ss1不可用*/restrictmaxpulse+runpulse=0;run;datafitness2;setfitness;maxrun=maxpulse-runpulse;run;procregdata=fitness2;modeloxygen=agemaxrunruntimeweight/ss1ss2;run;运行结果及说明:(1)相关性分析散点图矩阵中第一行的6个散点图分别表示oxygen变量作为y轴,其他六个变量作为x轴的散点图,第一列的6个散点图分别表示oxygen变量作为x轴,其他六个变量作为y轴的散点图;对角线是该变量数值变化的直方图。绘制散点图矩阵图是为了观察变量间的相关性。从图中可以看出变量runpulse与maxpulse之间存在有较强的共线性,如果在回归模型中增加方差膨胀系数(vif),共线性水平的容许值(tol),条件数(collin)选项对回归进行共线性诊断,也会得到相同的结论。另外,我们从图中还发现耗氧量oxygen与变量runtime有较强的负相关,从下面的相关系数也能得到相同的结论。(2)回归分析得到回归方程:oxygen=102.238339-0.219916age+0.304735maxpulse-0.000844rstpuls-0.373164runpulse-2.680516runtime-0.072380weight多元线性回归模型的一个重要问题是,如何正确地缩减自变量到达最优的简化模型。判断回归模型是否还能缩减自变量,可以通过这第Ⅰ类平方和(I型SS)和第Ⅱ类平方和(Ⅱ型SS),构造F检验(等同于这个自变量的参数t检验,因为F=t2)来比较确定。runtime自变量的两类平方和都是最大的且占的比例很大,说明是回归模型中第一重要的自变量。而rstpulse自变量在第一类平方和中有比较大的数值却在第Ⅰ类平方和中是最小的,这是rstpulse自变量(休息时每分钟心跳次数)应该被考虑第一个删除的主要原因。(3)剔除不显著的回归变量,继续回归分析自变量rstpulse和weight