Matlab: ¿cómo encontrar qué variables del conjunto de datos podrían descartarse utilizando PCA en matlab?
Estoy usando PCA para averiguar qué variables en mi conjunto de datos son redundantes debido a que están altamente correlacionadas con otras variables. Estoy usando la función princomp matlab en los datos previamente normalizados usando zscore:
[coeff, PC, eigenvalues] = princomp(zscore(x))
Yo sé eso valores propios dime cuánta variación del conjunto de datos cubre cada componente principal, y que coeff me dice cuánto de la i-ésima variable original está en el j-ésimo componente principal (donde i - filas, j - columnas).
ntonces, supuse que para averiguar qué variables del conjunto de datos original son las más importantes y cuáles son las menos, debería multiplicar la coeff matriz por valores propios - coeffos valores @ representan la cantidad de cada variable que tiene cada componente y valores propios diga cuán importante es este componente. Este es mi código completo:
[coeff, PC, eigenvalues] = princomp(zscore(x));
e = eigenvalues./sum(eigenvalues);
abs(coeff)/e
Pero esto realmente no muestra nada: lo probé en un conjunto siguiente, donde la variable 1 está completamente correlacionada con la variable 2 (v2 = v1 + 2):
v1 v2 v3
1 3 4
2 4 -1
4 6 9
3 5 -2
pero los resultados de mis cálculos fueron los siguientes:
v1 0.5525
v2 0.5525
v3 0.5264
y esto realmente no muestra nada. Esperaría que el resultado para la variable 2 muestre que es mucho menos importante que v1 o v3. ¿Cuál de mis suposiciones está mal?