Part de variance expliquée
Dans cet exercice, vous allez produire des scree plots montrant la proportion de variance expliquée à mesure que le nombre de composantes principales augmente. Les données issues de l’ACP doivent être préparées pour ces graphiques, car il n’existe pas de fonction R intégrée pour les créer directement à partir du modèle d’ACP.
En examinant ces graphiques, demandez-vous s’il existe un « coude » dans la courbe de variance expliquée qui vous inciterait à choisir un nombre naturel de composantes principales. Si aucun coude évident n’apparaît, comme c’est souvent le cas avec des jeux de données réels, réfléchissez à d’autres critères pour déterminer le nombre de composantes principales à conserver à partir du scree plot.
Cet exercice fait partie du cours
Apprentissage non supervisé en R
Instructions
Les variables que vous avez créées précédemment, wisc.data, diagnosis et wisc.pr, sont toujours disponibles.
- Calculez la variance de chaque composante principale en élevant au carré le composant
sdevdewisc.pr. Enregistrez le résultat dans un objet nommépr.var. - Calculez la part de variance expliquée par chaque composante principale en divisant par la variance totale expliquée de l’ensemble des composantes principales. Affectez le résultat à une variable appelée
pve. - Créez un graphique de la part de variance expliquée pour chaque composante principale.
- En utilisant la fonction
cumsum(), créez un graphique de la proportion cumulée de variance expliquée.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")