I have data for percentage cover of plant species in 500 sites. There are columns for 30 different species in the data set and I would like to drastically reduce this down to a manageable number of variables. Ideally, each principal component will represent the species composition of a different habitat type. So I would like to conduct a principal component analysis (PCA) to determine which plant species often occur together. This will ultimately be used to model habitat selection for a target mammal species.
Important to note is that quite a few plant species have only one observation, with all other rows as zero. Even more, have a maximum of 5 observations. All in all the majority of values for any species is 0.
I have tried running a PCA on all species records (with n=>1) as well as the subset with at least 5 observations.
In the case where all species are included, I get a relatively 'good' looking output with most variance explained within 5 principal components. But I worry that I am not accounting for the inflated zeros in the data set. So, I also tried scaling the data, in which case the variance is explained in very even increments which require a large number of components to explain say 80% of the variance.
The case with the subset is similar, however: whether scaled or not the number of components to reach ~80% remains the same, which as to be expected is slightly fewer than the full data set when scaled.
I would love some comments on what I have done so far and guidance on how to proceed given the unusual characteristics of my data set. If PCA is the best way to go, I would appreciate pointers on how to deal with the large number of zeros and if possible how to improve the output of the PCA to explain more variance within fewer principal components. If someone has solved a similar problem without PCA, please also feel free to share your wisdom.
As many will know by my language and descriptions I am not a statistician, and ask kindly for your patience, but also thank you in advance
EDIT
This question Using principal components analysis vs correspondence analysis provides some useful information on the topic