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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta