19 votos

Análisis de componentes principales "hacia atrás": ¿cuánta varianza de los datos explica una determinada combinación lineal de las variables?

He realizado un análisis de componentes principales de seis variables $A$ , $B$ , $C$ , $D$ , $E$ y $F$ . Si he entendido bien, PC1 sin rotar me dice qué combinación lineal de estas variables describe/explica la mayor varianza en los datos y PC2 me dice qué combinación lineal de estas variables describe la siguiente mayor varianza en los datos y así sucesivamente.

Por curiosidad, ¿hay alguna forma de hacer esto "al revés"? Digamos que elijo alguna combinación lineal de estas variables -- por ejemplo $A+2B+5C$ ¿podría calcular la varianza de los datos que describe?

12voto

patfla Puntos 1

Si partimos de la premisa de que todas las variables se han centrado (práctica habitual en el ACP), la varianza total de los datos no es más que la suma de los cuadrados:

$$T=\sum_{i}(A_{i}^{2}+B_{i}^{2}+C_{i}^{2}+D_{i}^{2}+E_{i}^{2}+F_{i}^{2})$$

Es igual a la traza de la matriz de covarianza de las variables, que es igual a la suma de los valores propios de la matriz de covarianza. Esta es la misma cantidad de la que habla PCA en términos de "explicar los datos", es decir, usted quiere que sus PC expliquen la mayor proporción de los elementos diagonales de la matriz de covarianza. Ahora bien, si hacemos de esto una función objetivo para un conjunto de valores predichos así

$$S=\sum_{i}\left(\left[A_{i}-\hat{A}_{i}\right]^{2}+\dots+\left[F_{i}-\hat{F}_{i}\right]^{2}\right)$$

Entonces el primer componente principal minimiza $S$ entre todos los valores ajustados de rango 1 $(\hat{A}_{i},\dots,\hat{F}_{i})$ . Así que parece que la cantidad adecuada que buscas es $$P=1-\frac{S}{T}$$ Utilizando su ejemplo $A+2B+5C$ necesitamos convertir esta ecuación en predicciones de rango 1. Primero hay que normalizar los pesos para que la suma de los cuadrados sea 1. Así que sustituimos $(1,2,5,0,0,0)$ (suma de cuadrados $30$ ) con $\left(\frac{1}{\sqrt{30}},\frac{2}{\sqrt{30}},\frac{5}{\sqrt{30}},0,0,0\right)$ . A continuación, "puntuamos" cada observación en función de las ponderaciones normalizadas:

$$Z_{i}=\frac{1}{\sqrt{30}}A_{i}+\frac{2}{\sqrt{30}}B_{i}+\frac{5}{\sqrt{30}}C_{i}$$

A continuación, multiplicamos las puntuaciones por el vector de pesos para obtener nuestra predicción de rango 1.

$$\begin{pmatrix} \hat{A}_{i} \\ \hat{B}_{i} \\ \hat{C}_{i} \\ \hat{D}_{i} \\ \hat{E}_{i} \\ \hat{F}_{i}\end{pmatrix} =Z_{i}\times\begin{pmatrix} \frac{1}{\sqrt{30}} \\ \frac{2}{\sqrt{30}} \\ \frac{5}{\sqrt{30}} \\ 0 \\ 0 \\ 0\end{pmatrix}$$

A continuación, introducimos estas estimaciones en $S$ calcular $P$ . También se puede poner esto en notación de norma matricial, lo que puede sugerir una generalización diferente. Si establecemos $O$ como el $N\times q$ matriz de valores observados de las variables ( $q=6$ en su caso), y $E$ como la correspondiente matriz de predicciones. Podemos definir la proporción de varianza explicada como:

$$\frac{||O||_{2}^{2}-||O-E||_{2}^{2}}{||O||_{2}^{2}}$$

Dónde $||.||_{2}$ es el Norma de la matriz de Frobenius . Así que se puede "generalizar" para que sea otro tipo de norma matricial, y se obtendrá una medida de diferencia de "variación explicada", aunque no será "varianza" per se a menos que sea suma de cuadrados.

11voto

zowens Puntos 1417

Digamos que elijo alguna combinación lineal de estas variables -- por ejemplo. $A+2B+5C$ ¿podría calcular la varianza de los datos que describe?

Esta pregunta puede entenderse de dos maneras distintas, lo que lleva a dos respuestas diferentes.

Una combinación lineal corresponde a un vector, que en su ejemplo es $[1, 2, 5, 0, 0, 0]$ . Este vector, a su vez, define un eje en el espacio 6D de las variables originales. Lo que se pregunta es cuánta varianza "describe" la proyección sobre este eje. La respuesta se da mediante la noción de "reconstrucción" de los datos originales a partir de esta proyección, y midiendo el error de reconstrucción (véase Wikipedia en Fracción de varianza no explicada ). Resulta que esta reconstrucción puede hacerse razonablemente de dos maneras diferentes, dando dos respuestas distintas.


Enfoque nº 1

Sea $\newcommand{\S}{\boldsymbol \Sigma} \newcommand{\w}{\mathbf w} \newcommand{\v}{\mathbf v}\newcommand{\X}{\mathbf X} \X$ sea el conjunto de datos centrado ( $n$ Las filas corresponden a las muestras, $d$ las columnas corresponden a variables), dejemos que $\S$ sea su matriz de covarianza, y que $\w$ sea un vector unitario de $\mathbb R^d$ . La varianza total del conjunto de datos es la suma de todas las $d$ varianzas, es decir, la traza de la matriz de covarianzas: $T = \mathrm{tr}(\S)$ . La pregunta es: ¿qué proporción de $T$ hace $\w$ ¿describir? Las dos respuestas dadas por @todddeluca y @probabilityislogic son ambas equivalentes a lo siguiente: calcular la proyección $\X \w$ calcule su varianza y divídala por $T$ : $$R^2_\mathrm{first} = \frac{\mathrm{Var}(\X \w)}{T} = \frac{\w^\top \S \w}{\mathrm{tr}(\S)}.$$

Esto puede no ser inmediatamente obvio, porque por ejemplo @probabilityislogic sugiere considerar la reconstrucción $\X \w \w^\top$ y, a continuación, calcular $$\frac{\|\X\|^2 - \|\X-\X \w \w^\top\|^2}{\|\X\|^2},$$ pero con un poco de álgebra se puede demostrar que es una expresión equivalente.


Enfoque nº 2

De acuerdo. Consideremos ahora el siguiente ejemplo: $\X$ es un $d=2$ conjunto de datos con matriz de covarianza $$\S = \left(\begin{array}{c}1&0.99\\0.99&1\end{array}\right)$$ and $\mathbf w = (\begin{array}{}1&0\end{array})^\top$ es simplemente un $x$ vector:

variance explained

La varianza total es $T=2$ . La varianza de la proyección sobre $\w$ (en puntos rojos) es igual a $1$ . Por lo tanto, según la lógica anterior, la varianza explicada es igual a $1/2$ . Y en cierto sentido lo es: los puntos rojos ("reconstrucción") están muy lejos de los puntos azules correspondientes, por lo que se "pierde" gran parte de la varianza.

Por otra parte, las dos variables tienen $0.99$ correlación y por lo tanto son casi idénticas; decir que una de ellas describe sólo $50\%$ de la varianza total es rara, porque cada una de ellas contiene "casi toda la información" sobre la segunda. Podemos formalizarlo del siguiente modo: dada la proyección $\X\w$ encontrar la mejor reconstrucción posible $\X\w\v^\top$ con $\v$ no es necesariamente lo mismo que $\w$ y entonces calcule el error de reconstrucción e introdúzcalo en la expresión de la proporción de varianza explicada: $$R^2_\mathrm{second}=\frac{\|\X\|^2 - \|\X-\X \w \v^\top\|^2}{\|\X\|^2},$$ donde $\v$ se elige de forma que $\|\X-\X \w \v^\top\|^2$ es mínima (es decir $R^2$ es máxima). Esto equivale exactamente a calcular $R^2$ de regresión multivariante que predice el conjunto de datos original $\X$ del $1$ -proyección dimensional $\X\w$ .

Es una cuestión de álgebra directa utilizar la solución de regresión para $\v$ para encontrar que toda la expresión se simplifica a $$R^2_\mathrm{second}=\frac{\|\S \w\|^2}{\w^\top \S \w \cdot \mathrm{tr}(\S)}.$$ En el ejemplo anterior es igual a $0.9901$ lo que parece razonable.

Tenga en cuenta que si (y sólo si) $\w$ es uno de los vectores propios de $\S$ es decir, uno de los ejes principales, con valor propio $\lambda$ (para que $\S \w = \lambda \w$ ), entonces ambos enfoques para calcular $R^2$ coinciden y se reducen a la conocida expresión PCA $$R^2_\mathrm{PCA} = R^2_\mathrm{first} = R^2_\mathrm{second} = \lambda/\mathrm{tr}(\S) = \lambda/\sum \lambda_i.$$

PS. Véase mi respuesta aquí para una aplicación de la fórmula derivada al caso especial de $\w$ siendo uno de los vectores base: Varianza de los datos explicada por una sola variable .


Apéndice. Derivación de la fórmula para $R^2_\mathrm{second}$

Encontrar $\v$ minimizar la reconstrucción $\|\X-\X \w \v^\top\|^2$ es un problema de regresión (con $\X \w$ como predictor univariante y $\X$ como respuesta multivariante). Su solución viene dada por $$\v^\top = \left((\X \w)^\top (\X \w)\right)^{-1}(\X \w)^\top \X = (\w^\top \S \w)^{-1} \w^\top \S.$$

A continuación, el $R^2$ puede simplificarse como $$R^2=\frac{\|\X\|^2 - \|\X-\X \w \v^\top\|^2}{\|\X\|^2} = \frac{\|\X \w \v^\top\|^2}{\|\X\|^2}$$ debido al teorema de Pitágoras, porque la matriz sombrero en regresión es una proyección ortogonal (pero también es fácil de demostrar directamente).

Introduciendo ahora la ecuación para $\v$ obtenemos para el numerador: $$\|\X \w \v^\top\|^2 = \mathrm{tr}\left(\X \w \v^\top (\X \w \v^\top)^\top\right) = \mathrm{tr}(\X\w\w^\top\S\S\w\w^\top\X^\top)/(\w^\top\S\w)^2=\mathrm{tr}(\w^\top\S\S\w)/(\w^\top\S\w) = \|\S\w\|^2 / (\w^\top\S\w).$$

El denominador es igual a $\|\X\|^2 = \mathrm{tr}(\S)$ dando como resultado la fórmula anterior.

5voto

Anthony Conyers Puntos 301

Que la varianza total, $T$ en un conjunto de datos de vectores sea la suma de errores al cuadrado (SSE) entre los vectores del conjunto de datos y el vector medio del conjunto de datos, $$T = \sum_{i} (x_i-\bar{x}) \cdot (x_i-\bar{x})$$ donde $\bar{x}$ es el vector medio del conjunto de datos, $x_i$ es el vector i-ésimo del conjunto de datos, y $\cdot$ es el producto punto de dos vectores. Dicho de otro modo, la varianza total es la SSE entre cada $x_i$ y su valor previsto, $f(x_i)$ cuando fijamos $f(x_i)=\bar{x}$ .

Ahora dejemos que el predictor de $x_i$ , $f(x_i)$ sea la proyección del vector $x_i$ sobre un vector unitario $c$ .

$$ f_c(x_i) = (c \cdot x_i)c$$

Entonces el $SSE$ para un determinado $c$ es $$SSE_c = \sum_i (x_i - f_c(x_i)) \cdot (x_i - f_c(x_i))$$

Creo que si eliges $c$ para minimizar $SSE_c$ entonces $c$ es el primer componente principal.

Si en su lugar elige $c$ para ser la versión normalizada del vector $(1, 2, 5, ...)$ entonces $T-SSE_c$ es la varianza de los datos descritos mediante el uso de $c$ como predictor.

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