SAS第三十三课逐步回归分析演示教学

S A S第三十三课逐步

回归分析

第三十三课

逐步回归分析

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

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

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

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

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

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

二、 变量选择的方法

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

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

1. 变量增加法

首先对全部k 个自变量,分别对因变量Y 建立一元回归方程,并分别计算这k 个一元回

归方程的k 个回归系数F 检验值,记为{11211,,k F F F },选其最大的记为1i F =

max{11211,,k F F F },若有1i F ≥ F in ,则首先将X 1引入回归方程,不失一般性,设X i 就是X 1。

接着考虑X 1分别与X 2,X 3,...,X k 与因变量Y 二元回归方程,对于这k -1个回归方程中X 2,...,X k 的回归系数进行F 检验,计算得的F 值,并选其最大的F 值2j F ,若2

j F ≥F in ,则接着就将X j 引入回归方程,不失一般性,设X j 就是X 2。

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

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

2. 变量减少法

与变量增加法相反,变量减少法是首先建立全部自变量X 1,X 2,...,X k 对因变变量Y 的回归

方程,然后对k 个回归系数进行F 检验,记求得的F 值为{11211,,k F F F },选其最小的记为1i F =min{11211,,k F F F },若有1i F ≤F out ,则可以考虑将自变量X i 从回归方程中剔除掉,不妨设X i 就取为X 1。

再对X 2,X 3,...,X k 对因变量Y 建立的回归方程中重复上述过程,取最小的F 值为2

j F ,若有2j F ≤F out ,则将X j 也从回归方程中剔除掉。不妨设X j 就是X 2。重复前面的做法,直至在回归方程中的自变量F 检验值均大于F out ,即没有变量可剔除为止。这时的回归方程就是最终的回归方程。

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

3. 变量增减法

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

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

l

l X X X Y ββββ++++= 22110? (33.1)

并且有平方和分解式 ESS RSS TSS += (33.2)

显然,回归平方和RSS 及残差平方和ESS 均与引入的变量相关。为了使其意义更清楚起见,将其分别设为RSS (l X X X ,,,21 )及ESS (l X X X ,,,21 )。下面我们来考虑,又有一个变量i X (l

TSS = RSS (l X X X ,,,21 ,i X )+ ESS (l X X X ,,,21 , i X ) (33.3) 当变量X i 引入后,回归平方和从RSS (l X X X ,,,21 )增加到RSS (l X X X ,,,21 ,i X ),而相应的残差平方和却从ESS (l X X X ,,,21 )降到ESS (l X X X ,,,21 , i X ),并有

RSS (l X X X ,,,21 , i X )-RSS (l X X X ,,,21 )

= ESS (l X X X ,,,21 )-ESS (l X X X ,,,21 , i X ) (33.4) 记),,,(),,,,(2121l i l i X X X RSS X X X X RSS W -=,它反映了由于引入i X 后,

i X 对回归平方和的贡献,也等价于引入i X 后残差平方和所减少的量,称其为

i X 对因变量Y 的方差贡献,故考虑检验统计量

()()()1/,,,,,,,2121--=l N X X X X ESS X X X W F i l l i i (33.5)

其中N 为样本量,l 是已引入回归方程的变量个数,这时若有in i F F ≥,则可以

考虑将自变量i X 引入回归方程,否则不能引入。

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

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

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

),,,,,(),,,,(11211121l i i l i i X X X X X ESS X X X X X RSS TSS +-+-+= (33.7) 这时,回归平方和从),,,,,(21l i X X X X RSS 降为),,,,(1121l i i X X X X X RSS +-,同时残差也发生相应的变化。残差平方和从),,,,(21l i X X X X ESS 增加到),,,,,(1121l i i X X X X X ESS +-,i X 对回归平方和的贡献,也等价于删除i X 后残差平方和所增加的量,同理可表示为:

)

,,,,(),,,,()

,,,,(),,,,(211121112121l i l i i l i i l i i X X X X ESS X X X X X ESS X X X X X RSS X X X X RSS W -=-=+-+- (33.8) 与前同理,我们来构造检验统计量

()()()1/,,,,,,,,,2121--=l N X X X X ESS X X X X W F l i l i i i (33.9)

显然,这时F i 越小,则说明i X 在回归方程中起的作用(对回归方程的贡献)越小,也就是若有out i F F ≤,则可以考虑将自变量i X 从回归方程中剔除掉,我们在编程序时,每次只剔除一个,因此,我们每次选择最小的),,,min(21l i F F F F =来与out F 进行比较。若有out i F F >则可以不考虑剔除,而开始考虑引入。

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

逐步回归在计算过程中,进入和剔除变量规则的差别在例子中有可能得到说明。例如,可以根据F i 统计量中MSE 的自由度来使用不同的F in 和out F 。但是,往往并不使用这种提纯量,而是使用固定的 F 值,因为在搜索过程的重复检验中,并不可能得到精确的概率解释。最低可接受F in 决不应小于最高可接受out F ,否则就有可能重复进入和剔除一个自变量。

自变量进入模型的顺序并不反映它们的重要程度。例如,第一个进入模型的X 1,最终却可能被剔除。我们使用的逐步回归程序,在每个阶段上都打印出偏相关系数。对于筛选变量来说,使用这些相关系数与使用F i 值是等价的,事实上,有些程序就是使用偏相关系数来筛选变量的。进入和剔除一个变量的F 限不必根据近似显著性水平选定,但可以根据误差缩减量来描述性地确定。例如,一个进入变量的F 限2.0可以这样来说明:变量一旦进入模型,那么,进入变量的边际误差缩减量至少应该是剩余误差均方的二倍。

逐步回归方法的一个局限是预先假定有单一的最优X 变量子集,从而来进行识别。正如前面已经提到的,常常并没有唯一的最优子集。因此,一些统计学家建议,求得逐步回归的解后,拟合所有可能与逐步回归解的自变量个数相同的回归模型,以研究是否存在更好的X 变量子集。

逐步回归方法的另一个缺点是当X 变量高度相关时,有时会得到不合理的“最优”子

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

()()()1/,,,,,,,,,2121*--=

k N X X X X ESS X X X X W F k i k i i i (33.10) 如果最小的*i F 值小于预定限,就剔除这个变量,然后拟合剩余的1-k 个自变量的模型,挑

选下一个待剔除元。重复这种过程,直至没有自变量可以被剔除。因为向后剔除法是从最大可能模型开始的,所以它比向前选元法需要更多的计算量。但是,向后剔除法有一个优点,它可以使使用者明白含有许多变量模型的复杂性。

五、 stepwise 逐步回归过程

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

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

stepwise 与rsquare 以及其他过程是不同的。rsquare 对所有自变量的组合找出R 2 ,所以它可以指出具有最大R 2的模型。而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)。在每一步,剔除对模型贡献最小的变量。

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

的变量没有一个使F 统计量的显著在slentry = 水平上且模型中的每个变量在slstay = 水平上显著,或加到模型中的变量是刚刚剔除的变量时候,逐步处理便结束了。

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

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

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

7) rsquare (R 2选择法)。按给定样本的R 2大小准则选择最优的自变量子集,但不能保证对总体或其他样本而言是最优的。用户可以规定出现在子集中自变量的最大和最小个数及被选择的每种子集的个数。R 2选择法总能够对所考虑变量的每种变量个数找到具有最大R 2的模型,但需要很多的计算时间。

8) adjrsq (修正R 2选择法)。该方法类似于rsquare 法,只是对于选择模型使用的准则为修正R 2统计量。修正公式见(32.27)式。

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

)2(P N MSE ESS C p

P --= (33.11)

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

2. proc stepwise 过程控制语句

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

proc stepwise data=数据集;

model 因变量=自变量 ;

weight 变量 ;

by 变量 ; run ;

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

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

● noint ——不产生一般在模型中自动生成的截距参数。

● none ——请求全回归模型。

● forward 或f ——请求向前选择法。

● backward 或b ——请求向后淘汰法。

● stepwise ——请求逐步技术,这个任选项是预置的。

● maxr ——请求最大R 2增量法。

相关主题