Qu’est-ce que l’Analyse en Composantes Principales (ACP) ?

Définition

L’Analyse en Composantes Principales (ACP) est une méthode d’analyse multivariée couramment utilisée pour explorer et simplifier des ensembles de données multidimensionnelles composées de variables quantitatives. Très populaire dans des domaines tels que la biostatistique, le marketing, la sociologie et bien d’autres, elle permet de synthétiser l’information contenue dans de grandes bases de données.

L’ACP est une technique de réduction dimensionnelle. Elle projette les observations d’un espace à ppp dimensions (correspondant aux ppp variables initiales) vers un espace à kkk dimensions (k<pk < pk<p), tout en maximisant la quantité d’information conservée. Ici, l’information est mesurée par la variance totale des données.

Les nouvelles dimensions générées par l’ACP, appelées axes principaux ou facteurs, sont ordonnées de façon à représenter progressivement la plus grande part de la variance totale. Si les 2 ou 3 premiers axes capturent un pourcentage élevé de cette variance, il devient possible de représenter les données de manière visuelle, sur des graphiques à 2 ou 3 dimensions, facilitant ainsi l’interprétation des résultats.

Les packages suivant sont celles qui seront utilisées dans la suite du rapport.

options(encoding = "UTF-8")
library(FactoMineR)
library(factoextra)
## Le chargement a nécessité le package : ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(psych)
## 
## Attachement du package : 'psych'
## Les objets suivants sont masqués depuis 'package:ggplot2':
## 
##     %+%, alpha
library(ggplot2)
library(Factoshiny)
## Le chargement a nécessité le package : shiny
## Le chargement a nécessité le package : FactoInvestigate
library(FactoInvestigate)
library(ggcorrplot)
## Warning: le package 'ggcorrplot' a été compilé avec la version R 4.4.2
  • Chargement du jeux de données
setwd("C:/Users/FELIX/Desktop/PROJET_Article_RTI_S7-GEE_G-07")
data <- read.csv(file = "Data_ACP.csv", header = TRUE, sep = ";", quote = "\"",dec = ",", row.names = 1)
  • ANALYSE DE DONNÉES

    • Matrice de corrélation:
    matrice.corr=cor(data[,1:11])
  • Visualisation graphique de la corrélation

ggcorrplot(matrice.corr,hc.order=TRUE,type="upper",title="Matrice de Correlation",legend.title="degre de correlation",
           lab=TRUE,lab_col="black",lab_size=2,ggtheme=theme_dark, outline.color="white")

  • Analyse des composantes principales (ACP)

    Maintenant réalisons l’ACP de notre jeu de données avec le package FactoMineR

res.pca <- PCA(data, scale.unit = TRUE, ncp = 5, graph = TRUE)

Analyse des Axes principaux :

Les deux premiers axes de l’analyse expriment 76,72 % de l’inertie totale du jeu de données ; cela signifie que 76,72 % de la variabilité totale du nuage de données (ou des variables) est représentée dans ce plan. Il s’agit d’un pourcentage élevé, et le premier plan représente donc effectivement la variabilité contenue dans une grande partie du jeu de données actif. Cette valeur est supérieure à la valeur de référence de 50,09 %, la variabilité expliquée par ce plan est donc significative. Par conséquent, la description de l’analyse se limitera à ces seuls axes.

Valeurs propres

valeur.propre <- get_eigenvalue(res.pca)

Résultats ACP des Variables

res.var <- get_pca_var(res.pca)
res.var$coord
##                  Dim.1       Dim.2       Dim.3       Dim.4        Dim.5
## AccElec     -0.5654414  0.41873719 -0.26344836  0.56517349  0.286404249
## Pop          0.8832189  0.40898054 -0.20829272  0.01646611 -0.028143247
## PopRurale    0.9247446  0.26576261 -0.16822928  0.18258255 -0.035826866
## IDH         -0.1956819  0.83744375  0.28208253 -0.28542268  0.151062843
## DemElec      0.8384639  0.49797601  0.10040572 -0.05242133  0.095859637
## CapRenouv   -0.3060382  0.72472455  0.51111786  0.23788704  0.010671040
## EmCO2        0.8494474  0.47237971 -0.18975312 -0.07215497 -0.007677289
## TempAnn      0.4017897 -0.64073664 -0.01656877 -0.10934242  0.625236946
## AidEnerg     0.8030401 -0.04883362  0.47083699  0.22670058  0.003688703
## TxChom      -0.2465097  0.70102599 -0.46602826 -0.06189666 -0.021618816
## CroisPopAnn  0.4404733 -0.75799088 -0.01619372  0.23839738 -0.182985938
 res.var$cor
##                  Dim.1       Dim.2       Dim.3       Dim.4        Dim.5
## AccElec     -0.5654414  0.41873719 -0.26344836  0.56517349  0.286404249
## Pop          0.8832189  0.40898054 -0.20829272  0.01646611 -0.028143247
## PopRurale    0.9247446  0.26576261 -0.16822928  0.18258255 -0.035826866
## IDH         -0.1956819  0.83744375  0.28208253 -0.28542268  0.151062843
## DemElec      0.8384639  0.49797601  0.10040572 -0.05242133  0.095859637
## CapRenouv   -0.3060382  0.72472455  0.51111786  0.23788704  0.010671040
## EmCO2        0.8494474  0.47237971 -0.18975312 -0.07215497 -0.007677289
## TempAnn      0.4017897 -0.64073664 -0.01656877 -0.10934242  0.625236946
## AidEnerg     0.8030401 -0.04883362  0.47083699  0.22670058  0.003688703
## TxChom      -0.2465097  0.70102599 -0.46602826 -0.06189666 -0.021618816
## CroisPopAnn  0.4404733 -0.75799088 -0.01619372  0.23839738 -0.182985938
res.var$cos2
##                  Dim.1       Dim.2        Dim.3        Dim.4        Dim.5
## AccElec     0.31972396 0.175340835 0.0694050361 0.3194210762 8.202739e-02
## Pop         0.78007566 0.167265080 0.0433858574 0.0002711327 7.920423e-04
## PopRurale   0.85515265 0.070629763 0.0283010916 0.0333363871 1.283564e-03
## IDH         0.03829142 0.701312042 0.0795705550 0.0814661091 2.281998e-02
## DemElec     0.70302172 0.247980105 0.0100813092 0.0027479958 9.189070e-03
## CapRenouv   0.09365940 0.525225668 0.2612414718 0.0565902444 1.138711e-04
## EmCO2       0.72156092 0.223142592 0.0360062467 0.0052063396 5.894077e-05
## TempAnn     0.16143498 0.410543441 0.0002745242 0.0119557647 3.909212e-01
## AidEnerg    0.64487336 0.002384723 0.2216874668 0.0513931527 1.360653e-05
## TxChom      0.06076702 0.491437437 0.2171823429 0.0038311960 4.673732e-04
## CroisPopAnn 0.19401669 0.574550172 0.0002622366 0.0568333087 3.348385e-02
 res.var$contrib
##                  Dim.1      Dim.2       Dim.3       Dim.4        Dim.5
## AccElec      6.9922039  4.8844018  7.17440249 51.26710351 15.157390831
## Pop         17.0598663  4.6594386  4.48479852  0.04351682  0.146357144
## PopRurale   18.7017628  1.9675060  2.92548543  5.35049230  0.237182794
## IDH          0.8374143 19.5361782  8.22521275 13.07531581  4.216779032
## DemElec     15.3747351  6.9078858  1.04210550  0.44105351  1.697997697
## CapRenouv    2.0482844 14.6310082 27.00454565  9.08273790  0.021041614
## EmCO2       15.7801781  6.2159969  3.72196775  0.83561784  0.010891341
## TempAnn      3.5305027 11.4363498  0.02837758  1.91890101 72.236184885
## AidEnerg    14.1030593  0.0664303 22.91584592  8.24860435  0.002514276
## TxChom       1.3289445 13.6897825 22.45015101  0.61490720  0.086363325
## CroisPopAnn  4.2430485 16.0050218  0.02710742  9.12174975  6.187297061

cercle de correlation entre les variables

fviz_pca_var(res.pca, col.var = "red", repel = TRUE, title = "Cercle de Correlation")

variables descriptives de chaque dimension

res.desc <- dimdesc(res.pca, axes = c(1, 2), proba = 0.05)
print(res.desc)
## $Dim.1
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##           correlation      p.value
## PopRurale   0.9247446 2.999046e-07
## Pop         0.8832189 5.802212e-06
## EmCO2       0.8494474 3.127015e-05
## DemElec     0.8384639 4.964169e-05
## AidEnerg    0.8030401 1.799343e-04
## AccElec    -0.5654414 2.244865e-02
## 
## $Dim.2
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##             correlation      p.value
## IDH           0.8374438 5.172992e-05
## CapRenouv     0.7247245 1.493898e-03
## TxChom        0.7010260 2.482596e-03
## DemElec       0.4979760 4.964528e-02
## TempAnn      -0.6407366 7.488371e-03
## CroisPopAnn  -0.7579909 6.683833e-04

contriution des variables aux axes

fviz_contrib(res.pca,choice="var",axes=1,top=13)

fviz_contrib(res.pca,choice="var",axes=2,top=13)

fviz_contrib(res.pca,choice="var",axes=1:2,top=13)

Ce graphique montre comment chaque variable contribue à la formation des deux premiers axes (Dim1 et Dim2). Les variables proches des bords du cercle ont une contribution plus importante, ce qui indique leur rôle déterminant dans la structure des données.

resultats ACP des individus

res.ind <- get_pca_ind(res.pca)
res.ind$coord
##                    Dim.1      Dim.2       Dim.3      Dim.4       Dim.5
## Benin          0.1844009 -1.7119994  0.27878437 -0.5849426  0.03663867
## Burkina Faso   0.7771764 -1.4318994  0.01938802 -0.3054283  0.63740559
## Cape Verde    -3.9384742  4.8438797 -0.22634037  0.7014001  0.13613014
## Cote d'Ivoire  0.9690422  0.2521072  1.89022107  0.3735623 -0.23432430
## Gambia        -0.8721102 -0.9487121 -1.24853878 -1.3635050  0.31039575
## Ghana          0.7614292  1.7725168  2.30119546 -0.3589616  0.81888131
## Guinea        -1.1129719  0.1986724 -0.38734734  0.8842515 -0.42055167
## Guinea-Bissau -1.2155513 -0.9272540 -1.11535139 -0.4650771  0.74988552
## Liberia       -1.2106785 -0.2102248  0.17163447 -0.7296184 -1.07836628
## Mali           0.3632620 -1.2163598 -0.72663020  1.8124416  0.72405503
## Mauritania    -1.2070362  0.8409085 -0.01953741 -0.6663842 -1.59429860
## Niger          1.5036731 -2.9961205  0.34156957  1.1222794 -1.08255410
## Nigeria        6.6358164  3.3788820 -1.32985962 -0.1730782 -0.18508694
## Senegal        0.5214135 -0.9028211  0.86642216 -0.5613848  0.73931829
## Sierra Leone  -0.9023462 -0.6999599 -0.38147522  0.1454428 -0.32281524
## Togo          -1.2570453 -0.2416156 -0.43413477  0.1690026  0.76528685
res.ind$cos2
##                     Dim.1       Dim.2        Dim.3        Dim.4        Dim.5
## Benin         0.008155299 0.702944573 1.864021e-02 0.0820616855 0.0003219536
## Burkina Faso  0.127719559 0.433554027 7.948498e-05 0.0197258968 0.0859112298
## Cape Verde    0.390483455 0.590654256 1.289647e-03 0.0123844931 0.0004665038
## Cote d'Ivoire 0.183991539 0.012453252 7.000638e-01 0.0273425174 0.0107583855
## Gambia        0.118194659 0.139869801 2.422474e-01 0.2889139958 0.0149722340
## Ghana         0.057311163 0.310570959 5.234644e-01 0.0127372617 0.0662860373
## Guinea        0.416026302 0.013256454 5.039107e-02 0.2626056391 0.0594006430
## Guinea-Bissau 0.329603659 0.191797491 2.775038e-01 0.0482497850 0.1254398094
## Liberia       0.329327345 0.009929743 6.618798e-03 0.1196083903 0.2612779265
## Mali          0.019068001 0.213790918 7.629429e-02 0.4746715549 0.0757544758
## Mauritania    0.228667702 0.110984348 5.990987e-05 0.0696969330 0.3989363043
## Niger         0.162553789 0.645370007 8.387810e-03 0.0905507906 0.0842537904
## Nigeria       0.767629380 0.199025586 3.083007e-02 0.0005222132 0.0005971926
## Senegal       0.091680216 0.274861826 2.531455e-01 0.1062753137 0.1843206384
## Sierra Leone  0.395866291 0.238203684 7.075136e-02 0.0102845757 0.0506652478
## Togo          0.374086626 0.013820386 4.461896e-02 0.0067617200 0.1386496634
res.ind$contrib
##                     Dim.1       Dim.2       Dim.3      Dim.4       Dim.5
## Benin          0.04647773  5.10288199  0.50212472  3.4322726  0.01550333
## Burkina Faso   0.82557801  3.56971338  0.00242852  0.9357800  4.69220829
## Cape Verde    21.20190674 40.85027962  0.33097777  4.9349963  0.21401989
## Cote d'Ivoire  1.28352502  0.11065695 23.08341035  1.3998493  0.63413281
## Gambia         1.03958902  1.56702961 10.07114491 18.6495659  1.11269741
## Ghana          0.79246118  5.47002147 34.21226171  1.2925613  7.74439450
## Guinea         1.69311822  0.06872002  0.96933954  7.8434450  2.04260447
## Guinea-Bissau  2.01960058  1.49694484  8.03707821  2.1697273  6.49434694
## Liberia        2.00344115  0.07694426  0.19031972  5.3400676 13.43006624
## Mali           0.18036777  2.57592039  3.41115660 32.9521149  6.05464529
## Mauritania     1.99140463  1.23113545  0.00246609  4.4545585 29.35518917
## Niger          3.09047891 15.62884481  0.75376005 12.6344764 13.53457963
## Nigeria       60.18768484 19.87716190 11.42579336  0.3004970  0.39563720
## Senegal        0.37160665  1.41909573  4.84991211  3.1613790  6.31260266
## Sierra Leone   1.11292351  0.85301110  0.94017228  0.2121971  1.20352081
## Togo           2.15983603  0.10163848  1.21765404  0.2865115  6.76385137

creation des graphiques pour individus pour voir des ressemblances entre individus

fviz_contrib(res.pca,choice="ind",axes=1,top=13)

fviz_contrib(res.pca,choice="ind",axes=2,top=13)

fviz_contrib(res.pca,choice="ind",axes=1:2,top=13)

graphique de contribution

fviz_pca_ind(res.pca,col.ind="cos2",gradient.cols=c("blue","green","red"),repel = T,title="contribution des individus aux axes")

qualité et contribution des individus sur le meme plan

fviz_pca_biplot(res.pca,repel=TRUE)

Ce graphique combine la contribution des variables (flèches) et les individus (pays) sur un même plan. Les flèches indiquent la direction et l’importance des variables, tandis que les points représentent les pays. Les pays proches de la direction des flèches (par exemple, Nigeria EmCO2avec ou Cape Verde avec CapRenouv ) sont ceux où ces variables jouent un rôle prépondérant.

Classification hierachique

res.cah <- HCPC(res.pca, nb.clust = -1, consol =FALSE, graph = FALSE) 
plot.HCPC(res.cah, choice='tree', title ='Hierarchical tree')

plot.HCPC(res.cah,choice='map',draw.tree = FALSE,title='Factor map')

plot.HCPC(res.cah, choice = '3D.map', ind.names = TRUE,centers.plot = FALSE, angle = 60, title ='Hierarchical tree on the factor map')

Analyse et Interpretation

Classe 1: Représente un pays avec des caractéristiques uniques, ayant une faible population et des besoins énergétiques spécifiques, pouvant bénéficier de solutions énergétiques autonomes.

Classe 2:  Inclut des pays avec des défis économiques et un accès limité à l’énergie, souvent dans des zones rurales, où des mini-réseaux solaires décentralisés seraient utiles pour améliorer l’accès à l’énergie.

Classe 3: Comprend des pays avec un niveau de développement intermédiaire et des besoins énergétiques modérés, pour lesquels des projets solaires de taille moyenne et des initiatives locales seraient appropriés.

À partir de cette classification et des principales caractéristiques de chaque classe, nous pouvons affirmer sans l’ombre d’un doute que à partir de cette classification, nous pouvons affirmer sans l’ombre d’un doute que les pays d’Afrique de l’Ouest présentent des besoins énergétiques variés qui nécessitent des stratégies spécifiques d’intégration de l’énergie solaire :Les pays à forte demande énergétique  nécessitent de grands projets solaires pour soutenir leur croissance tout en réduisant leurs émissions de CO₂. Les pays de développement intermédiaire et à besoins modérés bénéficieraient davantage de projets solaires de taille moyenne combinés à des initiatives locales pour améliorer leur accès à l’énergie de manière durable. Les pays ayant des besoins spécifiques nécessitent des solutions autonomes adaptées à leurs contextes particuliers.

Les pays à accès limité et à défis économiques majeurs ont besoin de mini-réseaux solaires décentralisés, particulièrement adaptés pour étendre l’accès à l’énergie dans les zones rurales.

Ainsi, la diversité des situations impose une approche personnalisée pour maximiser l’impact de l’énergie solaire, en tenant compte des spécificités socio-économiques et géographiques de chaque groupe.

3.

regression <- lm(AccElec ~ Pop + PopRurale + IDH + DemElec + CapRenouv + EmCO2 + TempAnn + AidEnerg + TxChom + CroisPopAnn, data = data)
print(summary(regression))
## 
## Call:
## lm(formula = AccElec ~ Pop + PopRurale + IDH + DemElec + CapRenouv + 
##     EmCO2 + TempAnn + AidEnerg + TxChom + CroisPopAnn, data = data)
## 
## Residuals:
##         Benin  Burkina Faso    Cape Verde Cote d'Ivoire        Gambia 
##       7868941      -3766909      -1110999        465001     -16269838 
##         Ghana        Guinea Guinea-Bissau       Liberia          Mali 
##       4365828        159865      16906499     -16397426       8387438 
##    Mauritania         Niger       Nigeria       Senegal  Sierra Leone 
##       4519725      -5647125       -176195     -13847377      11417769 
##          Togo 
##       3124804 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -5.357e+08  2.044e+08  -2.621   0.0471 *
## Pop          5.173e+00  2.586e+00   2.001   0.1018  
## PopRurale   -3.481e+00  6.902e+00  -0.504   0.6354  
## IDH          2.844e+08  2.129e+08   1.336   0.2393  
## DemElec     -5.751e+06  3.376e+06  -1.704   0.1492  
## CapRenouv    2.374e+06  1.014e+06   2.342   0.0662 .
## EmCO2       -6.717e+03  3.225e+03  -2.083   0.0917 .
## TempAnn      1.410e+07  6.150e+06   2.293   0.0704 .
## AidEnerg    -2.726e-01  1.153e-01  -2.365   0.0643 .
## TxChom      -2.417e+06  1.845e+06  -1.310   0.2472  
## CroisPopAnn  1.038e+07  1.476e+07   0.703   0.5132  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 16560000 on 5 degrees of freedom
## Multiple R-squared:  0.8806, Adjusted R-squared:  0.6417 
## F-statistic: 3.686 on 10 and 5 DF,  p-value: 0.08136
 plot(regression)

## Warning in sqrt(crit * p * (1 - hh)/hh): Production de NaN
## Warning in sqrt(crit * p * (1 - hh)/hh): Production de NaN

print(predict(regression))
##         Benin  Burkina Faso    Cape Verde Cote d'Ivoire        Gambia 
##    -3770347.7     5613636.7    94857954.7     6522832.4    16332072.2 
##         Ghana        Guinea Guinea-Bissau       Liberia          Mali 
##     4178228.9    44585557.1    16467974.5    19153401.5    42256628.3 
##    Mauritania         Niger       Nigeria       Senegal  Sierra Leone 
##    -4519679.2     7519315.6      176250.4    13847441.3    14892915.2 
##          Togo 
##    51002794.2
library(rsconnect)
## Warning: le package 'rsconnect' a été compilé avec la version R 4.4.2
## 
## Attachement du package : 'rsconnect'
## L'objet suivant est masqué depuis 'package:shiny':
## 
##     serverInfo
rmarkdown::find_external_resources("Rmarkdown.Rmd")
##                           path explicit   web
## 1 images/téléchargement-02.jpg    FALSE  TRUE
## 2                 Data_ACP.csv    FALSE FALSE
## 3                Rmarkdown.Rmd    FALSE FALSE