Plotar um discriminante como linha no gráfico de dispersão

8

Dado um gráfico de dispersão de dados, posso plotar os principais componentes dos dados , como eixos lado a lado com pontos que são pontuações nos componentes principais. Você pode ver um exemplo de plotagem com a nuvem (consistindo em 2 clusters) e seu primeiro componente principal. Ele é desenhado facilmente: as pontuações dos componentes brutos são calculadas como matriz de dados x vetor (es) próprio (s) ; A coordenada de cada ponto de pontuação no eixo original (V1 ou V2) é a pontuação x cos entre o eixo e o componente (que é o elemento do vetor próprio) .

1º componente principal lado a lado com suas pontuações

Minha pergunta: É possível, de alguma maneira, atrair um discriminante de maneira semelhante? Olhe minha foto, por favor. Eu gostaria de traçar agora o discriminante entre dois grupos, como uma linha lado a lado com pontuações discriminantes (após análise discriminante) como pontos. Se sim, qual poderia ser o algo?

ttnphns
fonte

Respostas:

8

OK, já que ninguém respondeu, acho que, depois de algumas experiências, posso fazer isso sozinho. Seguindo as diretrizes de análise discriminante, seja T a matriz sscp inteira da nuvem (dados X , de 2 variáveis) (dos desvios do centro da nuvem) e seja W a matriz sscp agrupada no cluster (dos desvios de um centro de cluster). B = TW é a matriz sscp entre os clusters. A decomposição de valores singulares de inv (W) B nos produz U (vetores próprios à esquerda), S (matriz diagonal de valores próprios), V(vetores próprios à direita). No meu exemplo de 2 clusters, apenas o 1º valor próprio não é zero (o que significa que há apenas um discriminante) e, portanto, usamos apenas o primeiro vetor próprio (coluna) de U : U (1) . Agora, XU (1) são os escores discriminantes brutos procurados . Para mostrar o discriminante como uma linha lado a lado com aqueles, multiplique as pontuações por cos entre o eixo e o discriminante (que é o elemento do vetor próprio U (1) ) - assim como o componente principal acima . O gráfico resultante está abaixo.

insira a descrição da imagem aqui

ttnphns
fonte
1
Pode ser mais fácil pensar nisso como uma projeção : em ambos os casos (PCA ou LDA) é um vetor de unidade na direção na qual você deseja projetar seus dados (primeiro eixo principal ou primeiro "eixo discriminante") ) O projetor ortogonal é dado por . Portanto, a resposta é (que obviamente é exatamente o que você descobriu). A mesma fórmula também funciona para dimensões mais altas. U(1)PU=UUXUU
Ameba
@amoeba, obrigado pelo comentário. A fórmula geral (para qualquer dimensionalidade) é XV, em que V é a matriz normalizada em coluna (para SS = 1) de vetores próprios da extração de LDA. Esses autovetores normalizados dos dados da íris são exibidos aqui: stats.stackexchange.com/a/83114/3277 ; a álgebra do LDA está aqui: stats.stackexchange.com/a/48859/3277 . Um gráfico em que usei os autovetores normalizados da LDA está aqui: stats.stackexchange.com/a/22889/3277 .
precisa saber é o seguinte
Sim, com certeza são coordenadas dos pontos de dados no espaço de destino de menor dimensionalidade, mas se você deseja obter a imagem da projeção no espaço de alta dimensão original (ou seja, pontos verdes nos gráficos de dispersão neste tópico), você projete esses pontos de volta com , para que você obtenha . um erro no meu comentário anterior: ele se reduz a apenas quando possui colunas ortonormais, como no caso PCA (mas não no LDA). Obviamente, se você considerar apenas 1 eixo (e então tiver apenas 1 coluna), isso não importa. XVV+XVV+XVVVV
ameba