Técnica no ortogonal análoga a la PCA


9

Supongamos que tengo un conjunto de datos de puntos 2D y quiero detectar las direcciones de todos los máximos locales de varianza en los datos, por ejemplo:

ingrese la descripción de la imagen aquí

PCA no ayuda en esta situación, ya que es una descomposición ortogonal y, por lo tanto, no puede detectar ambas líneas que indiqué en azul, sino que su salida puede parecerse a la que se muestra con líneas verdes.

Por favor, recomiende cualquier técnica que pueda ser adecuada para este propósito. Gracias.


¿Podría poner a disposición su conjunto de datos de ejemplo? Me gustaría probar algo por ti. Saludos, Eric
Eric Melse

Respuestas:


10

El análisis de componentes independientes debería poder proporcionarle una buena solución. Es capaz de descomponer componentes no ortogonales (como en su caso) suponiendo que sus mediciones resultan de una mezcla de variables estadísticamente independientes.

Hay muchos buenos tutoriales en Internet, y algunas implementaciones disponibles para probar (por ejemplo, en scikit o MDP ).

¿Cuándo no funciona ICA?

Como otros algoritmos, ICA es óptimo cuando se aplican los supuestos para los que se derivó. Concretamente

  1. las fuentes son estadísticamente independientes
  2. los componentes independientes son no gaussianos
  3. la matriz de mezcla es invertible

ICA devuelve una estimación de la matriz de mezcla y los componentes independientes.

Cuando sus fuentes son gaussianas, ICA no puede encontrar los componentes. Imagine que tiene dos componentes independientes, y , que son . Entonces, x1x2N(0,I)

p(x1,x2)=p(x1)p(x2)=12πexp(x12+x222)=12πexp||x||22

donde. es la norma del vector bidimensional. Si se mezclan con una transformación ortogonal (por ejemplo, una rotación ), tenemos,, lo que significa que la distribución de probabilidad no cambia bajo la rotación. Por lo tanto, ICA no puede encontrar la matriz de mezcla de los datos.R | El | R x | El | = | El | x | El |||.||R||Rx||=||x||


Sí, debería ( scikit-learn.org/stable/auto_examples/decomposition/… ), ¡Muchas gracias! : D
Ahmed

1
Esto podría convertirse en una respuesta realmente profunda si cuenta más; en particular, decida comparar la propuesta de @Gottfried (PCA con rotación oblicua) con su propuesta (ICA), cuáles son las diferencias y las deficiencias de los dos.
ttnphns

Veo que esta pregunta ha sido respondida en parte. Verifique la edición agregando un ejemplo simple para el cual ICA no se aplica.
jpmuc

3

Existen procedimientos similares a PCA para el llamado caso "oblicuo". En el software de estadísticas como SPSS (y posiblemente también en su clon de software gratuito), PSPP encuentra las llamadas "rotaciones oblicuas", e instancias de ellas denominadas "oblimin", "promax" y algo más. Si entiendo las cosas correctamente, el software intenta "rectangularizar" las cargas de factores volviendo a calcular sus coordenadas en un espacio euclidiano ortogonal (como, por ejemplo, se muestra en la imagen) en coordenadas de un espacio cuyos ejes no son ortogonales, tal vez con alguna técnica conocida de regresión múltiple. Además, creo que esto funciona solo de forma iterativa y consume uno o más grados de libertad en las pruebas estadísticas del modelo.

de comparación PCA y rotación oblicua
El manual de referencia de SPSS (en el sitio de IBM) para rotaciones oblicuas contiene incluso fórmulas para el cálculo.

[Actualización] (Upps, lo siento, acabo de comprobar que PSPP no proporciona "rotaciones" del tipo oblicuo)


1
Hmm, después de una tercera lectura, veo que su pregunta es ligeramente diferente de la lógica oblicua de rotación: en su nube de datos ni siquiera es que la media esté en el origen / que los datos ni siquiera estén centrados, por lo que podría tener algo más en mente de lo que he cubierto aquí en mi respuesta. Si este es el caso, puedo eliminar la respuesta más adelante ...
Gottfried Helms

1
Debido a que las "rotaciones" oblicuas son posteriores al PCA, no pueden "ver" el tipo de situación ilustrada en la pregunta y, por lo tanto, parecen no tener más capacidad para identificar los dos componentes que el PCA mismo.
whuber


2

Las otras respuestas ya han dado algunas sugerencias útiles sobre técnicas que puede considerar, pero nadie parece haber señalado que su suposición es incorrecta: las líneas que se muestran en azul en su imagen esquemática NO son máximos locales de la varianza.

Para verlo, observe que la varianza en la dirección viene dada por , donde denota la matriz de covarianza de la datos. Para encontrar máximos locales, necesitamos poner la derivada de esta expresión a cero. Como está limitado a tener una unidad de longitud, necesitamos agregar un término donde es un multiplicador de Lagrange. Al diferenciar, obtenemos la siguiente ecuación:wΣ w Σ w λ ( ww - 1 ) λ Σ w - λ w = 0.wwΣwΣwλ(ww1)λ

Σwλw=0.

Esto significa que debería ser un vector propio de la matriz de covarianza, es decir, uno de los vectores principales. En otras palabras, PCA le proporciona todos los máximos locales , no hay otros.w


Hola, no tengo mucha experiencia en matemáticas, ¿me puede recomendar un buen recurso para aprender sobre las cosas que mencionó anteriormente? Gracias.
Ahmed

@ Ahmed: No estoy seguro, depende de lo que ya sabes. Supongo que necesitarías libros de texto decentes sobre álgebra lineal y análisis. Esto es bastante básico, debe estar cubierto en cualquier libro de texto decente.
ameba
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.