Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

117 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Typing SVG


License R Afrobarometer ENSAE

A propos

Ce projet, realise dans le cadre de la formation ISE (Ingenieurs Statisticiens Economistes) a l'ENSAE Dakar, fournit un pipeline reproductible et scalable de traitement des donnees Afrobarometer Senegal.

Il produit deux tables analytiques structurees (individus et menages), des estimations ponderees avec intervalles de confiance, des indicateurs composites de bien-etre et de vulnerabilite, ainsi qu'un rapport QAQC interactif en HTML.

Schema du pipeline

flowchart TD
    RAW[(πŸ“ input/base.dta\nBase brute Afrobarometer)]
    MAP[(πŸ“Š variables_mapping.xlsx\nMapping variables et modalites)]

    subgraph CONFIG ["βš™οΈ Configuration"]
        C[config.R\nResolution des noms de variables\nParametres round et seuils QAQC]
    end

    MAP --> C
    RAW --> STEP1

    subgraph STEP1 ["01 - Import"]
        I1[Lecture .dta / .sav / .csv]
        I2[Harmonisation noms snake_case]
        I3[Recodage non-reponses en NA]
        I4[Detection outliers IQR x3]
        I1 --> I2 --> I3 --> I4
    end

    C --> STEP1

    STEP1 --> STEP2
    STEP1 --> STEP3

    subgraph STEP2 ["02 - Table individus"]
        T1[Selection et renommage des variables]
        T2[Classification ISIC Rev 4]
        T3[Score d'actifs composite]
        T1 --> T2 --> T3
    end

    subgraph STEP3 ["03 - Table menages"]
        M1[Variables geographiques et services]
        M2[Privations conditions de vie]
        M3[Indice de privation 0-5]
        M1 --> M2 --> M3
    end

    STEP2 --> STEP4
    STEP3 --> STEP4

    subgraph STEP4 ["04 - Controle qualite QAQC"]
        Q1[Taux de NA par variable]
        Q2[Controles unicite et coherence]
        Q3[Estimations primaires]
        Q4[Rapport HTML interactif]
        Q1 --> Q2 --> Q3 --> Q4
    end

    STEP4 --> STEP5

    subgraph STEP5 ["05 - Ponderation"]
        P1[Detection variable de poids WITHINWT]
        P2[Application poids aux deux tables]
        P3[Proportions ponderees + IC 95%]
        P1 --> P2 --> P3
    end

    STEP5 --> STEP6

    subgraph STEP6 ["06 - Analyse thematique"]
        A1[Indice de bien-etre 0-100\nActifs + Services + Privation]
        A2[Segmentation vulnerabilite\n4 segments : Resilient a Tres vulnerable]
        A3[Tableaux croises ponderes\nGenre x Education, Milieu x Emploi]
        A4[Profil regional synthetique]
        A1 --> A2 --> A3 --> A4
    end

    STEP6 --> STEP7
    STEP6 --> STEP8

    subgraph STEP7 ["07 - Export"]
        E1[CSV individus et menages]
        E2[Excel QAQC colore]
        E3[Rapport HTML QAQC]
        E1 & E2 & E3
    end

    subgraph STEP8 ["08 - Cartographie"]
        C1[Chargement shapefile GADM Senegal]
        C2[Jointure regions x indicateurs]
        C3[6 cartes choroplethes\nBien-etre, Privation, Vulnerabilite\nActifs, Urbanisation, Emploi]
        C4[Panneau multi-cartes PNG]
        C1 --> C2 --> C3 --> C4
    end

    STEP7 --> OUT[(πŸ“‚ output/\nTables CSV\nRapport QAQC HTML\nRapport Excel)]
    STEP8 --> MAPS[(πŸ“‚ output/cartes/\n6 cartes PNG\nPanneau complet)]

    style CONFIG fill:#EBF2FA,stroke:#1A3A5C,color:#1A3A5C
    style STEP1  fill:#E8F5E9,stroke:#2E7D32,color:#2E7D32
    style STEP2  fill:#FFF3E0,stroke:#EF6C00,color:#EF6C00
    style STEP3  fill:#FFF3E0,stroke:#EF6C00,color:#EF6C00
    style STEP4  fill:#F3E5F5,stroke:#7B1FA2,color:#7B1FA2
    style STEP5  fill:#E0F7FA,stroke:#00838F,color:#00838F
    style STEP6  fill:#FCE4EC,stroke:#AD1457,color:#AD1457
    style STEP7  fill:#FBE9E7,stroke:#BF360C,color:#BF360C
    style STEP8  fill:#F1F8E9,stroke:#558B2F,color:#33691E
Loading

Structure du projet

SEN-AFROBAROMETER-PIPELINE-ENSAE/
|
+-- main.R                        <- Point d'entree unique du pipeline (8 etapes)
+-- install_packages.R            <- Script d'installation des dependances
|
+-- input/
|   +-- base.dta                  <- Base brute Afrobarometer (a deposer ici)
|   +-- variables_mapping.xlsx    <- Mapping variables et modalites (editable par round)
|
+-- output/                       <- Generes automatiquement a l'execution
|   +-- qaqc/
|   +-- cartes/                   <- Cartes PNG generees par 08_cartographie.R
|
+-- R/
    +-- config.R                  <- Lit le mapping Excel, configure le pipeline
    +-- utils.R                   <- Fonctions utilitaires partagees
    +-- 01_import.R               <- Import, nettoyage, detection outliers
    +-- 02_individus.R            <- Table individus consolidee
    +-- 03_menages.R              <- Table menages consolidee
    +-- 04_qaqc.R                 <- Controle qualite et estimations primaires
    +-- 05_ponderation.R          <- Poids d'enquete et estimations ponderees IC 95%
    +-- 06_analyse.R              <- Indices composites, vulnerabilite, tableaux croises
    +-- 07_export.R               <- Export CSV / Excel / HTML
    +-- 08_cartographie.R         <- Cartes choroplethes par region (sf + ggplot2)
    +-- qaqc_report.Rmd           <- Template rapport QAQC HTML

Demarrage rapide

Etape 1 - Installer les packages R

Lancer le script d'installation fourni (gere les dependances systeme de sf) :

source("install_packages.R")
# ou en ligne de commande
Rscript install_packages.R

Le script installe automatiquement les 3 groupes de packages, verifie les dependances systeme GDAL/GEOS/PROJ necessaires pour la cartographie, et affiche un bilan clair. Les packages de cartographie (sf, geodata, patchwork) sont optionnels : si leur installation echoue, le pipeline continue sans l'etape 08.

Linux / WSL : si sf echoue, installer d'abord les libs systeme :

sudo apt-get install -y libgdal-dev libgeos-dev libproj-dev

puis relancer install_packages.R.

Etape 2 - Deposer la base brute

input/base.dta        <- formats acceptes : .dta / .sav / .csv

Etape 3 - Lancer le pipeline

source("main.R")
# ou en ligne de commande
Rscript main.R

Resultats generes

output/
+-- table_individus_R9_2022.csv          <- 1 200 individus x variables enrichies
+-- table_menages_R9_2022.csv            <- 1 200 menages x conditions de vie
+-- qaqc/
|   +-- QAQC_Afrobarometer_R9_2022.html <- Rapport interactif complet
|   +-- QAQC_Afrobarometer_R9_2022.xlsx <- Rapport Excel colorise
+-- cartes/
    +-- carte_bien_etre.png              <- Indice de bien-etre par region
    +-- carte_privation.png              <- Indice de privation par region
    +-- carte_vulnerabilite.png          <- Taux de vulnerabilite severe
    +-- carte_actifs.png                 <- Score d'actifs par region
    +-- carte_urbanisation.png           <- Taux d'urbanisation
    +-- carte_emploi.png                 <- Precarite de l'emploi
    +-- carte_panneau_complet.png        <- Toutes les cartes assemblees

Variables produites

πŸ“‹ Table individus
Groupe Variables
πŸ‘€ Demographiques Age, genre, niveau d'instruction, langue du domicile
πŸ—ΊοΈ Geographiques Region (14), departement, milieu urbain/rural, commune
πŸ’Ό Emploi Statut d'emploi, secteur ISIC Rev 4, activite principale et secondaire
🏠 Biens possedes Radio, TV, vehicule, ordinateur, telephone, internet, score d'actifs
πŸ’§ Services sociaux Source d'eau, assainissement, acces et frequence de l'electricite
βš–οΈ Poids d'enquete Variable poids issue de WITHINWT (ou poids unitaire si absente)
πŸ“Š Indices calcules Indice de bien-etre (0-100), score de vulnerabilite, segment de vulnerabilite
πŸ“‹ Table menages
Groupe Variables
πŸ‘€ Profil repondant Memes variables demographiques
πŸ—ΊοΈ Localisation Region, departement, milieu, commune, arrondissement
πŸ’§ Services zone Eau, assainissement, electricite dans la zone
πŸ“‰ Conditions de vie Privations alimentation, eau, soins, combustible, revenus
πŸ“Š Indice de privation Score composite 0-5 et groupe de privation
βš–οΈ Poids d'enquete Variable poids issue de WITHINWT
πŸ“Š Sorties analytiques avancees
Sortie Description
Estimations ponderees Proportions + IC 95% pour genre, region, emploi, ISIC
Indice de bien-etre Score composite 0-100 (actifs + services + privation)
Segmentation vulnerabilite 4 segments : Resilient, Vulnerable modere, Vulnerable, Tres vulnerable
Tableaux croises ponderes Genre x Education, Milieu x Emploi, Region x Vulnerabilite
Profil regional Tableau synthetique par region (privation, emploi, actifs, urbanisation)
Cartes choroplethes 6 cartes PNG + panneau assemble (fond GADM, geom_sf, patchwork)

Rapport QAQC

Le rapport HTML genere automatiquement comprend :

Section Contenu
πŸ“ Taille des bases Base brute vs bases traitees - observations et variables
πŸ“Š Indicateurs cles Cartes metriques colorisees (vert / orange / rouge)
πŸ” Valeurs manquantes Taux de NA par variable, seuils alerte (>20%) et critique (>50%)
⚠️ Valeurs aberrantes Detection IQR x3 sur variables numeriques
βœ… Controles coherence Unicite identifiants, plages d'age
πŸ“ˆ Estimations primaires Distributions genre, education, region, emploi, ISIC, privation

Changer de round sans toucher au code

Le pipeline est scalable par conception grace au fichier input/variables_mapping.xlsx.

+-------------------------------------------------------------+
|  WORKFLOW NOUVEAU ROUND                                     |
|                                                             |
|  1. Remplacer input/base.dta  par la nouvelle base          |
|                                                             |
|  2. Dans R/config.R, mettre a jour :                        |
|     ROUND <- list(numero = 10, annee = 2025, pays = "SEN")  |
|     FICHIER_BRUT <- "base_r10.dta"                          |
|                                                             |
|  3. Dans variables_mapping.xlsx, remplir les colonnes 🟑 :  |
|     . Feuille "Variables"  -> nouveaux noms de colonnes     |
|     . Feuille "Modalites"  -> nouveaux libellesde codes     |
|                                                             |
|  4. Relancer main.R  βœ“                                      |
+-------------------------------------------------------------+

Les cellules laissees vides conservent automatiquement les noms du round precedent.

Source des donnees

Afrobarometer est un programme panafricain de recherche par enquetes mesurant les attitudes citoyennes sur la democratie, la gouvernance et les conditions de vie.

Round 9 Senegal - 2022 : 1 200 repondants, 1 487 variables.

Equipe

Nom Formation
Ibrahim ADAM ALASSANE ISE - ENSAE Dakar
Moussa DIAKITE ISE - ENSAE Dakar
Fallou NGOM ISE - ENSAE Dakar
Cheikh Sadibou NGOM ISE - ENSAE Dakar
Gnalen SANGARE ISE - ENSAE Dakar
Seman Giovanni Jocelyn GADO ISE - ENSAE Dakar
Sie Rachid TRAORE ISE - ENSAE Dakar

Superviseur : M. MBodj - ENSAE Dakar

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages