Présentation des données

Nous étudions des données de consommation effective des ménages. Ces données sont librement téléchargeables sur le site Internet de l’INSEE. La consommation effective des ménages désigne les dépenses liées à tous les biens et les services acquis par les ménages résidents pour la satisfaction de leurs besoins, que ces acquisitions aient fait, ou non, l’objet d’une dépense de leur part. Elle comprend donc, en plus des biens et des services acquis par leurs propres dépenses de consommation finale, les biens et les services qui, ayant fait l’objet de dépenses de consommation individuelle des administrations publiques, donnent lieu à des transferts sociaux en nature de leur part vers les ménages. L’unité du tableau de données que nous allons étudier est le milliard d’euros.

Télécharger le fichier de données consommation_historique.xls à partir de la page du cours .

Le fichier TP2_ADD_debut.R donne quelques commandes R pour charger et pré-traiter les données. On commencera par exécuter ces commandes.

ACP normée

Observer les données. Quelles sont les variables ? On pourra voir notamment que la variable Total des produits est obtenue à partir de toutes les autres. Réaliser une ACP sur le tableau X en traitant la variable Total des produits comme une variable supplémentaire. On stockera le résultat dans la variable res.pca.

Etudier l’évolution des valeurs propres associées aux axes de l’ACP. A partir des critères vus en cours, combien d’axes conserveriez-vous pour l’étude ?

par(mfrow=c(1,1)) 
barplot(res.pca$eig[,1],main="Eigenvalues",names.arg=1:nrow(res.pca$eig)) 
round(res.pca$eig[1:5,],2) 
100/ncol(X) 

A partir du tracé du nuage des individus projeté et du nuage des variables, interpréter le premier axe. Pour mieux visualiser le cercle des corrélations, on pourra simplement afficher le nom de la variable supplémentaire Total des produits.

plot(res.pca) 

plot(res.pca,choix="var",label="quanti.sup") 

Le premier axe est donc facile à interpréter, puisque toutes les variables sont corrélées positivement avec cet axe. En combinant cette observation avec celle du nuage des individus, nous pouvons conclure à une augmentation générale de la consommation effective au cours du temps. Cette augmentation est tellement importante qu’elle masque le reste de l’information qui pourrait être contenue dans ces données.

Etude de la consommation relative

Nous allons étudier maintenant le rapport des différents postes de consommation avec la consommation effective totale de l’année.

X.pond <- data.frame(t(apply(X,1,function(x){x[-47]/x[47]}))) 
colnames(X.pond) <- nom_var[-47] 

Réaliser une ACP sur le tableau obtenu.

par(mfrow=c(2,1)) 
res.pca.pond <-PCA(X.pond,graph=FALSE) 
par(mfrow=c(1,1)) 
barplot(res.pca.pond$eig[,1],main="Eigenvalues",names.arg=1:nrow(res.pca.pond$eig))

round(res.pca.pond$eig[1:7,],2) 
##        eigenvalue percentage of variance cumulative percentage of variance
## comp 1      28.42                  61.79                             61.79
## comp 2       8.89                  19.32                             81.11
## comp 3       2.56                   5.56                             86.67
## comp 4       2.05                   4.45                             91.12
## comp 5       1.42                   3.08                             94.20
## comp 6       1.02                   2.21                             96.41
## comp 7       0.50                   1.10                             97.51
100/ncol(X.pond) 
## [1] 2.173913

Avec le critère du coude, nous choisirions 2 axes, ce qui correspond au nombre d’axes nécessaires pour atteindre 80% de la variance. Le critère de Kaiser nous donne 6 axes, ce qui est certainement trop.

plot(res.pca.pond)

Le tracé du nuage des individus nous donne une interprétation immédiate du premier axe, qui correspond à une évolution temporelle.

plot(res.pca.pond,choix="var",label="none")

On observera que toutes les variables sont bien représentées dans cet axe, le signe de leur corrélation avec le premier axe indique si elles ont tendance à augmenter ou diminuer avec le temps.

res.pca.pond$var

Le deuxième axe est plus difficile à interpréter. Au vu de l’observation du nuage des individus, il semble indiquer des variables dont l’évolution changerait de signe dans les années 80.

which(res.pca.pond$var$cos2[,2]>0.8)
##                                                   Autres services 
##                                                                38 
## Administration publique et défense - sécurité sociale obligatoire 
##                                                                43

Cependant les deux seules variables bien représentées sur cet axe sont difficiles à interpréter.

plot(1959:2017,X.pond$`Administration publique et défense - sécurité sociale obligatoire`,xlab='Année')

plot(1959:2017,X.pond$`Autres services`,xlab='Année')

Le tracé de leur évolution au cours du temps indique effectivement un changement de comportement de la courbe autours des années 80. Cependant, étant donné la aible valeurs des données, cela pourrait être un artefact du à la transformation des données.

ACP non normée et consommation relative

Pour réduire l’influence des données de faible importance, nous réalisons maintenant une ACP non normée.

res.pca.pond.nnorm <- PCA(X.pond,scale=FALSE,graph=FALSE)
plot(res.pca.pond.nnorm)

plot(res.pca.pond.nnorm,choix="var",select="coord 5")

Le tracé des corrélations des variables avec les axes indique une augmentation au cours du temps de la part des services et des activités immobilières dans la consommation des ménages et une diminution de la consommation liées à l’industrie et au tabac.