约束排序中,有时解释变量太多,需要想办法减少解释变量的数量。一般来讲,减少解释变量的数量可能有两个并不冲突的原因:第一是寻求简约的模型,利于我们对模型的解读;第二是当解释变量过多时会导致模型混乱,例如有些解释变量之间可能存在较强的线性相关,即共线性问题,可能会造成回归系数不稳定。
在约束排序中加入变量选择过程可以实现这个目的。变量选择(Variable selection)是从约束排序(RDA、CCA、db-RDA等)的所有变量集合中选择解释变量子集的过程,目的是在减少解释变量的数量的同时保持由它们能够解释变差的最大化。
变量选择的的方法包含:前向选择(forward selection),即在排序模型中逐一增添解释变量;后向选择(backward selection),从完整模型(包括所有变量)开始逐一删除解释变量,若某变量删除之后总R2降低最少则对其执行删除;逐步选择(stepwise selection),即双向选择(forward-backward selection),在每一步选择中,分析检查是否不能将一些已涵括的解释变量移除用于改进模型。
前向选择是最常用的变量选择方法,以RDA模型为例,其简化步骤如下描述。
(1)首先,运行包含所有解释变量的全模型置换检验,当且仅当置换检验显示显著性后再执行变量的前向选。不显著的情况,例如对于随机生成的解释变量,强制执行前向选择时也可能会判断其中一些是“重要”的,由此会导致我们错误地将实际上并不存在关联的解释变量与响应变量建立联系。
(2)逐一使用每个解释变量解释排序轴,并记录各变量解释的变差(该变差代表了每个变量的边际效应,marginal effect)。
(3)根据解释变差的高低,对所有解释变量降序排序。
(4)运行蒙特卡洛置换检验检验各解释变量的显著性,若显著则将该解释变量添加在模型中,否则终止选择。
(5)将此前已经选择的解释变量作为协变量,执行偏RDA分析,计算剩余未被选择的各解释变量(每个单独)解释的变差。
(6)根据解释变差的高低(该变差代表了每个变量的局部效应,partial effect),对这些解释变量再次降序排序后,选择其中的最佳解释变量(降序排序后排在第一位的)并检验其显著性。若显著则将该解释变量添加在模型中,否则终止选择。
(7)若步骤(6)中的置换检验结果显著,则继续执行步骤(5)和(6),直到终止选择为止(即剩余解释变量中,最佳变量所解释的变差不显著为止)。
备注:以上过程,在R中可使用vegan包中的ordistep()函数实现。以RDA为例,详情可参见。
由上述步骤可知,变量的显著性是选择停止的规则之一,即如果加入新变量的偏RDA置换检验显著性p值不显著,选择过程即被终止。然而,这个标准过于宽松,有时会选择显著但不包含任何变量的模型(夸大I类错误),或选择包括过多变量的模型(夸大被解释方差的量)。Blanchet等(2008)关注这两个问题并提出解决方案,使选择停止规则达到全模型的校正后R2为准:
为了防止夸大I类错误 ,首先运行包含所有解释变量的全模型置换检验,当且仅当置换检验显示显著性后,再执行变量的前向选择。
为了减少纳入太多变量的风险,首先计算包含所有解释变量的全模型的R2adj,将R2adj作为第二个终止原则。如果备选变量的偏RDA置换检验不显著或当前模型的R2adj超过全模型的R2adj,前向选择即被终止。
备注:改良后的方法,在R中可使用vegan包中的ordiR2step()函数,或者packfor包中的forward.sel()函数实现。以RDA为例,详情可参见。
此外,为了降低在前向选择期间进行一组显著性检验而导致I类错误的风险,可能需要校正p值,例如通过Holm或FDR校正,根据校正后p值选择显著的解释变量。
下述展示一tb-RDA示例(查看来源),通过前向选择以及Holm校正p值,最终选择了包含5个变量的解释变量子集。
variables |
R2 |
Cum R2 |
Cum R2adj |
F-value |
P-value |
P-value (Holm) |
|
1 |
Ca |
0.139 |
0.139 |
0.126 |
10.976 |
0.00002 |
0.00028 |
2 |
conduct |
0.032 |
0.171 |
0.147 |
2.627 |
0.00004 |
0.00052 |
3 |
Si |
0.027 |
0.199 |
0.162 |
2.243 |
0.00016 |
0.00192 |
4 |
NH3 |
0.024 |
0.223 |
0.175 |
2.006 |
0.00080 |
0.00880 |
5 |
NO3 |
0.021 |
0.244 |
0.185 |
1.787 |
0.00304 |
0.03040 |
6 |
Mg |
0.019 |
0.263 |
0.193 |
1.637 |
0.00824 |
0.07416 |
7 |
pH |
0.017 |
0.280 |
0.199 |
1.503 |
0.02094 |
0.16752 |
该表为简化后的结果,只展示主要的信息,其中:
variables,备选解释变量;
R2,备选解释变量的R2;
Cum R2和Cum R2adj,备选解释变量的累计R2(二者分别为原始R2和校正后R2);
F-value,备选解释变量的伪F值(pseudo-F value),即置换检验统计量;
P-value和P-value (Holm),分别为原始的置换检验p值和校正后p值(Holm校正,p < 0.05的值已加粗),用于判断备选解释变量是否能够被选择。
该示例中置换检验的置换次数设置为49999(非常高),即可知能够获得的最低p值“pmin = 1 /(49999 + 1)= 0.00002”,即使经过Holm校正后最低p值为0.00028仍远低于0.001。最终结果选择了五个解释变量(Ca、conduct、Si、NH3、NO3),累计解释量Cum R2adj = 18.5%。全模型中,14个解释变量的累计解释量20.1%,全模型和经过前向选择后模型的tb-RDA排序图的比较见下图。
从上示例可以看到,变量选择后在提供了简约的模型的同时,并没有牺牲解释能力:因为前后两种分析的R2adj非常接近,差别可以忽略。也即对应了本文开始所提及的“变量选择的目的在减少解释变量的数量的同时保持由它们能够解释变差的最大化”。同样的结果在实际分析中即可观察到。
总体上来说,变量选择是生态学数据分析中非常实用的方法(如上所述)。但是与R2校正或约束轴的显著性检验等相比,变量选择并非必需的过程,因此执不执行或怎样执行还需根据实际情况来确定。变量选择一般应用于观察性研究,例如在生物地理模型中,观测由温度、降雨量、湿度、土壤pH等多种环境因素对群落结构的贡献时,这种情况下往往不需要很多类型的环境因子参与解释,最好选择贡献度最高的几个环境变量构建模型。而在许多带有“处理类型”的试验设计中,例如观察某生物试剂对群落结构的影响时,对于试剂类型、添加量、处理时间等解释变量通常是不考虑执行选择过程的。
尽管变量选择策略具有明显的优势,但一定切记不应盲目依赖自动选择程序在回归模型中选择相关的环境变量,因为可能得到生态学上不相关的模型,或者被忽视的其它变量组合(当前保留变量集中的部分解释变量+某些被剔除的解释变量)在某种程度上也可能比当前模型更具代表性(Legendre和Legendre,1998)。即仅通过统计学手段得到的最优变量集合可能并非代表了最具生态学意义的模型。有时我们还可以根据变量的属性,手动将变量合并为有意义的集合(而不是依赖于自动选择程序),然后基于降低数量后的变量集检查所有可能的回归模型(James和McCulloch,1990),也不失为一种合理有效的手段。
DanielBorcard, FranoisGillet, PierreLegendre, et al. 数量生态学:R语言的应用(赖江山 译). 高等教育出版社, 2014.
David Zeleny博士:Variable selection (constrained ordination)
Ramette A. Multivariate analyses in microbial ecology. Fems Microbiology Ecology, 2010, 62(2):142-160.
Blanchet F G , Legendre P , Borcard D. Forward selection of explanatory variables. Ecology, 2008, 89(9):2623-2632.
James F C , Mcculloch C E. Multivariate analysis in ecology and systematics: panacea or pandora's box. Annual Review of Ecology and Systematics, 1990, 21(1):129-166.
Legendre P, Legendre L. Numerical Ecology. Second English edition. Developments in Environmental Modelling, 1998, 20, Elsevier