Si la dimensionalidad de sus muestras es menor que la dimensionalidad del espacio vectorial, pueden surgir matrices singulares. Si tiene menos muestras que (cuando es su dimensionalidad), esta situación incluso se presentará necesariamente: muestras abarcan como máximo un hiperplano dimensional. Dada una muestra tan pequeña, obviamente no puede calcular una varianza en el espacio ortogonal.d+1dk+1d
Es por eso que es común no usar PCA literal, sino realizar una descomposición de valores singulares , que puede usarse para calcular el pseudoinverso de una matriz. Si la matriz es invertible, el pseudoinverso será el inverso.
Sin embargo, si está viendo matrices no invertibles, lo más probable es que su distancia desde el grupo no tenga sentido si el vector está fuera del hiperplano que el grupo repite, porque no conoce la varianza en el espacio ortogonal (puede pensar en esta variación como 0!) SVD puede calcular el pseudoinverso, pero las "variaciones" aún no serán determinadas por sus datos.
En este caso, probablemente debería haber estado haciendo primero la reducción de la dimensionalidad global. Aumentar el tamaño de la muestra solo ayudará cuando tenga dimensiones no redundantes: no importa cuántas muestras extraiga de una distribución con , la matriz siempre será no invertible y no podrá juzgar la desviación. con respecto a una desviación estándar (que es 0).y=xx−y
Además, dependiendo de cómo calcule la matriz de covarianza, es posible que se encuentre con problemas numéricos debido a una cancelación catastrófica. La solución más simple es centrar siempre los datos primero, para obtener la media cero.