Présentation des données

Nous étudions maintenant des données de température des villes européennes. Télécharger et observer les données temperat_Europe.csv. Quelles sont les variables ?

temperature <- read.table("temperat_Europe.csv",header=TRUE, sep=";", dec=".", row.names=1)
head(temperature)
summary(temperature)

Etant donné que les données sont toutes dans la même unité, la question se pose de réaliser une ACP normée ou non. En faisant une ACP normée : nous nous assurons que chaque variable à la même importance quelle que soit son amplitude. Une ACP non normée nous assure au contraire qu’une variation d’un degré de température à la même importance. Nous optons pour l’ACP normée. Dans ce contexte précis où les variables ont toutes à peu près la même amplitude, il n’y a pas grande différence.

Visualisation du nuage des individus projeté et du cercle des corrélations

Nous allons réaliser une ACP sur les températures des mois de l’année.

library("FactoMineR")
res <- PCA(temperature[,1:12])

Nous regardons maintenant les valeurs propres.

res$eig
##           eigenvalue percentage of variance cumulative percentage of variance
## comp 1  1.042445e+01           86.870441346                          86.87044
## comp 2  1.370499e+00           11.420823117                          98.29126
## comp 3  1.205076e-01            1.004230241                          99.29549
## comp 4  4.233298e-02            0.352774838                          99.64827
## comp 5  2.292280e-02            0.191023370                          99.83929
## comp 6  8.684234e-03            0.072368614                          99.91166
## comp 7  4.178064e-03            0.034817200                          99.94648
## comp 8  2.930325e-03            0.024419371                          99.97090
## comp 9  1.475750e-03            0.012297915                          99.98320
## comp 10 8.529732e-04            0.007108110                          99.99030
## comp 11 7.862929e-04            0.006552441                          99.99686
## comp 12 3.772122e-04            0.003143435                         100.00000
barplot(res$eig[,1])

Le premier axe concentre visiblement une très grande partie de la variance. Le deuxième axe représentant à lui seul plus de 10% de la variabilité, il peut être intéressant de le garder si nous savons l’interpréter.

Nous représentons maintenant les variables supplémentaires (Moyenne, Amplitude, Longitude, Latitude et Region).

res2 <- PCA(temperature,quali.sup=17,quanti.sup = 13:16)

plot(res2,choix="ind",habillage=17)
## Warning: ggrepel: 1 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps

L’axe 1 semble donc opposer les villes du Sud de l’Europe qui ont tendance à avoir une température moyenne plus élevée à celle du Nord et de l’Est de l’Europe qui ont tendance à avoir une température plus basse. Il à lui seul plus de 86% de la variabilité du jeu de données. L’axe 2 semble opposer les villes du Nord de l’Europe qui ont tendance à avoir une amplitude de température plus faible que la moyenne à celles de l’Est de l’Europe. Les villes de l’Ouest étant situées globalement au centre du premier plan semblent être des villes avec un profil de température moyen.

On souhaite situer le profil de température de la ville de Lyon dans cet exemple.

# Ajout de la ville au tableau
profil_temp_Lyon = c(2.6,4,7.9,10.8,14.9,18.4,21,20.3,17.1,11.9,7,3.5) # Températures moyennes de janvier à décembre
profil_Lyon = c(profil_temp_Lyon,mean(profil_temp_Lyon),range(profil_temp_Lyon),45.8,4.9,NA) # ajout des variables supp
temperature.sup = rbind(temperature,profil_Lyon)
rownames(temperature.sup)[36] <- 'Lyon'

# ACP avec un individu supp
res3 <- PCA(temperature.sup,quali.sup=17,quanti.sup = 13:16,ind.sup=36)
## Warning: ggrepel: 7 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps