Variance expliquée
Dans cet exercice, vous allez produire des diagrammes d'éboulis (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, puisqu'il n'existe pas de fonction intégrée dans R pour les créer directement à partir du modèle d'ACP.
En examinant ces graphiques, demandez-vous s'il y a un « coude » dans la variance expliquée qui vous amènerait à 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 façons de déterminer combien de composantes principales conserver à partir du diagramme d'éboulis.
Cette activité fait partie du cours
Apprentissage non supervisé en R
Instructions de l’exercice
Les variables que vous avez créées plus tôt, wisc.data, diagnosis et wisc.pr, sont toujours disponibles.
- Calculez la variance de chaque composante principale en élevant au carré l'élément
sdevdewisc.pr. Enregistrez le résultat dans un objet nommépr.var. - Calculez la variance expliquée par chaque composante principale en divisant par la variance totale expliquée de l'ensemble des composantes principales. Assignez cela à une variable appelée
pve. - Créez un graphique de la variance expliquée pour chaque composante principale.
- À l'aide de la fonction
cumsum(), créez un graphique de la proportion cumulative de variance expliquée.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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")