Trazar un discriminante como línea en diagrama de dispersión

8

Dado un diagrama de dispersión de datos, puedo trazar los componentes principales de los datos en él, como ejes en mosaico con puntos que son puntajes de componentes principales. Puede ver un diagrama de ejemplo con la nube (que consta de 2 grupos) y su primer componente principal. Se dibuja fácilmente: las puntuaciones de los componentes sin procesar se calculan como matriz de datos x vectores propios ; La coordenada de cada punto de puntuación en el eje original (V1 o V2) es la puntuación x cos-entre-el-eje-y-el-componente (que es el elemento del vector propio) .

1er componente principal en mosaico por sus puntajes

Mi pregunta: ¿es posible de alguna manera dibujar un discriminante de manera similar? Mira mi foto por favor. Me gustaría trazar ahora el discriminante entre dos grupos, como una línea en mosaico con puntajes discriminantes (después del análisis discriminante) como puntos. En caso afirmativo, ¿cuál podría ser el algo?

ttnphns
fuente

Respuestas:

8

Bien, ya que nadie respondió, creo que, después de un poco de experimentación, puedo hacerlo yo mismo. Siguiendo las pautas de análisis discriminante, deje que T sea ​​la matriz sscp de la nube completa (datos X , de 2 variables) (de las desviaciones del centro de la nube), y deje que W sea ​​la matriz sscp agrupada dentro del clúster (de las desviaciones de un centro del clúster). B = TW es la matriz sscp entre clústeres. La descomposición del valor singular de inv (W) B nos da U (vectores propios izquierdos), S (matriz diagonal de valores propios), V(vectores propios derechos). En mi ejemplo de 2 grupos, solo el primer valor propio es distinto de cero (lo que significa que solo hay un discriminante), por lo que usamos solo el primer vector propio (columna) de U : U (1) . Ahora, XU (1) son los puntajes discriminadores crudos buscados . Para mostrar el discriminante como una línea en mosaico con esos, multiplique los puntajes por cos-entre-el-eje-y-el-discriminante (que es el elemento del vector propio U (1) ), tal como lo hizo con el componente principal arriba . La trama resultante está debajo.

ingrese la descripción de la imagen aquí

ttnphns
fuente
1
Puede ser más fácil pensar en esto como una proyección : en ambos casos (PCA o LDA) es un vector unitario en la dirección en la que desea proyectar sus datos (primer eje principal o primer "eje discriminante" ) El proyector ortogonal está dado por . Entonces, la respuesta es (que, por supuesto, es exactamente lo que descubrió usted mismo). La misma fórmula también funciona para dimensiones superiores. U(1)PU=UUXUU
ameba
@amoeba, gracias por el comentario. La fórmula general (para cualquier dimensionalidad) es XV, donde V es la matriz normalizada de columna (a SS = 1) de los vectores propios de la extracción de LDA. Aquí se muestran estos vectores propios normalizados de datos de iris: stats.stackexchange.com/a/83114/3277 ; El álgebra de LDA está aquí: stats.stackexchange.com/a/48859/3277 . Una trama donde utilicé los vectores propios normalizados de LDA está aquí: stats.stackexchange.com/a/22889/3277 .
ttnphns
Sí, seguro son coordenadas de los puntos de datos en el espacio objetivo de menor dimensionalidad, pero si desea obtener la imagen de la proyección en el espacio original de alta dimensión (es decir, puntos verdes en sus diagramas de dispersión en este hilo), proyecte estos puntos de nuevo con , por lo que al final obtendrá . un error en mi comentario anterior: se reduce a solo cuando tiene columnas ortonormales, como en el caso de PCA (pero no LDA). Por supuesto, si solo considera 1 eje (y tiene solo 1 columna), entonces no importa. XVV+XVV+XVVVV
ameba