TP Analyse en Composantes Principales (ACP)

Page 1 sur 7Lecteur de document UniversityLib

TP Analyse en Composantes Principales (ACP)

Data Analysis and Principal Component Analysis (PCA) · lab

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)

Advertisement

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

Advertisement

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

Advertisement

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)

Advertisement

>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")