Matlab: como encontrar quais variáveis do conjunto de dados podem ser descartadas usando o PCA no matla
Estou usando o PCA para descobrir quais variáveis no meu conjunto de dados são redundantes devido à alta correlação com outras variáveis. Estou usando a função princomp matlab nos dados anteriormente normalizados usando zscore:
[coeff, PC, eigenvalues] = princomp(zscore(x))
Eu sei dissoautovalore diga-me quanta variação do conjunto de dados cobre todos os componentes principais e que coeff me diz quanto da i-ésima variável original está no j-ésimo componente principal (onde i - linhas, j - colunas
Assim assumi que, para descobrir quais variáveis do conjunto de dados original são as mais importantes e quais são as menores, devo multiplicar o coeff matriz porautovalore - coeff valores representam quanto de cada variável cada componente possui eautovalore diga a importância desse componente. Portanto, este é o meu código completo:
[coeff, PC, eigenvalues] = princomp(zscore(x));
e = eigenvalues./sum(eigenvalues);
abs(coeff)/e
Mas isso realmente não mostra nada - tentei no seguinte conjunto, em que a variável 1 está totalmente correlacionada com a variável 2 (v2 = v1 + 2):
v1 v2 v3
1 3 4
2 4 -1
4 6 9
3 5 -2
mas os resultados dos meus cálculos foram os seguintes:
v1 0.5525
v2 0.5525
v3 0.5264
e isso realmente não mostra nada. Eu esperaria que o resultado da variável 2 mostre que é muito menos importante que v1 ou v3. Qual das minhas suposições está errada?