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:
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.
Respuestas:
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
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,x1 x2 N(0,I)
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||
fuente
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)
fuente
No tengo mucha experiencia con él, pero el PCA generalizado de Vidal, Ma y Sastry fue creado para un problema muy similar.
fuente
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 λ ( w ⊤ w - 1 ) λ Σ w - λ w = 0.w w⊤Σw Σ w λ(w⊤w−1) λ
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
fuente