¿Qué es el subespacio principal en PCA probabilístico?

10

si se observa matriz de datos e es variable latenteXY

X=WY+μ+ϵ

Donde es la media de los datos observados, y es el error / ruido gaussiano en los datos, y se llama subespacio principal.μϵW

Mi pregunta es cuando se usa PCA normal, obtendríamos un conjunto de vectores propios ortonormales para los cuales lo siguiente es ciertoE

Y=EX

Pero en PPCA, no es un vector ortonormal ni eigen. Entonces, ¿cómo puedo obtener los componentes principales de ?WW

Siguiendo mi instinto, busqué ppca en MATLAB, donde encontré esta línea:

En la convergencia, las columnas de W abarcan el subespacio, pero no son ortonormales. ppca obtiene los coeficientes ortonormales, coeff, para los componentes por ortogonalización de W.

He modificado el código PPCA un poco para conseguir la W , corrió y después de ortogonalización Me hizo llegar P de W .

¿Por qué esta ortogonalización dio vectores propios, a lo largo de los cuales se verá la mayor parte de la variación?

Supongo que la ortogonalización me está dando un conjunto de vectores ortogonales / ortonormales que abarcan el subespacio principal, pero ¿por qué esta matriz resultante ortogonalizada es igual a eigenmatrix (sé que eigenmatrix en pca también es ortonormal)? ¿Puedo suponer que el subespacio principal se extiende solo por un conjunto único de vectores ortonormales? En ese caso, ambos resultados coincidirán siempre.

usuario3086871
fuente
1
Solo para aclarar mi confusión, verifiqué exactamente dónde se calcula el W y lo asigné a un nuevo parámetro de salida llamado prin_sub. Sé que ppca devuelve W en SW, pero para ser absolutamente claro, lo hice de forma redundante. y en el documento se dio un ejemplo usando datos 'hald', usé su código: P = orth (SW) también @amoeba Eliminé mis otras preguntas.
user3086871

Respuestas:

19

Esta es una excelente pregunta.

El PCA probabilístico (PPCA) es el siguiente modelo de variable latente donde es una observación y es latente vector variable generalmente . Tenga en cuenta que esto difiere del análisis factorial en solo un pequeño detalle: la estructura de covarianza de error en PPCA es y en FA es una matriz diagonal arbitraria .

zN(0,I)xN(Wz+μ,σ2I),
xRpzRqqpσ2IΨ

Tipping y Bishop, 1999, Probabilistic Component Principal Analysis demuestran el siguiente teorema: la solución de máxima verosimilitud para PPCA se puede obtener analíticamente y viene dada por (Ec. 7): donde es una matriz de direcciones principales (vectores propios de la matriz de covarianza), es la matriz diagonal de los valores propios correspondientes, también viene dada por una fórmula explícita, y es una matriz de rotación arbitraria (correspondiente a rotaciones en el espacio latente).

WML=Uq(ΛqσML2I)1/2R,
UqqΛqσMETROL2Rq×q

La ppca()función implementa el algoritmo de maximización de expectativas para ajustarse al modelo, pero sabemos que debe converger a como se anteriormente.WMETROL

Su pregunta es: cómo obtener si conoce .UqWMETROL

La respuesta es que simplemente puede usar la descomposición de valores singulares de . La fórmula anterior ya tiene la forma de matriz ortogonal multiplicada por matriz diagonal multiplicada por matriz ortogonal, por lo que proporciona la SVD y, como es única, obtendrá como vectores singulares izquierdos de .WMETROLUqWMETROL

Eso es exactamente lo que ppca()está haciendo la función de Matlab en la línea 305:

% Orthogonalize W to the standard PCA subspace
[coeff,~] = svd(W,'econ');

¿Puedo suponer que el subespacio principal se extiende solo por un conjunto único de vectores ortonormales?

¡No! Hay un número infinito de bases ortogonales que abarcan el mismo subespacio principal. Si aplica algún proceso de ortogonalización arbitrario a , no se garantiza que obtenga . Pero si usa SVD o algo equivalente, entonces funcionará.WMETROLUq

ameba
fuente
1
¡Qué excelente respuesta! Eres bastante genial! Gran ayuda! Muchas gracias. @amoeba
user3086871