# How to conduct a principal component analysis on data set with large number of zeros

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

• Correspondence analysis is often recommended over PCA for this kind of data. Commented May 13, 2019 at 13:41
• @Nick Cox, does a CA address the zero inflation? Commented May 13, 2019 at 15:37
• Wrong question, I think. The very term zero inflation is an issue in modelling, whether the data may approximate some distribution, except for lots of zeros. But CA (and PCA) are more nearly transformation techniques. Compare: are a lot of zeros a problem for averages? The average is what it is and will be affected by zeros; that is how the data are. See Michael Greenacre's books for correspondence analysis; latterly he has worked a great deal on ecological data. Commented May 13, 2019 at 15:55
• So if I understand correctly, I wouldn't expect any influence from the skewed distributions on PCA and CA outputs? I shall read up on the text suggestions. Commented May 14, 2019 at 14:59
• The results will always depend on the data, so I don't know what else you mean by "Influence". If you mean, do zeros mess up the analysis in any sense, then all I can say is that i would try CA if I had your data. Commented May 14, 2019 at 15:05