title: “Analyse de l’accès à l’électricité en Afrique subsaharienne”
author: “KOUAME Ange Anselme, NGAMGOU WEMBE Carelle, OUEDRAOGO Pingdwendé Rodolphe”
output: html_document —
L’Analyse en Composantes Principales (ACP) est une méthode statistique multivariée utilisée pour analyser et simplifier des ensembles de données composés de nombreuses variables quantitatives. Elle est largement utilisée dans des domaines comme la biostatistique, le marketing et la sociologie pour extraire les informations clés contenues dans des bases de données complexes.
L’ACP permet de réduire la dimensionnalité des données en projetant les observations d’un espace à plusieurs dimensions vers un espace de dimensions inférieures, tout en conservant un maximum d’information. Cette réduction se fait en ordonnant les nouvelles dimensions, appelées axes principaux ou facteurs, de manière à expliquer la variance des données. Si les deux ou trois premiers axes expliquent une grande partie de la variance, il devient alors possible de visualiser les données dans un graphique à 2 ou 3 dimensions, facilitant ainsi l’interprétation des résultats.
Les packages suivants seront utilisés dans la suite de l’analyse.
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.2
library(FactoMineR)
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(Factoshiny)
## Loading required package: shiny
## Loading required package: FactoInvestigate
library(ggrepel)
library(corrplot)
## corrplot 0.94 loaded
library(ggplot2)
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:psych':
##
## logit
#Importation et préparation des données
RTI_DONNEES_A_ANALYSER <- read_excel("C:/Users/HP/Desktop/RStudio_GEE/RTI PROJET/RTI DONNEES A ANALYSER.xlsx",
col_types = c("text", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric"))
View(RTI_DONNEES_A_ANALYSER)
data <- RTI_DONNEES_A_ANALYSER
str(data)
## tibble [16 × 13] (S3: tbl_df/tbl/data.frame)
## $ Pays : chr [1:16] "Benin" "Burkina Faso" "Cabo Verde" "Côte d'Ivoire" ...
## $ Accès_élec_rural : num [1:16] 17.99 4.75 96.86 45.19 31.23 ...
## $ Accès_élec_urb : num [1:16] 67 67.6 94.9 94.9 82.6 ...
## $ Prod_élec : num [1:16] 1.13 0.76 0.42 11.35 0.5 ...
## $ Demd_élec : num [1:16] 1.82 2.28 0.42 10.8 0.5 ...
## $ Taux_prod_enr : num [1:16] 0.02 0.23 0.07 2.71 0 7.68 2.02 0 0.53 1.09 ...
## $ Taux_prod_fossil : num [1:16] 98.2 69.7 83.3 76.1 100 ...
## $ PIB_habt : num [1:16] 3322 2176 6357 5316 2077 ...
## $ Taux_croiss_pop : num [1:16] 2.556 2.339 0.691 2.475 2.341 ...
## $ Taux_pop_accès_élec : num [1:16] 42 19 95.5 71.1 63.7 ...
## $ Coût_moy_elct : num [1:16] 0.195 0.218 0.236 0.103 0.2 0.125 0.033 0.323 0.299 0.375 ...
## $ Invest_infrast_énergie: num [1:16] 1.58e+07 1.12e+08 8.00e+07 4.16e+08 8.23e+07 ...
## $ Impo_énergie : num [1:16] 0.69 1.52 0 -0.55 0 -1.69 0 0 0 0.16 ...
summary(data)
## Pays Accès_élec_rural Accès_élec_urb Prod_élec
## Length:16 Min. : 3.000 Min. :49.51 Min. : 0.0800
## Class :character 1st Qu.: 8.826 1st Qu.:66.69 1st Qu.: 0.6875
## Mode :character Median :19.762 Median :89.45 Median : 0.9900
## Mean :27.804 Mean :80.68 Mean : 5.5950
## 3rd Qu.:34.278 3rd Qu.:94.88 3rd Qu.: 4.1175
## Max. :96.856 Max. :96.87 Max. :36.0600
## Demd_élec Taux_prod_enr Taux_prod_fossil PIB_habt
## Min. : 0.080 Min. :0.000 Min. : 5.00 Min. :1187
## 1st Qu.: 0.710 1st Qu.:0.065 1st Qu.: 66.30 1st Qu.:2015
## Median : 1.845 Median :0.365 Median : 75.12 Median :2408
## Mean : 5.754 Mean :1.542 Mean : 70.21 Mean :3200
## 3rd Qu.: 4.315 3rd Qu.:1.518 3rd Qu.: 85.83 3rd Qu.:4978
## Max. :36.060 Max. :8.010 Max. :100.00 Max. :6357
## Taux_croiss_pop Taux_pop_accès_élec Coût_moy_elct Invest_infrast_énergie
## Min. :0.691 Min. :18.60 Min. :0.0330 Min. :1.442e+07
## 1st Qu.:2.192 1st Qu.:34.28 1st Qu.:0.1273 1st Qu.:5.200e+07
## Median :2.351 Median :50.54 Median :0.1720 Median :8.117e+07
## Mean :2.339 Mean :51.27 Mean :0.1862 Mean :2.378e+08
## 3rd Qu.:2.506 3rd Qu.:64.77 3rd Qu.:0.2225 3rd Qu.:2.069e+08
## Max. :3.220 Max. :95.52 Max. :0.3750 Max. :1.533e+09
## Impo_énergie
## Min. :-1.6900
## 1st Qu.: 0.0000
## Median : 0.0000
## Mean : 0.1594
## 3rd Qu.: 0.4050
## Max. : 1.5200
#Matrice de corrélation
cor_matrix <- cor(data[, -1], use = "complete.obs")
corrplot(cor_matrix,
method = "color",
col = colorRampPalette(c("blue", "white", "red"))(200),
type = "upper",
tl.col = "black",
tl.srt = 45,
addCoef.col = "black",
number.cex = 0.5,
cl.cex = 0.7,
tl.cex = 0.7,
mar = c(0, 0, 2, 0),
diag = FALSE,
title = "Matrice de Corrélation",
addshade = "positive"
)
Les principales observations révèlent une forte corrélation positive entre la production et la demande d’électricité, ainsi qu’entre l’accès à l’électricité en milieu rural et urbain, tandis que des corrélations négatives apparaissent entre l’investissement en infrastructures énergétiques et le coût moyen de l’électricité, ainsi qu’entre le PIB par habitant et la production d’énergie fossile et renouvelable, tandis que des variables comme le taux de croissance de la population montrent des corrélations faibles ou non significatives avec les variables énergétiques.
#Tests d’adéquation pour l’ACP
n <- nrow(data)
cortest.bartlett(cor_matrix, n = n)
## $chisq
## [1] 510.9808
##
## $p.value
## [1] 5.195024e-70
##
## $df
## [1] 66
#Analyse en Composantes Principales (ACP)
data <- as.data.frame(data)
pays <- c("Benin", "Burkina Faso", "Cape Verde", "Cote d'Ivoire", "Gambia", "Ghana", "Guinea",
"Guinea-Bissau", "Liberia", "Mali", "Mauritania", "Niger", "Nigeria", "Senegal",
"Sierra Leone", "Togo")
rownames(data) <- pays
resultats_acp <- PCA(X = data[, -1],
scale.unit = TRUE,
quanti.sup = c(10, 11, 12),
ind.sup = c(3),
graph = FALSE)
print(resultats_acp$var)
## $coord
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Accès_élec_rural 0.8180185 0.1818202 -0.38183581 -0.24001940 0.146752813
## Accès_élec_urb 0.6770408 0.5646501 -0.16800951 0.33332383 0.118882827
## Prod_élec 0.8972007 -0.2678076 0.33241887 0.03816650 0.085577220
## Demd_élec 0.8785268 -0.2646986 0.37576245 0.03933819 0.093734935
## Taux_prod_enr 0.9201949 -0.2895895 0.16492119 0.07738831 0.109525517
## Taux_prod_fossil 0.1477429 0.6520103 0.41496689 -0.61286617 -0.027977315
## PIB_habt 0.8300435 0.1472967 0.06110826 0.16676235 -0.501645174
## Taux_croiss_pop -0.4171328 0.6803181 0.35476248 0.42438655 0.110811429
## Taux_pop_accès_élec 0.8500561 0.3217055 -0.37417915 -0.04728672 0.007405863
##
## $cor
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Accès_élec_rural 0.8180185 0.1818202 -0.38183581 -0.24001940 0.146752813
## Accès_élec_urb 0.6770408 0.5646501 -0.16800951 0.33332383 0.118882827
## Prod_élec 0.8972007 -0.2678076 0.33241887 0.03816650 0.085577220
## Demd_élec 0.8785268 -0.2646986 0.37576245 0.03933819 0.093734935
## Taux_prod_enr 0.9201949 -0.2895895 0.16492119 0.07738831 0.109525517
## Taux_prod_fossil 0.1477429 0.6520103 0.41496689 -0.61286617 -0.027977315
## PIB_habt 0.8300435 0.1472967 0.06110826 0.16676235 -0.501645174
## Taux_croiss_pop -0.4171328 0.6803181 0.35476248 0.42438655 0.110811429
## Taux_pop_accès_élec 0.8500561 0.3217055 -0.37417915 -0.04728672 0.007405863
##
## $cos2
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Accès_élec_rural 0.66915430 0.03305858 0.14579859 0.057609311 2.153639e-02
## Accès_élec_urb 0.45838419 0.31882976 0.02822719 0.111104776 1.413313e-02
## Prod_élec 0.80496913 0.07172092 0.11050231 0.001456682 7.323461e-03
## Demd_élec 0.77180926 0.07006533 0.14119742 0.001547493 8.786238e-03
## Taux_prod_enr 0.84675873 0.08386209 0.02719900 0.005988950 1.199584e-02
## Taux_prod_fossil 0.02182796 0.42511750 0.17219752 0.375604948 7.827302e-04
## PIB_habt 0.68897225 0.02169632 0.00373422 0.027809682 2.516479e-01
## Taux_croiss_pop 0.17399976 0.46283275 0.12585642 0.180103941 1.227917e-02
## Taux_pop_accès_élec 0.72259539 0.10349446 0.14001004 0.002236034 5.484681e-05
##
## $contrib
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Accès_élec_rural 12.9719504 2.078270 16.2953935 7.5458012 6.55518625
## Accès_élec_urb 8.8860477 20.043643 3.1548540 14.5527613 4.30180200
## Prod_élec 15.6048010 4.508828 12.3504531 0.1907996 2.22909470
## Demd_élec 14.9619775 4.404747 15.7811376 0.2026942 2.67433084
## Taux_prod_enr 16.4149171 5.272098 3.0399362 0.7844466 3.65126024
## Taux_prod_fossil 0.4231478 26.725558 19.2459089 49.1976075 0.23824524
## PIB_habt 13.3561332 1.363967 0.4173606 3.6425767 76.59588593
## Taux_croiss_pop 3.3730878 29.096576 14.0665280 23.5904320 3.73750067
## Taux_pop_accès_élec 14.0079376 6.506312 15.6484280 0.2928809 0.01669412
print(resultats_acp$ind)
## $coord
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Benin -0.9888137 0.6196749 0.5354085 -0.8834044 -0.70231982
## Burkina Faso -1.8875390 -0.7782737 0.5531029 -0.2936205 -0.25670878
## Cote d'Ivoire 2.3158395 0.9415065 -0.4123286 0.2141739 -0.63242778
## Gambia -0.2920746 1.0950659 -0.7100700 -1.2872969 0.28542729
## Ghana 5.0753062 -0.5781655 -1.0072583 -0.4526971 0.12779134
## Guinea -0.2593137 -0.3462912 -0.8339514 1.2380324 0.32978227
## Guinea-Bissau -1.5821835 -0.1913146 0.2800234 -1.7011861 -0.16205959
## Liberia -2.1026606 -2.3148530 -0.5274243 -0.2647622 -0.06762409
## Mali -0.5183653 1.4745593 0.1268143 1.2114706 0.88443080
## Mauritania -0.4327872 1.2331338 0.4839778 1.3327876 -1.42586210
## Niger -2.5418411 0.9771236 1.7537225 0.0672451 0.79744428
## Nigeria 4.5846016 -1.6878562 2.1866957 0.1622341 0.24591330
## Senegal 1.1933884 1.1144364 -0.7222043 -0.1717598 0.17043581
## Sierra Leone -2.2797771 -2.3573670 -0.8197446 0.9305056 -0.03004772
## Togo -0.2837798 0.7986209 -0.8867636 -0.1017223 0.43582480
##
## $cos2
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Benin 0.32436263 0.127388320 0.095098208 0.2588934181 1.636333e-01
## Burkina Faso 0.70414317 0.119710945 0.060461792 0.0170389090 1.302419e-02
## Cote d'Ivoire 0.76206676 0.125957120 0.024158115 0.0065179220 5.683266e-02
## Gambia 0.02267549 0.318749433 0.134020514 0.4404801767 2.165509e-02
## Ghana 0.92152914 0.011958837 0.036296631 0.0073316208 5.842348e-04
## Guinea 0.02555723 0.045577016 0.264328804 0.5825416972 4.133497e-02
## Guinea-Bissau 0.44864176 0.006559672 0.014053185 0.5186682334 4.706905e-03
## Liberia 0.43218089 0.523810318 0.027192396 0.0068523458 4.470232e-04
## Mali 0.05634475 0.455938252 0.003372234 0.3077565299 1.640247e-01
## Mauritania 0.03218925 0.261325938 0.040254366 0.3052699201 3.493954e-01
## Niger 0.54558503 0.080624068 0.259709258 0.0003818449 5.369902e-02
## Nigeria 0.72235132 0.097907545 0.164331943 0.0009045437 2.078305e-03
## Senegal 0.42555421 0.371109327 0.155851662 0.0088152463 8.679866e-03
## Sierra Leone 0.41947290 0.448511444 0.054234582 0.0698806793 7.286892e-05
## Togo 0.03261875 0.258336447 0.318507821 0.0041911818 7.693576e-02
##
## $contrib
## Dim.1 Dim.2 Dim.3 Dim.4 Dim.5
## Benin 1.26362062 1.6093640 2.1359484 6.81460311 10.00900152
## Burkina Faso 4.60446974 2.5385826 2.2794612 0.75282512 1.33721847
## Cote d'Ivoire 6.93113999 3.7151228 1.2667976 0.40054792 8.11601399
## Gambia 0.11024920 5.0258210 3.7568393 14.47034347 1.65314858
## Ghana 33.28988125 1.4009767 7.5596558 1.78952114 0.33137806
## Guinea 0.08690377 0.5025849 5.1820520 13.38398457 2.20686376
## Guinea-Bissau 3.23520234 0.1533990 0.5842639 25.27115380 0.53293024
## Liberia 5.71381413 22.4581197 2.0727196 0.61211565 0.09279482
## Mali 0.34726393 9.1127835 0.1198275 12.81584281 15.87262008
## Mauritania 0.24206752 6.3730446 1.7453043 15.51112601 41.25493988
## Niger 8.34996277 4.0015256 22.9161710 0.03948597 12.90391817
## Nigeria 27.16382663 11.9398106 35.6284559 0.22982945 1.22711408
## Senegal 1.84056579 5.2051963 3.8863367 0.25761110 0.58944410
## Sierra Leone 6.71695629 23.2906139 5.0069982 7.56065459 0.01832079
## Togo 0.10407604 2.6730547 5.8591688 0.09035528 3.85429347
##
## $dist
## Benin Burkina Faso Cote d'Ivoire Gambia Ghana
## 1.736197 2.249394 2.652845 1.939615 5.286981
## Guinea Guinea-Bissau Liberia Mali Mauritania
## 1.622066 2.362147 3.198427 2.183782 2.412231
## Niger Nigeria Senegal Sierra Leone Togo
## 3.441257 5.394204 1.829382 3.519982 1.571259
#Visualisation des résultats de l’ACP
fviz_pca_ind(resultats_acp)
fviz_pca_var(resultats_acp, repel = TRUE)
fviz_pca_biplot(resultats_acp, repel = TRUE)
#Valeurs Propres et Scree Plot
eig.val <- get_eigenvalue(resultats_acp)
eig.df <- data.frame(
Dimension = 1:nrow(eig.val),
Variance = eig.val[, 2],
Label = paste0(round(eig.val[, 2], 1), "%")
)
fviz_eig(resultats_acp, addlabels = FALSE, ylim = c(0, max(eig.val[, 2]) + 10)) +
geom_text(
data = eig.df,
aes(
x = Dimension,
y = Variance + 3,
label = Label
),
size = 5,
fontface = "bold",
color = "black"
) +
labs(
title = "Scree plot avec pourcentages",
x = "Dimensions",
y = "Pourcentage de variance expliquée"
) +
theme_minimal()
L’inertie des axes factoriels permet de déterminer quels axes sont significatifs pour l’analyse. Dans cette étude, les deux premiers axes expliquent 74,99% de la variabilité totale, un pourcentage bien supérieur à la référence de 54,13% obtenue par simulation. Le premier axe, qui à lui seul explique 57,32% de la variabilité, est particulièrement dominant. Conformément au critère de Kaiser (valeurs propres > 1), les deux premiers axes ont été retenus, car ils capturent une grande majorité de l’information, bien au-delà du quantile 0,95 des inerties simulées.
#Contribution des Variables aux Composantes
fviz_contrib(resultats_acp, choice = "var", axes = 1, top = 10)
fviz_contrib(resultats_acp, choice = "var", axes = 2, top = 10)
Les variables les plus influentes pour le premier axe (Dim1) sont la production d’électricité, la demande d’électricité et le taux de production d’énergie renouvelable, ce qui permet de distinguer certains pays sur cet axe. Pour le second axe (Dim2), les variables clés sont le taux de croissance de la population et le taux de production d’énergie fossile, permettant de différencier les pays selon leur dynamique démographique et leur dépendance aux énergies fossiles.
#Classification Hiérarchique sur Composantes Principales (HCPC)
resultats_hcpc <- HCPC(resultats_acp, graph = FALSE)
fviz_dend(resultats_hcpc,
cex = 0.7,
palette = "jco",
rect = TRUE,
rect_fill = TRUE,
rect_border = "jco",
labels_track_height = 0.8)
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## ℹ The deprecated feature was likely used in the factoextra package.
## Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
fviz_cluster(resultats_hcpc,
repel = TRUE,
show.clust.cent = TRUE,
palette = "jco",
ggtheme = theme_minimal(),
title = "Représentation des Clustgroupes.")
## Warning: argument title is deprecated; please use main instead.
Les résultats montrent que l’analyse hiérarchique a permis de regrouper les pays en trois clusters principaux. Le premier cluster inclut des pays comme le Nigéria et le Ghana, qui se distinguent par des profils énergétiques et socio-économiques particuliers. Le deuxième cluster regroupe la Mauritanie, le Mali, le Ghana, la Gambie, le Togo, le Sénégal, et la Côte d’Ivoire, qui partagent des caractéristiques similaires. Enfin, le troisième cluster comprend des pays comme la Sierra Leone, le Libéria, le Niger, le Burkina Faso, la Guinée-Bissau, et le Bénin, qui, bien qu’ils aient des profils énergétiques et socio-économiques variés, sont plus proches les uns des autres que des autres groupes.
#Régression Linéaire pour Prédictions
data_filtrée <- subset(data, pays != "Cape Verde")
library(ggplot2)
modele_lm <- lm(Taux_pop_accès_élec ~ PIB_habt + Invest_infrast_énergie, data = data_filtrée)
summary(modele_lm)
##
## Call:
## lm(formula = Taux_pop_accès_élec ~ PIB_habt + Invest_infrast_énergie,
## data = data_filtrée)
##
## Residuals:
## Min 1Q Median 3Q Max
## -21.087 -7.326 -2.160 8.930 24.825
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.089e+01 8.408e+00 2.485 0.0287 *
## PIB_habt 8.184e-03 2.708e-03 3.023 0.0106 *
## Invest_infrast_énergie 1.195e-08 1.038e-08 1.151 0.2721
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 14.31 on 12 degrees of freedom
## Multiple R-squared: 0.5545, Adjusted R-squared: 0.4803
## F-statistic: 7.469 on 2 and 12 DF, p-value: 0.007816
par(mfrow = c(2, 2))
plot(modele_lm)
par(mfrow = c(1, 1))
plot(modele_lm$residuals, main = "Résidus du modèle", xlab = "Index", ylab = "Résidus")
abline(h = 0, col = "red", lty = 2)
correlation_matrix <- cor(data_filtrée[, c("PIB_habt", "Invest_infrast_énergie")])
print("Matrice de corrélation :")
## [1] "Matrice de corrélation :"
print(correlation_matrix)
## PIB_habt Invest_infrast_énergie
## PIB_habt 1.0000000 0.3619101
## Invest_infrast_énergie 0.3619101 1.0000000
nouvelles_donnees <- data.frame(
PIB_habt = c(1500, 2500, 3000),
Invest_infrast_énergie = c(400, 700, 1000)
)
predictions <- predict(modele_lm, newdata = nouvelles_donnees)
print("Prédictions :")
## [1] "Prédictions :"
print(predictions)
## 1 2 3
## 33.16944 41.35385 45.44605
nouvelles_donnees$Taux_Electricite_Predit <- predictions
print("Nouvelles données avec prédictions :")
## [1] "Nouvelles données avec prédictions :"
print(nouvelles_donnees)
## PIB_habt Invest_infrast_énergie Taux_Electricite_Predit
## 1 1500 400 33.16944
## 2 2500 700 41.35385
## 3 3000 1000 45.44605