3 votos

PCA en una matriz con rango deficiente utilizando la SVD de la matriz de covarianza

Tengo una matriz de datos de alta dimensión X donde el tamaño de la muestra es menor que el tamaño de la variable. Quiero utilizar PCA como método de reducción de la dimensionalidad, pero no puedo llamarlo directamente en R ya que la matriz X es deficiente en cuanto al rango. He visto la siguiente técnica en un código R para obtener la representación de componentes principales a partir de una matriz de rango deficiente:

1) Obtener U de svd(XXT)

2) Obtener la representación del componente principal C resolviendo X = UC

Soy nuevo en el PCA, y no tengo ni idea de que eso tenga sentido. ¿Podría alguien aclarar cómo esos 2 pasos es equivalente a la aplicación de PCA en X ?

3voto

jldugger Puntos 7490

El ACP consiste en encontrar e interpretar una descomposición del valor singular (SVD) de $X$ (o cualquier otra matriz similar obtenida mediante diversas formas de "normalización" de las filas y/o columnas de $X$ ). Hay conexiones directas entre cualquier SVD de $X$ y cualquier SVD de $XX^\prime$ . Expondré las conexiones en ambas direcciones, obteniendo una SVD de una a partir de una SVD de la otra.


1. Cualquier SVD de $X$ determina una SVD única de $XX^\prime$ .

Por definición, un SVD de $X$ es una representación de la forma

$$X = U\Sigma V^\prime$$

donde $\Sigma$ es diagonal con entradas no negativas y $U$ y $V$ son matrices ortogonales. Entre otras cosas, esto implica $V^\prime V = \mathbb{I}$ la matriz de identidad.

Calcula

$$XX^\prime = (U\Sigma V^\prime)(U\Sigma V^\prime)^\prime= (U\Sigma V^\prime)(V\Sigma U^\prime) = U\Sigma V^\prime V \Sigma U^\prime = U\Sigma \mathbb{I} \Sigma U^\prime = U (\Sigma^2) U^\prime.$$

Desde $\Sigma^2$ es diagonal con entradas no negativas y $U$ es ortogonal, se trata de una SVD de $XX^\prime$ .


2. Cualquier SVD de $XX^\prime$ da (al menos una) SVD de $X$ .

A la inversa, porque $XX^\prime$ es simétrica y positiva-definida, mediante una SVD o con la Teorema espectral se puede diagonalizar mediante una transformación ortogonal $U$ (para lo cual ambos $UU^\prime$ y $U^\prime U$ son matrices de identidad):

$$XX^\prime = U\Lambda^2 U^\prime.$$

En esta descomposición, $\Lambda$ es un $n\times n$ matriz diagonal ( $n$ es el número de filas de $X$ ) con $r = \text{rank}(X)$ entradas no nulas que -sin pérdida de generalidad- podemos suponer que son las primeras $r$ entradas $\Lambda_{ii}, i=1,2,\ldots, r$ . Definir $\Lambda^{-}$ para ser la matriz diagonal con entradas $1/\Lambda_{ii}, i=1,2,\ldots, r$ (y ceros en caso contrario). Es un inversa generalizada de $\Lambda$ . Sea

$$Y = \Lambda^{-}U^\prime X$$

y calcular

$$YY^\prime = \Lambda^{-} U^\prime XX^\prime U \Lambda^{-} = \Lambda^{-} \Lambda^2 \Lambda^{-} = \mathbb{I}_{r;n}.$$

(He empleado la notación $\mathbb{I}_{r;n}$ para una identidad como $n\times n$ matriz de rango $r$ : tiene $r$ unos a lo largo de la diagonal y ceros en el resto). Este resultado implica $Y$ debe ser una matriz de bloques de la forma

$$Y = \pmatrix{W^\prime & 0 \\ 0 & 0}$$

con $W$ un $r\times r$ matriz ortogonal. Los ceros son matrices de dimensiones adecuadas para rellenar el resto de $Y$ (que tiene las mismas dimensiones que $X$ ). Sea $p$ sea el número de columnas de $X$ . Ciertamente $r \le p$ . Si $r \lt p$ podemos ampliar $W$ a un $p\times p$ matriz ortogonal $V$ . Esto se puede hacer de muchas maneras, pero una sencilla es poner $W^\prime$ en el bloque superior izquierdo, una matriz de identidad de dimensiones $p-r\times p-r$ en el bloque inferior derecho, y ceros en el resto.

Ya que (por construcción) $V^\prime V = \mathbb{I}_p$ ,

$$U^\prime X V = \Lambda Y V = \Lambda (V^\prime V) = \Lambda.$$

Al multiplicar por la izquierda por $U$ y multiplicando por la derecha por $V^\prime$ obtenemos

$$U\Lambda V^\prime = (UU^\prime) X (VV^\prime) = X,$$

que es una SVD de $X$ .

$$XX^\prime = (U\Sigma V^\prime)(U\Sigma V^\prime)^\prime= (U\Sigma V^\prime)(V\Sigma U^\prime) = U\Sigma V^\prime V \Sigma U^\prime = U\Sigma \mathbb{I} \Sigma U^\prime = U (\Sigma^2) U^\prime.$$

Desde $\Sigma^2$ es diagonal con entradas no negativas y $U$ es ortogonal, se trata de una SVD de $XX^\prime$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X