TP Analyse en Composantes Principales (ACP)
1) Importation des données
Je commence par importer mon fichier cars.xls, pour faire cela j’ai voulu essayer avec l’interface graphique comme
montre la figure ci-dessous, mais aussi on peut le faire avec la commande :
> cars <- read_excel("D:/BADS/semestre 3/Atelier fouille de données/TP ACP/cars.xls")
> View(cars) (pour visualiser les données)
Le fichier décrit les caractéristiques de 394 véhicules.
2) Quelques statistiques descriptives sur les variables actives
On sélectionne les variables qu’on a utilisé dans le calcul, selon l’énoncé du TP, on n’a pas besoin du
variable « name » : cars=cars[,2:8]
On remarque que le type de la variable horsepower est « character », on doit alors le modifier :
cars$Horsepower<-strtoi(cars$Horsepower)
sapply(cars,function(x) sum(is.na(x)))
is.na(cars$Horsepower)
Publicité
cars$Horsepower[is.na(cars$Horsepower)] <- mean(cars$Horsepower,na.rm=T)
cars$Horsepower
On vérifie le resultat avec summury() pour les descriptions statiqtiques :
Summary(cars)
3) Centrer et réduire les variables
#Standardisation d'une colonne
centrage_reduction <- function(x){
return((x-mean(x))/sqrt(var(x)))}
#produire un tableau des données centrées et réduites (la colonne 8 est de type caracter)
cars.cr <- apply(cars[,1:7],2,centrage_reduction)
#vérifier
apply(cars.cr,2,mean)
apply(cars.cr,2,var)
4) La matrice de corrélation
Publicité
C=cor(cars.cr)
-
-
La consommation « mpg » a une forte corrélation négative entre « cylinders » , « displacement »,
« Horsepower » et « weight » cela veut dire que il y a aucune relation entre la consommation mpg et ces
derniers , par contre on remarque une corrélation relativement moyenne avec l’accélération (0.42) et l’année
(0.58) cela s’explique par : plus l’accélération augmente , plus la consommation est considérable et plus la
voiture est vielle plus sa consommation mpg augmente .
- Une forte corrélation positive entre cylinderset et displacement (0.950) , horsepower (0.84) et weight (0.89)
Cela veut dire que le nombre de cylindres de la voiture dépend directement de ces derniers, plus la voiture est
puissante volumineuse large plus elle a besoin de cylindres.
- Une forte corrélation positive entre diplacement , horsepower et weigt cela veut dire plus la taille du moteur
est grand , plus le horsepower et weight est élevé.
- Une forte corrélation positive entre horsepower cylinders et weight.
- Une forte correlation negative entre weight et mpg cela veut dire que le weight n’a aucun impact sur la
Publicité
consommation.
- Pour year la seule chose qui affecte c’est plus la voiture est vielle plus la consommation mpg augmente.
5) Application d’une analyse en composantes principales sur les données
Pour afficher les nuages des points : pairs(cars)
− on remarque une tendance linéaire croissante entre weight et horsepower et displacement et une tendance linéaire
décroissante entre MPG , displacement et horsepower et weight.
On va maintenant reliser notre acp :
install.packages(c("FactoMineR", "factoextra"))
install.packages("ggplot2")
library("ggplot2")
library("FactoMineR")
library("factoextra")
cars.acp <- PCA(cars.cr, scale.unit=TRUE, ncp=7, graph=TRUE)
> summary(cars.acp)
Publicité
>Print(cars.acp)
Graphique des éboulis des valeurs propres
val.propres <- cars.acp$eig[,1]
plot(1:7,val.propres,type="b",ylab="Valeurs propres",xlab="Composante",main="Scree plot")
Corrélation variables-facteurs
Cercle des corrélations (variables actives)
plot(cars.acp,choix="var",title="Cercle des corrélations", invisible="quanti.sup")
On remarque que Weight , cylinfers , horsepower et deplacement sont fortement corrélés positivement à la Dim1 .
Alors que MPG est fortement corrélées négativement à la Dim1 et Acceleration est négativement corrélées à Dim1 d’une
façon moyenne. Enfin Year est fortement correlé positivement à Dim2.
Nuage des individus
plot(cars.acp,choix="ind", invisible="quali")