从大量候选变量中选择最终的预测变量有以下两种流行的方法:逐步回归法(stepwise method)和全子集回归(all-subsets regression)。
1. 逐步回归
逐步回归中,模型会一次添加或者删除一个变量,直到达到某个判停准则为止。例如, 向前逐步回归(forward stepwise)每次添加一个预测变量到模型中,直到添加变量不会使模型有所改进为止。 向后逐步回归(backward stepwise)从模型包含所有预测变量开始,一次删除一个变量直到会降低模型质量为止。而向前向后逐步回归(stepwise stepwise,通常称作逐步回归,以避免听起来太冗长),结合了向前逐步回归和向后逐步回归的方法,变量每次进入一个,但是每一步中,变量都会被重新评价,对模型没有贡献的变量将会被删除,预测变量可能会被添加、删除好几次,直到获得最优模型为止。
逐步回归法其实存在争议,虽然它可能会找到一个好的模型,但是不能保证模型就是最佳模型,因为不是每一个可能的模型都被评价了。为克服这个限制,便有了全子集回归法。
2. 全子集回归
全子集回归,顾名思义,即所有可能的模型都会被检验。分析员可以选择展示所有可能的结果,也可以展示n 个不同子集大小(一个、两个或多个预测变量)的最佳模型。 例如, 若nbest=2,先展示两个最佳的单预测变量模型,然后展示两个最佳的双预测变量模型,以此类推,直到包含所有的预测变量。全子集回归可用leaps包中的regsubsets()函数实现。你能通过R平方、调整R平方或Mallows Cp统计量等准则来选择“最佳”模型。
R平方含义是预测变量解释响应变量的程度;调整R平方与之类似,但考虑了模型的参数数目。 R平方总会随着变量数目的增加而增加。当与样本量相比,预测变量数目很大时,容易导致过拟合。R平方很可能会丢失数据的偶然变异信息,而调整R平方则提供了更为真实的R平方估计。
第一行中(图底部开始),可以看到含intercept(截距项)和Income的模型调整R平方为0.033,含intercept和Population的模型调整R平方为0.1。跳至第12行,你会看到含intercept、 Population、 Illiteracy和Income的模型调整R平方值为0.54,而仅含intercept、 Population和Illiteracy的模型调整R平方为0.55。此处,你会发现含预测变量越少的模型调整R平方越大(对于非调整的R平方,这是不可能的)。图形表明,双预测变量模型(Population和Illiteracy)是最佳模型。
参考:http://cda.pinggu.org/view/22433.html
https://www.cnblogs.com/runner-ljt/p/4856476.html
http://rstudio-pubs-static.s3.amazonaws.com/2897_9220b21cfc0c43a396ff9abf122bb351.html
https://advances.sciencemag.org/content/4/7/eaat1808?rss=1
https://www.nature.com/articles/s41598-018-36867-2.pdf
https://www.rdocumentation.org/packages/vegan/versions/2.4-2/topics/ordistep