ComenzarEmpieza gratis

Varianza explicada

En este ejercicio, vas a generar gráficos de sedimentación (scree plots) que muestran la proporción de varianza explicada a medida que aumenta el número de componentes principales. Los datos del PCA deben prepararse para estos gráficos, ya que no existe una función incorporada en R que los cree directamente a partir del modelo de PCA.

Al observar estos gráficos, plantéate si hay un “codo” en la cantidad de varianza explicada que te lleve a elegir un número natural de componentes principales. Si no hay un codo claro, como suele ocurrir con conjuntos de datos reales, piensa en otras formas de determinar cuántos componentes principales conservar basándote en el scree plot.

Este ejercicio forma parte del curso

Unsupervised Learning in R

Ver curso

Instrucciones del ejercicio

Las variables que creaste antes, wisc.data, diagnosis y wisc.pr, siguen disponibles.

  • Calcula la varianza de cada componente principal elevando al cuadrado el componente sdev de wisc.pr. Guarda el resultado en un objeto llamado pr.var.
  • Calcula la varianza explicada por cada componente principal dividiendo entre la varianza total explicada de todos los componentes principales. Asigna esto a una variable llamada pve.
  • Crea un gráfico de la varianza explicada para cada componente principal.
  • Usando la función cumsum(), crea un gráfico de la proporción acumulada de varianza explicada.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Set up 1 x 2 plotting grid
par(mfrow = c(1, 2))

# Calculate variability of each component


# Variance explained by each principal component: pve


# Plot variance explained for each principal component
plot(___, xlab = "Principal Component", 
     ylab = "Proportion of Variance Explained", 
     ylim = c(0, 1), type = "b")

# Plot cumulative proportion of variance explained
plot(___, xlab = "Principal Component", 
     ylab = "Cumulative Proportion of Variance Explained", 
     ylim = c(0, 1), type = "b")
Editar y ejecutar código