31 votos

Cálculo de la varianza explicada del PCA

He leído a través de esta explicación aquí con respecto al cálculo de la varianza explicada a partir del resultado del PCA. Creo que lo he hecho bien, pero puede que esté equivocado en mi interpretación de la salida de R.

En el siguiente ejemplo, me gustaría calcular el porcentaje de varianza explicado por el primer componente principal del conjunto de datos USArrests.

pca <- prcomp(USArrests, scale = TRUE)
eigs <- pca$sdev^2
eigs[1] / sum(eigs)
[1] 0.6200604

He supuesto que R utiliza sdev como la raíz cuadrada de los valores propios. Así que lo elevo al cuadrado y divido el primer valor por el total. ¿Es esto correcto?

48voto

ssn Puntos 472

Sí, eso es correcto. summary.prcomp también aporta esa información:

summary(pca)
#Importance of components:
#                          PC1    PC2     PC3     PC4
#Standard deviation     1.5749 0.9949 0.59713 0.41645
#Proportion of Variance 0.6201 0.2474 0.08914 0.04336
#Cumulative Proportion  0.6201 0.8675 0.95664 1.00000

Comparar con

rbind(
  SD = sqrt(eigs),
  Proportion = eigs/sum(eigs),
  Cumulative = cumsum(eigs)/sum(eigs))

#                [,1]      [,2]      [,3]       [,4]
#SD         1.5748783 0.9948694 0.5971291 0.41644938
#Proportion 0.6200604 0.2474413 0.0891408 0.04335752
#Cumulative 0.6200604 0.8675017 0.9566425 1.00000000

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X