2.1.3 多元线性回归的变量筛选
在存在多个自变量的情况下,一定要对模型进行变量筛选,理由如下。
1)每个自变量对于预测因变量的重要性不同,我们有理由去除不重要的变量以降低推断时的计算复杂度。
2)变量越多意味着模型越复杂,也意味着模型越容易过度拟合,导致在新样本中的预测性能大幅下滑。
变量筛选时,我们可以逐个判断X与Y的关联程度。在线性回归中,如果自变量是连续型的,则可以使用皮尔逊相关系数进行判断;如果自变量为离散型的,可以使用t检验或F检验判断自变量与因变量的相关程度。
为了提高效率,我们还可以利用逐步法,通过编程实现变量的自动筛选。逐步法包括向前回归法、向后回归法和双向回归法。另外还有全子集变量筛选法,目前只有SAS软件中实现了该算法。
1.向前回归法
向前回归法是指逐步向模型中增加变量,通过指定的标准判断模型效果,决定保留哪个变量。算法过程如下:
1)用被解释变量(Y)和每一个解释变量(X)作回归,选取一个解释力度最高的一个变量;
2)在先前保留的变量基础上,依次增加其他变量,选取其中与先前保留变量组合效果最好的,将其并入保留变量;
3)重复上述操作,直至根据标准没有可以添加的变量为止。
示例如图2-9所示。
图2-9 向前法变量筛选示例
可以看到,第一步从所有的9个变量中选择调整R2最大的X5;在保留了X5的基础上,第二步将剩余的每个变量与X5一起进行回归建模,保留X9;再在X5和X9的基础上,将剩余的每个变量与其组合进行建模,保留X6;依此类推,当最终保留下X3、X5、X6、X9之后,再增加变量则调整R2都无法增长,算法停止。
在选择评判标准时,我们可以使用调整R2最高、P值最小、AIC或BIC最小等进行评估。
2.向后回归法
与向前回归法相反,向后回归法是先用所有变量进行回归,再逐步去除每个变量并查看模型效果,直至无法再去除任意变量为止,示例如图2-10所示。
图2-10 向后法变量筛选示例
3.双向回归法
顾名思义,双向回归法是向前回归法和向后回归法的结合。这种方法增大了搜索空间,相应增加了建模时的计算量,不过效果往往更好。示例如图2-11所示。
图2-11 双向回归法变量筛选示例
4.全子集法
逐步法本质上属于贪婪算法,总是优先选择当下效果最好的自变量进入模型,因此无论哪一种模型都不一定能取得最优的变量组合。理论上来说,我们只有对所有可能的变量组合都进行评估,才有可能取得最优的模型,这种方法也被称为全子集法。
全子集法的问题在于搜索空间的爆炸性增长,假如我们有100个待筛选的变量,要对任意的变量组合进行评估,则需要做2100-1次建模,这显然是难以接受的。只有在自变量数量较少的情况下,我们才可能使用这种暴力枚举的方法。