### Introduction

### Theory, Examples & Exercises

en:forward_sel

Section: Ordination analysis

**Theory**
R functions
Examples
Exercise

**Variable selection** is a procedure for selecting a subset of explanatory variables from the set of all variables available for constrained ordination (RDA, CCA, db-RDA). The goal is to reduce the number of explanatory variables entering the analysis while keeping the variation explained by them to the maximum. Variable selection is suitable mostly in case of observational studies, where many (often highly intercorrelated) environmental variables are recorded, to reduce their number (and to simplify the story); it is usually not useful for experimental studies with the balanced design of treatment application.

The standard method is *forward* selection, which is adding explanatory variables one by one; *backward* selection, in contrary, starts from the full model (with all variables) and deletes variables which the least decreases the total explained variation. Combination of both approaches is *stepwise* (forward-backward) selection, in which in every step the analysis checks whether some of the already included variables cannot be removed to improve the model.

The simplified sequence of steps in the case of *forward selection* is the following:

- first, test the significance of the global test with all explanatory variables included; if it is significant, you may proceed to forward selection, while if it is not, it is better not to (even with randomly generated explanatory variables you have rather good chance to select some of them as significant during forward selection).
- use each variable one by one as explanatory in constrained ordination, and record the explained variation (this variation represents a simple (or marginal) effect of each variable);
- sort variables according to variation explained by them with the highest values at the top;
- check whether the variation explained by the best variable is significant using Monte Carlo permutation test - if yes, include it to the model, if not, stop the selection;
- use each of remaining explanatory variables and check how much variation they (each separately) explain if put as explanatory (with the already selected variable acting as covariable);
- sort again the variables according to the decreasing variation explained by them (now this variation represents the partial effect of this variable) and choose the one explaining the most; test whether the variation is significant, and if yes, select it into the model; if not, stop the selection;
- continue by step 5 until the variation explained by the best variable is not significant.

The significance of the variables (step 7 above) is one of the possible stopping rules (once the best remaining variable is not significant, the selection is stopped). Alternative stopping rule is reaching the adjusted R^{2} of the global model (Blanchet et al. 2008): first, calculate adjusted variation explained by all explanatory variables (global model); if during the forward selection the adjusted variation explained by selected variables reaches the R^{2}_{adj} of the global model (with some given precision threshold), the selection will be stopped (available in function `ordiR2step`

in `library (vegan)`

and `forward.sel`

in `library (adespatial)`

).

To reduce the risk of Type I error due to conducting a set of tests of significance during the forward selection, resulting P-values may need to be adjusted, e.g. by Holm or FDR correction, and only variables significant at given alpha should be considered.

In the Example 1 with the chemical variables measured in fen water and their relationship to the species composition of Carpathian wetlands, forward selection chose a subset of five variables (after adjusting the P-values with Holm's correction):

variables | R^{2} | Cum R^{2} | Cum R^{2}_{adj} | 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 |

The table is a simplified output of the function `forward.sel`

(or similarly also `ordiR2step`

). It contains the variables in the order as they were selected during the forward selection; **R ^{2}** is the partial variation the variables explains (i.e. variation the variable explains after accounting all previously selected variables as covariables);

en/forward_sel.txt · Last modified: 2019/04/06 11:36 by David Zelený