This question comes from a reviewer's comment on a manuscript I recently submitted. I analyzed a multivariate data set (6 response variables, 21 observations for each) using redundancy analysis (RDA) in R
with the vegan
package. I wanted to determine which explanatory variables could best explain the variation of my 6 response variables taken together.
After removing highly correlated (>0.85) explanatory variables, I still had 25 possible explanatory variables for 21 multivariate observations.
I then standardized my response and explanatory variables and ran the following codes:
rdax.r <- rda(std_flx~., data=std.div.rda.r)
rday.r <- rda(std_flx~1, data=std.div.rda.r)
rdax_select.r <-ordistep(rdax.r, scope=formula(rday.r), direction="both", Pin = 0.05, Pout = 0.1, perm.max = 9999)
The idea here is to use ordistep
to sequentially test and remove non-significant explanatory variables.
My final model kept 9 explanatory variables that best explained the variation of my 21 multivariate observations.
My questions: 1) is it appropriate to do this since my full model has 25 explanatory variables but only 21 observations? 2) Is the ratio of explanatory to response variable is too high?
My understanding is that it’s ok since ordistep
is sequentially testing the significance of each term and dropping the non-significant ones. Moreover, this technique is similar to the DistLM analysis using the software PRIMER
with a stepwise procedure based on AICc, but I my case, I'm basing my selection procedure on p-values.