Después de leer miles de artículos del PCA y de enfermedad vesicular porcina, su uso en un número de marcos de programación e incluso la aplicación de técnicas similares (como el Azar de Indexación) me enteré de que todavía tengo dudas acerca de algunas partes de PCA para la reducción de dimensiones. Así que permítanme mostrarles lo que yo sé y lo que tengo dudas acerca de.
Supongamos que tenemos $N$ observaciones de $M$-dimensional de datos, organizado como matriz $A \in R^{N * M}$. Para realizar PCA primero debemos calcular el MLE estimación de la matriz de covarianza $\Sigma \in R^{M*M}$:
$$\Sigma=\frac{1}{N}\sum_{i=1}^N(x_i - \bar x)(x_i - \bar x)^T$$
donde $x_i \in R^M$ $i$- ésima observación, $\bar x = \frac{1}{N}\sum_{k=1}^{N}x_k \in R^M$ es decir la observación.
Entonces podemos descomponer $\Sigma$ usando SVD de la siguiente manera:
$$\Sigma = USV^T$$
Ahora aquí hay varias cosas que no estoy seguro acerca de:
- ¿Cuáles son las dimensiones de $U$, $S$ y $V^T$?
- En $USV^T$ ¿qué es exactamente considerado como autovalores y cual de ellos debo usar como componentes principales?
- ¿Cómo puedo proyecto original observaciones $x_i$ en el nuevo espacio reducido y viceversa?
UPD. Hay una forma diferente para calcular PCA utilizando SVD - por factorización de la matriz de datos ($A$ aquí) en lugar de la matriz de covarianza ($\Sigma = AA^T$). Buena descripción de este proceso puede encontrarse en esta respuesta.