My dataset is presence/absence (or relative abundance score) of 100 species on 5000 squares, and for each square I have ~100 environmental variables (many of them strongly correlated).
I want to reduce the dimension of variable space, i.e. reduce those 100 variables to only the most important dimensions (for further use in non-linear methods like GP etc.). First idea would be to use PCA or factor analysis, but these only consider the variable space itself; but I want the dimension reduction process to work with respect to the response variable (abundance of one particular species), i.e. I want it to consider how important the variables are for the response variable. Because in simple PCA (which would take only the environmental variables), ordination axes might seem to explain a lot of the variability of the environment itself, but if you look how these are actually important for explaining the variability of the species, perhaps the dimension might be reduced even much more.
The closest thing which came into my mind was CCA, because this is what CCA does with its ordination axes, right? I am able to run the analysis for all species together, but how to get the CCA for just one species? This is the error I get when I run the analysis with a single species:
require(vegan)
data(varespec)
data(varechem)
vare.cca <- cca(varespec[,1,drop=FALSE], varechem)
#Error in cca.default(varespec[, 1, drop = FALSE], varechem) :
# all row sums must be >0 in the community data matrix
Questions:
- Is it possible to run CCA on a single response variable? Does it make sense?
- I know that the analysis wouldn't be multivariate in case of just a single species... perhaps there is a univariate equivalent for CCA?
- Other solutions?