SAS讲义 - 第三十三课逐步回归分析

更新时间:2024-06-17 21:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

37722429.doc

商务数据分析

电子商务系列

第三十三课 逐步回归分析

一、 逐步回归分析

在一个多元线性回归模型中,并不是所有的自变量都与因变量有显著关系,有时有些自变量的作用可以忽略。这就产生了怎样从大量可能有关的自变量中挑选出对因变量有显著影响的部分自变量的问题。

在可能自变量的整个集合有40到60个,甚至更多的自变量的那些情况下,使用“最优”子集算法可能并不行得通。那么,逐步产生回归模型要含有的X变量子集的自动搜索方法,可能是有效的。逐步回归方法可能是应用最广泛的自动搜索方法。这是在求适度“好”的自变量子集时,同所有可能回归的方法比较,为节省计算工作量而产生的。本质上说,这种方法在每一步增加或剔除一个X变量时,产生一系列回归模型。增加或剔除一个X变量的准则,可以等价地用误差平方和缩减量、偏相关系数或F统计量来表示。

无疑选择自变量要靠有关专业知识,但是作为起参谋作用的数学工具,往往是不容轻视的。通常在多元线性模型中,我们首先从有关专业角度选择有关的为数众多的因子,然后用数学方法从中选择适当的子集。本节介绍的逐步回归法就是人们在实际问题中常用的,并且行之有效的方法。

逐步回归的基本思想是,将变量一个一个引入,引入变量的条件是偏回归平方和经检验是显著的,同时每引入一个新变量后,对已选入的变量要进行逐个检验,将不显著变量剔除,这样保证最后所得的变量子集中的所有变量都是显著的。这样经若干步以后便得“最优”变量子集。

逐步回归是这样一种方法,使用它时每一步只有一个单独的回归因子引进或从当前的回归模型中剔除。Efroymoson (1966)编的程序中,有两个F水平,记作Fin和Fout,在每一步时,只有一个回归因子,比如说Xi,如果剔除它可能引起RSS的减少不超过残差均方MSE(即ESS/(N-k-1))的Fout倍,则将它剔除;这就是在当前的回归模型中,用来检验 ?i=0的F比=(RSS(x1,x2,?xi?1,xi)?RSS(x1,x2,?xi?1))/MSE是小于或等于Fout。

若剔除的变量需要选择,则就选择使RSS减少最少的那一个(或等价的选择F比最小的)。用这种方式如果没有变量被剔除,则开始引进一个回归因子,比如Xj,如果引进它后使RSS的增加,至少是残差均方的Fin倍,则将它引进。即若在当前模型加Xj项后,为了检验 ?j =0的F比,F ≥Fin时,则引进Xj,其次,若引进的变量需要选择,则选择F比最大的。程序按照上面的步骤开始拟合,当没有回归因子能够引进模型时,该过程停止。

二、 变量选择的方法

若在回归方程中增加自变量Xi,称为“引入”变量Xi,将已在回归方程中的自变量Xj从回归方程中删除,则称为“剔除”变量Xj。无论引入变量或剔除变量,都要利用F检验,将显著的变量引入回归方程,而将不显著的从回归方程中剔除。记引入变量F检验的临界值为Fin(进),剔除变量F检验的临界值为Fout(出),一般取Fin ≥Fout,它的确定原则一般是对k个自变量的m个(m ≤k),则对显著性水平df1=1,df2=N?m?1的F分布表的值,记为F*,则取Fin=Fout= F*。一般来说也可以直接取Fin=Fout=2.0或2.5。当然,为了回归方程中

上海财经大学经济信息管理系IS/SHUFE

Page 1 of 12

37722429.doc

商务数据分析

电子商务系列

还能够多进入一些自变量,甚至也可以取为1.0或1.5。

1. 变量增加法

首先对全部k个自变量,分别对因变量Y建立一元回归方程,并分别计算这k个一元回归方程的k个回归系数F检验值,记为{F11,F21,?Fk1},选其最大的记为Fi1 = max{F11,F21,?Fk1},若有Fi1≥ Fin,则首先将X1引入回归方程,不失一般性,设Xi就是X1。

接着考虑X1分别与X2,X3,...,Xk与因变量Y二元回归方程,对于这k-1个回归方程中X2,...,Xk的回归系数进行F检验,计算得的F值,并选其最大的F值Fj,若Fj≥Fin,则接着就将Xj引入回归方程,不失一般性,设Xj就是X2。

对已经引入回归方程的变量X1和X2,如同前面的方法做下去,直至所有末被引入方程的变量的F值均小于Fin时为止。这时的回归方程就是最终选定的回归方程。

显然,这种增加法有一定的缺点,主要是,它不能反映后来变化的情况。因为对于某个自变量,它可能开始是显著的,即将其引入到回归方程,但是,随着以后其他自变量的引入,它也可能又变为不显著的了,但是,也并没有将其及时从回归方程中剔除掉。也就是增加变量法,只考虑引入而不考虑剔除。

2. 变量减少法

与变量增加法相反,变量减少法是首先建立全部自变量X1,X2,...,Xk对因变变量Y的回归

111方程,然后对k个回归系数进行F检验,记求得的F值为{F1,F2,?Fk},选其最小的记为

22Fi=min{F1,F2,?Fk},若有Fi≤Fout,则可以考虑将自变量Xi从回归方程中剔除掉,不妨

11111设Xi就取为X1。

再对X2,X3,...,Xk对因变量Y建立的回归方程中重复上述过程,取最小的F值为Fj,若有Fj≤Fout,则将Xj也从回归方程中剔除掉。不妨设Xj就是X2。重复前面的做法,直至在回

22归方程中的自变量F检验值均大于Fout,即没有变量可剔除为止。这时的回归方程就是最终的回归方程。

这种减少法也有一个明显的缺点,就是一开始把全部变量都引入回归方程,这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少一些计算。

3. 变量增减法

前面的二种方法各有其特点,若自变量X1,X2,...,Xk 完全是独立的,则可结合这二种方法,但是,在实际的数据中,自变量X1,X2,...,Xk之间往往并不是独立的,而是有一定的相关性存在的,这就会使得随着回归方程中变量的增加和减少,某些自变量对回归方程的贡献也会发生变化。因此一种很自然的想法是将前二种方法综合起来,也就是对每一个自变量,随着其对回归方程贡献的变化,它随时可能被引入回归方程或被剔除出去,最终的回归模型是在回归方程中的自变量均为显著的,不在回归方程中的自变量均不显著。

三、 引入变量和剔除变量的依据

上海财经大学经济信息管理系IS/SHUFE

Page 2 of 12

37722429.doc

商务数据分析

电子商务系列

如果在某一步时,已有l个变量被引入到回归方程中,不妨设为X1,X2,?,Xl,即已得回归方程

?????X??X????X Y01122ll(33.1)

并且有平方和分解式

TSS?RSS?ESS (33.2)

显然,回归平方和RSS及残差平方和ESS均与引入的变量相关。为了使其意义更清楚

起见,将其分别设为RSS(X1,X2,?,Xl)及ESS(X1,X2,?,Xl)。下面我们来考虑,又有一个变量Xi(l

TSS = RSS(X1,X2,?,Xl,Xi)+ ESS(X1,X2,?,Xl,

Xi)

(33.3)

当变量Xi引入后,回归平方和从RSS(X1,X2,?,Xl)增加到RSS(X1,X2,?,Xl,

Xi),而相应的残差平方和却从ESS(X1,X2,?,Xl)降到

ESS(X1,X2,?,Xl,

Xi),并

RSS(X1,X2,?,Xl , Xi)-RSS(X1,X2,?,Xl)

(33.4)

= ESS(X1,X2,?,Xl)-ESS(X1,X2,?,Xl , Xi)

记Wi?RSS(X1,X2,?,Xl,Xi)?RSS(X1,X2,?,Xl),它反映了由于引入Xi后,Xi对回归平方和的贡献,也等价于引入Xi后残差平方和所减少的量,称其为Xi对因变量Y的方差贡献,故考虑检验统计量

Fi?Wi?X1,X2,?,Xl?ESS?X1,X2,?,Xl,Xi?/?N?l?1?

(33.5)

其中N为样本量,l是已引入回归方程的变量个数,这时若有Fi?Fin,则可以考虑将自变量Xi引入回归方程,否则不能引入。

实际上大于Fin的变量开始时可能同时有几个,那么是否将它们都全部引入呢?实际编程序时并不是一起全部引入,而是选其最大的一个引入回归方程。

关于剔除变量,如果已有l个变量被引入回归方程,不失一般性,设其为X1,X2,?,Xl,所对应的平方和分解公式为:

TSS?RSS(X1,X2,?,Xi,?,Xl)?ESS(X1,X2,?,Xi,?Xl)

上海财经大学经济信息管理系IS/SHUFE

Page 3 of 12

(33.6)

37722429.doc

商务数据分析

电子商务系列

其中i?1,2,?,l为了研究每个变量在回归方程中的作用,我们来考虑分别删掉Xi (i=1,2,...,l后相应的平方和分解公式为:

TSS?RSS(X1,X2,?Xi?1,Xi?1?,Xl)?ESS(X1,X2,?,Xi?1,Xi?1?,Xl)

(33.7)

这时,回归平方和从RSS(X1,X2,?,Xi,?,Xl)降为RSS(X1,X2,?Xi?1,Xi?1?,Xl),同时残差也发生相应的变化。残差平方和从ESS(X1,X2,?,Xi,?Xl)增加到

ESS(X1,X2,?,Xi?1,Xi?1?,Xl),Xi对回归平方和的贡献,也等价于删除Xi后残差平方

和所增加的量,同理可表示为:

Wi?RSS(X1,X2,?,Xi,?Xl)?RSS(X1,X2,?,Xi?1,Xi?1?Xl)?ESS(X1,X2,?,Xi?1,Xi?1?Xl)?ESS(X1,X2,?,Xi,?Xl)

(33.8)

与前同理,我们来构造检验统计量

Fi?Wi?X1,X2,?,Xi,?,Xl?ESS?X1,X2,?,Xi,?Xl?/?N?l?1?

(33.9)

显然,这时Fi越小,则说明Xi在回归方程中起的作用(对回归方程的贡献)越小,也就是若有Fi?Fout,则可以考虑将自变量Xi从回归方程中剔除掉,我们在编程序时,每次只

剔除一个,因此,我们每次选择最小的Fi?min(F1,F2,?,Fl)来与Fout进行比较。若有

Fi?Fout则可以不考虑剔除,而开始考虑引入。

四、 逐步回归在使用过程中要注意的问题

逐步回归在计算过程中,进入和剔除变量规则的差别在例子中有可能得到说明。例如,可以根据Fi统计量中MSE的自由度来使用不同的Fin和Fout 。但是,往往并不使用这种提纯量,而是使用固定的F 值,因为在搜索过程的重复检验中,并不可能得到精确的概率解释。最低可接受Fin决不应小于最高可接受Fout,否则就有可能重复进入和剔除一个自变量。 自变量进入模型的顺序并不反映它们的重要程度。例如,第一个进入模型的X1,最终却可能被剔除。我们使用的逐步回归程序,在每个阶段上都打印出偏相关系数。对于筛选变量来说,使用这些相关系数与使用Fi值是等价的,事实上,有些程序就是使用偏相关系数来筛选变量的。进入和剔除一个变量的F 限不必根据近似显著性水平选定,但可以根据误差缩减量来描述性地确定。例如,一个进入变量的F限2.0可以这样来说明:变量一旦进入模型,那么,进入变量的边际误差缩减量至少应该是剩余误差均方的二倍。

逐步回归方法的一个局限是预先假定有单一的最优X变量子集,从而来进行识别。正如

上海财经大学经济信息管理系IS/SHUFE

Page 4 of 12

37722429.doc

商务数据分析

电子商务系列

前面已经提到的,常常并没有唯一的最优子集。因此,一些统计学家建议,求得逐步回归的解后,拟合所有可能与逐步回归解的自变量个数相同的回归模型,以研究是否存在更好的X变量子集。

逐步回归方法的另一个缺点是当X变量高度相关时,有时会得到不合理的“最优”子集。也有人提出好几种其他寻找“最优”自变量子集的自动搜索方法。我们这里提一下其中的两种。但这两种方法都还未被接受为逐步搜索方法。其中之一为向前选元法,这种搜索方法只是逐步回归方法的简化,略去了检验进入模型的变量是否应被剔除这一步。其中之二为向后剔除法,这种搜索方法与向前选元法相反。它从包括所有X变量的模型开始,挑出F* 值最小的那个变量。例如,假定Xi为F* 值最小的那个变量,有:

Fi?*Wi?X1,X2,?,Xi,?,Xk?ESS?X1,X2,?,Xi,?Xk?/?N?k?1?

(33.10)

如果最小的Fi*值小于预定限,就剔除这个变量,然后拟合剩余的k?1个自变量的模型,挑选下一个待剔除元。重复这种过程,直至没有自变量可以被剔除。因为向后剔除法是从最大可能模型开始的,所以它比向前选元法需要更多的计算量。但是,向后剔除法有一个优点,它可以使使用者明白含有许多变量模型的复杂性。

五、 stepwise逐步回归过程

stepwise过程对逐步回归提供了九种方法。当你有许多自变量且想找出哪些自变量是该选入回归模型时,stepwise是有用的。

由于stepwise可以使你深入地了解自变量与因变量或响应变量之间的关系,所以它对考察分析是很有帮助的。但是,stepwise并不能保证给你“最好”的模型,甚至具有最大R2的模型也不一定是“最好”的,并且靠这些均值演变得来的模型没有一个可以保证它精确地描述了真实世界的过程。

stepwise与rsquare以及其他过程是不同的。rsquare对所有自变量的组合找出R2 ,所以它可以指出具有最大R的模型。而stepwise在挑选变量时选择下面描述的方法,所以,当stepwise判断模型时,它打印一份多个回归报告。

1. stepwise过程提供的九种模型 1) none(全回归模型)。没有对回归变量进行筛选,建立Y与全部自变量的全回归模型。 2) forward(向前选择)。向前选择技术以模型中没有变量开始,对每个自变量,forward计算反映自变量对模型的贡献的F 统计量。这些F 统计量与model语句中给出的slentry=水平上的值相比较,如果F 统计量的显著水平没有一个比slentry=水平上(如果缺省slentry= 这个参数,则显著水平假设为0.50)的值大,则forward停止。否则,forward在模型中加入具有最大F 统计量的变量,然后forward再计算这些变量的F 统计量直到剩下的变量都在模型的外面,再重复估计过程。变量就这样一个接一个地进入模型直到剩下的变量没有一个可以产生显著的F统计量。一旦一个变量进入了模型,它就不再出去了。

3) backward(向后淘汰)。向后淘汰技术以计算含有全部自变量的模型的统计量为开始。然后变量一个接一个地从模型中剔除,直到留在模型中的所有变量产生的F统计量的显著水平在slstay= 水平上(如果缺省slstay= 这个参数,则显著水平假设为0.10)。在每一步,

上海财经大学经济信息管理系IS/SHUFE

Page 5 of 12

2

37722429.doc

商务数据分析

电子商务系列

剔除对模型贡献最小的变量。 4) stepwise(逐步回归,向前且向后)。逐步方法是向前选择的修正。对已在模型中的变量,不一定必须一直在模型中,这点与向前选择法是不同的。stepwise按照向前选择方法选入变量后,还考察模型中所包含的所有变量并剔除使得F 统计量的显著水平不在slstay=水平上的变量。只有在完成检验和必要的剔除之后,其他变量才可再进入模型。当模型外的变量没有一个使F 统计量的显著在slentry= 水平上且模型中的每个变量在slstay= 水平上显著,或加到模型中的变量是刚刚剔除的变量时候,逐步处理便结束了。

2

5) maxr(具有对偶切换的向前选择)。最大R 改良技术是占优势的逐步技术,它几乎与所有可能的回归一样好。不象上面三种技术,这个方法不是落在单个模型上,而是试着找出最佳一变量模型、最佳二变量模型等等,但它不能保证对每个量度都能找到具有最大R的模型。

maxr方法先找出一个产生最大R值的变量,然后再加入另一个次最大R值的变量,从而形成二变量的模型。形成二变量的模型之后,将模型中的变量与模型外的变量相比较,以决定是否移去一个变量而以另一个能生成更大R2 值的变量来代替。全部比较结束后,便得到了最佳二变量模型。依次往下,便得到最佳三变量模型等等。

6) minr(具有对偶搜索的向前选择)。最小R 增量法非常类似于maxr,只是选择准则为产生最小R2增量。对模型中一个已知的变量数,maxr和minr通常产生同样的“最佳”模型,但是minr在每步中考虑较多的模型。

7) rsquare(R选择法)。按给定样本的R大小准则选择最优的自变量子集,但不能保证对总体或其他样本而言是最优的。用户可以规定出现在子集中自变量的最大和最小个数及被选择的每种子集的个数。R选择法总能够对所考虑变量的每种变量个数找到具有最大R的模型,但需要很多的计算时间。 8) adjrsq(修正R2选择法)。该方法类似于rsquare法,只是对于选择模型使用的准则为修正R2统计量。修正公式见(32.27)式。

9) Mallows的Cp统计量。Cp统计量是由Mallows提出的作为选择模型的判别式的变量。Cp是一个误差平方总和的量度:

CP?ESSMSEp2

22

2

22

22

?(N?2P)

(33.11)

其中,P是模型中包括截距项的参数个数,MSE是满模型时均方误差,ESSp是具有P个自变量(包括截距项)回归模型的误差平方和。作Cp与P的曲线图,Matlows建议取Cp 首次接近P的地方的模型。

2. proc stepwise过程控制语句

stepwise过程一般由下列语句控制:

proc stepwise data=数据集;

model 因变量=自变量 ; weight 变量 ; by 变量 ; run ;

stepwise至少需要一个model语句。by语句和weight语句可以放在任何地方。

1) model语句的。stepwise中可以有任意多个model语句。model语句中的选

上海财经大学经济信息管理系IS/SHUFE

Page 6 of 12

37722429.doc

商务数据分析

电子商务系列

项如下:

? noint——不产生一般在模型中自动生成的截距参数。 ? none——请求全回归模型。

? forward或f——请求向前选择法。 ? backward或b——请求向后淘汰法。

? stepwise——请求逐步技术,这个任选项是预置的。 ? maxr——请求最大R2增量法。 ? minr——请求最小R2 增量法。 ? rsquare——请求R2最大准则法。 ? adjrsq——请求修正R最大准则法。 ? cp——请求Mallows的Cp统计量法。

? slentry= 值——指出向前选择和逐步技术中选择变量进入模型的显著水平。如果省略,那么stepwise过程便对向前选择技术置slentry= 0.5,对逐步技术置slentry=0.15。 ? slstay= 值——指出向后淘汰与逐步技术中变量留在模型里的显著水平。如果省略,则逐步技术用0.15,向后淘汰技术用0.10。

? include=n——强迫头n 个因变量总是在模型中。选择技术由model语句中其他变量来完成。

? start= s——以含有model语句中头s个自变量的模型为开始,进行比较、选择过程。理所当然地,没有一个被估计的模型含有不足s个的变量。此仅应用于maxr或minr模型。 ? stop= s——当它找到“最佳”s变量模型之后,stepwise便停止。其中s是stop的值,此仅应用于maxr或minr模型。 2) 其他语句

? weight语句——用于指出含有观察值的权数的变量。分析中仅用具有weight变量正值的观察。

? by语句——指定的变量值来分组处理某数据集。

2

六、 实例分析

例33.1 [例32.2续] 对fitness数据进行逐步回归分析。

调用reg过程,model语句中的参数选项使用selection=stepwise,请求按逐步回归方法挑选自变量子集。程序如下:

proc reg data= fitness ;

model oxygen = age weight rstpulse maxpulse runpulse runtime

/selection=stepwise ;

run ;

运行后,得到见表33.1所示的结果。

表33.1 逐步回归分析结果

上海财经大学经济信息管理系IS/SHUFE

Page 7 of 12

Stepwise Procedure for Dependent Variable OXYGEN Step 1 Variable RUNTIME Entered R-square = 0.74338010 C(p) = 13.51976469 37722429.doc DF Sum of Squares Mean Square F Prob>F Regression 1 632.90009985 632.90009985 84.01 0.0001 商务数据分析 Error 29 218.48144499 7.53384293 电子商务系列 Total 30 851.38154484 Parameter Standard Type II Variable Estimate Error Sum of Squares F Prob>F INTERCEP 82.42177268 3.85530378 3443.36654076 457.05 0.0001 RUNTIME -3.31055536 0.36119485 632.90009985 84.01 0.0001 Bounds on condition number: 1, 1 ------------------------------------------------------------------------------------------ Step 2 Variable AGE Entered R-square = 0.76424693 C(p) = 12.22493455 DF Sum of Squares Mean Square F Prob>F Regression 2 650.66573237 325.33286618 45.38 0.0001 Error 28 200.71581247 7.16842187 Total 30 851.38154484 Parameter Standard Type II Variable Estimate Error Sum of Squares F Prob>F INTERCEP 88.46228749 5.37263885 1943.41070877 271.11 0.0001 AGE -0.15036567 0.09551468 17.76563252 2.48 0.1267 RUNTIME -3.20395056 0.35877488 571.67750579 79.75 0.0001 Bounds on condition number: 1.036941, 4.147763 ------------------------------------------------------------------------------------------ Step 3 Variable RUNPULSE Entered R-square = 0.81109446 C(p) = 6.82780371 DF Sum of Squares Mean Square F Prob>F Regression 3 690.55085627 230.18361876 38.64 0.0001 Error 27 160.83068857 5.95669217 Total 30 851.38154484 Parameter Standard Type II Variable Estimate Error Sum of Squares F Prob>F INTERCEP 111.71806443 10.23508836 709.69013814 119.14 0.0001 AGE -0.25639826 0.09622892 42.28867438 7.10 0.0129 RUNPULSE -0.13090870 0.05059011 39.88512390 6.70 0.0154 RUNTIME -2.82537867 0.35828041 370.43528607 62.19 0.0001 Bounds on condition number: 1.354763, 11.59745 ------------------------------------------------------------------------------------------ Step 4 Variable MAXPULSE Entered R-square = 0.83681815 C(p) = 4.76608569 DF Sum of Squares Mean Square F Prob>F Regression 4 712.45152692 178.11288173 33.33 0.0001 在输出结果报告中,提供了进入回归变量逐次改变后回归方差分析和拟合的信息。在报告的最后部分,列出了用逐步回归法挑选自变量过程,四个自变量按runtime,age,runpulse,maxpulse 先后次序进人回归模型。所有进入回归的变量在0.15的水平下是显著的,未进人回归的侯选变量在0.15的水平下是不显著的。同时还概要地提供了每个回归模型变化时的R值增加值、R值、CP值、相应的F统计量、p值。在逐步回归的每步细节中,还列出了条件指数的最小值最大值,以及每一个回归变量的类型2平方和。age变量进入模型后,R2值的增加值(Partial R2,称为偏R2或部分R2)计算为(650.6657-632.9001)/ 851.3815=

上海财经大学经济信息管理系IS/SHUFE

Page 8 of 12

2

2

37722429.doc

商务数据分析

电子商务系列

0.020867。 如果按CP值选择最优子集,随着进入回归模型中的自变量个数P从2到5个(包括截距),相应CP值从大到小为13.51976469、12.22493455、6.82780371和4.76608569,按照Mallows提出的回归模型最优自变量个数的选择准则,CP=4.76608569是最接近自变量个数P=5的模型。CP的计算公式见(33.11)式,当P=5时,CP=138.93001792/5.39197-(31-2×5)= 4.76608569。因此,用逐步回归方法及CP值确认的拟合回归模型为:

oxygen= 98.14788797-0.19773470age + 0.27051297maxpulse-0.34810795runpulse

-2.76757879runtime

条件指数(condition number)为最大特征值和每个特征值之比的平方根。我们看到当模型进入第四个自变量maxpulse时,最大的条件指数从较小11.59745变成了较大76.85135,说明存在一定程度的共线性,根据前面例33.2的分析,我们诊断这个共线性方程可能为runpulse-maxpulse=0。

在向前、向后或逐步回归的变量选择过程中,都有一个判断是否可进入或剔除的显著水平,在程序中是分别由model语句的选项slentry=和slstay=设定的,缺省的情况见表33.2所示。

表33.2 缺省的入选和剔除显著水平

forward 0.50 backward 0.10 stepwize 0.15 0.15 slentry slstay 2

下面我们提供全部可能回归的程序,并且以R值的大到小排序输出。

proc reg data= fitness ;

model oxygen = age weight rstpulse maxpulse runpulse runtime

/selection= rsquare b ;

run ;

在上述程序中,model语句的选项selection= rsquare,表示请求R值最大法,选项b是表示要输出每种回归的回归系数。

程序运行后,得到见表33.3所示的结果。

2

上海财经大学经济信息管理系IS/SHUFE

Page 9 of 12

37722429.doc

商务数据分析

电子商务系列

表33.3 用R排序全部可能的变量数的逐步回归分析结果

N = 31 Regression Models for Dependent Variable: OXYGEN Parameter Number in R-square Estimates Model Intercept AGE WEIGHT RSTPULSE MAXPULSE RUNPULSE RUNTIME 1 0.74338010 82.4218 . . . . . -3.3106 1 0.15838344 82.4582 . . . . -0.2068 . 1 0.11999670 59.3325 . . -0.2225 . . . 1 0.09277653 62.2206 -0.3114 . . . . . 1 0.05604592 71.2907 . . . -0.1376 . . 1 0.02648849 55.4379 . -0.1041 . . . . -------------------------------------------------------------------------------------------- 2 0.76424693 88.4623 -0.1504 . . . . -3.2040 2 0.76142381 93.0888 . . . . -0.0735 -3.1402 2

程序的输出包括所有只含一个变量的6种回归,含2个变量的15种回归,??。总共有63种不同形式的回归模型。例如,含2个自变量按R2第二个大值选择回归模型为,R2 =0.76142381,拟合的回归模型为

oxygen= 93.0888-0.0735runpulse-3.1402runtime

若对每种变量个数,只要保留R2最大的两种情况,可在model语句中加入选项best=2,即提交以下的程序:

proc reg data= fitness ;

model oxygen = age weight rstpulse maxpulse runpulse runtime

/selection= rsquare b best=2 ;

run ;

这一程序提供较为紧凑的输出报表,见表33.4所示的结果。

上海财经大学经济信息管理系IS/SHUFE

Page 10 of 12

37722429.doc

商务数据分析

电子商务系列

N = 31 Regression Models for Dependent Variable: OXYGEN Parameter Number in R-square Estimates Model Intercept AGE WEIGHT RSTPULSE MAXPULSE RUNPULSE RUNTIME 1 0.74338010 82.4218 . . . . . -3.3106 1 0.15838344 82.4582 . . . . -0.2068 . -------------------------------------------------------------------------------------------- 2 0.76424693 88.4623 -0.1504 . . . . -3.2040 2 0.76142381 93.0888 . . . . -0.0735 -3.1402 -------------------------------------------------------------------------------------------- 3 0.81109446 111.7 -0.2564 . . . -0.1309 -2.8254 3 0.80998844 80.9008 . . . 0.3542 -0.3751 -2.9702 -------------------------------------------------------------------------------------------- 4 0.83681815 98.1479 -0.1977 . . 0.2705 -0.3481 -2.7676 表33.4 只保留R2最大两种情况的逐步回归分析结果

通过上面的逐步回归分析,我们已经得到回归模型的自变量个数确定时的最优子集或次优子集,但问题是我们到底应该选择几个自变量的回归模型呢?如上表33.4中的3个自变量、4个自变量、5个自变量、6个自变量的回归模型中哪一个模型呢?一种最简便确定回归模型的自变量个数的方法是Mallows的Cp方法。确定好模型的自变量个数后,根据上表33.4就很容易确定在这个固定自变量数下,最优的自变量组合和相应的参数值估计。以下的程序是对所有可能的回归按Cp由小到大进行排序并保留其前5种,并绘制Cp图。

goptions reset=global gunit=pct cback=white border htitle=6 htext=3 ftext=swissb colors=(back) ; title 'Cp plot with Reference Lines'; proc reg data= fitness ;

model oxygen = age weight rstpulse maxpulse runpulse runtime

/selection=cp adjrsq best=5 ;

plot cp. * np. /chocking=red cmallows=blue

vaxis=0 to 15 by 2

haxis=0 to 8 by 1; run ;

Model语句中的selection=cp选项请求计算Mallows的Cp统计量。选项adjrsq表示要显示每种回归模型的统计量Adj-R2。选项best=5表示保留Cp值最小的前5种。plot语句中的cp.

上海财经大学经济信息管理系IS/SHUFE

Page 11 of 12

37722429.doc

商务数据分析

电子商务系列

* np.表达式(注意统计量关键字母后的小圆点)表示Y轴为Cp值X轴为P值(P值包括截距项)。plot语句的选项chocking=red,表示画Cp=2P-Pfull 红色参考虚线,其中P是子模型中含截距的参数个数,Pfull是全模型中不含截距的参数个数。Hoching(1976)建议选择满足Cp≤2P-Pfull 且Cp≤P的模型。plot语句的选项cmallows=blue,表示画Cp=P蓝色参考实线,其中P是子模型中含截距的参数个数。Mallows(1973)建议考虑所有满足Cp较小且接近P的模型。这一程序的输出结果见表33.5和见图33-1所示。

表33.5 按Cp由小到大进行排序并保留其前5种逐步回归分析结果

N = 31 Regression Models for Dependent Variable: OXYGEN C(p) R-square Adjusted Variables in Model In R-square 4.76609 0.83681815 4 0.81171325 AGE MAXPULSE RUNPULSE RUNTIME 5.00021 0.84800181 5 0.81760218 AGE WEIGHT MAXPULSE RUNPULSE RUNTIME 6.75259 0.83690359 5 0.80428431 AGE RSTPULSE MAXPULSE RUNPULSE RUNTIME 6.82780 0.81109446 3 0.79010496 AGE RUNPULSE RUNTIME 图33-1 带有Mallows和Hocking参考线的Cp散点图

从输出结果可看出,以Mallows的建议为标准,age,maxpulse,runpulse和runtime四个变量进人回归模型时Cp最小(4.76609),且与P=4+1=5最接近,因为5-4.76609<6-5.00021,所以应该选择Cp=4.76609的模型。以Hocking的建议为标准,Cp=4.76609的模型不满足要求,因为4.76609>2×5-6=4。而Cp=5.00021的模型满足要求,因为5.00021<2×6-6=6且5.00021<6。而Cp=6.75259的模型,无论以Mallows的建议还是以Hocking的建议都不满足要求。其实我们不必具体计算,只要看图33-1中,表示Cp值大小位置的“+”号,在蓝实线附近即满足Mallows的建议的标准,在红虚线下方即满足Hocking的建议的标准。但从Adj-R

2

看,Cp=4.76609的模型将变量weight加入后,R2更大(0.84800181>0.83681815)。不同的标准提供不同的选择结果,这是常有的情况。

上海财经大学经济信息管理系IS/SHUFE

Page 12 of 12

本文来源:https://www.bwwdw.com/article/mnn3.html

Top