What does the error ' system is computationally singular' mean in PLSDA?


When I try to calculate a PLSDA object with the command implemented in MixOmics, I get the following error back:
“Error in solve.default(Sr) : system is computationally singular: reciprocal condition number = 2.82455e-17”

I believe it has something to do with sample size, as my larger datasets do not suffer this issue. Is there some workaround? Or do I report it in a specific way?

Thanks in advance for your help,

hi @NickBliziotis,

The two main reasons I see are:

  • A too large number of missing values or zero values (although the latter is already filtered / handled with nearZeroVar() function). Filter out variables with more than 20% of missing values across all samples, then run, if that still does not work, try impute, e.g with http://mixomics.org/methods/missing-values/

  • Too many components, so you end up running on empty matrices

  • Potentially variables that are almost exactly the same (multi collinearity).

Let us know how you go with this, otherwise we may ask you to send us your data (kept private) for debugging purposes.