Traitement et visualisation de données avec Python — Exemple du Covid-19 au Bénin et dans ses pays frontaliers

Bola BALOGOUN
TakwimuLab
Published in
5 min readApr 15, 2020

L’analyse des données est une des disciplines les plus prisées de nos jours. Outil stratégique au sein des organisations, elle permet entre autres de mieux comprendre des événements qui se produisent avec les facteurs qui les favorisent, ou encore de mesurer l’impact d’une opération ou d’une politique grâce à des indicateurs de performance. Dans cet article, nous essayons de mieux comprendre l’évolution de la pandémie du nouveau coronavirus Covid-19 au Bénin et dans ses pays frontaliers.

Au vu de la diversité des sources, les formats des données diffèrent souvent les uns des autres, et ne sont point toujours compréhensibles ni utiles à l’état brut. À cet effet, le prétraitement s’avère être une étape fondamentale de toute exploration de données, et de sa réussite dépend considérablement la qualité des résultats de l’analyse proprement dite. Dans notre exemple, les données sont disponibles dans un format unique plutôt facile à traiter : table structurée. Toutefois, nous effectuerons quelques transformations et filtres afin de nous focaliser sur l’essentiel et d’en obtenir un format compréhensible et peu fastidieux à analyser.

Les colonnes Province/State, Country/Region, Lat et Long ne nous seront pas utiles dans ce travail. Aussi, afin de faire une observation en fonction de la date, il nous faut transformer notre table en séries temporelles. Cela consistera, entre autres tâches, à transposer la table afin d’avoir les dates en index (noms de lignes) et non en nom de colonnes.

Les premières observations sont nulles. On vérifiera la date à laquelle l’un des 5 pays a enregistré son premier cas de covid-19, puis nous supprimerons les lignes précédentes car elles ne nous sont pas d’une grande utilité pour l’instant.

Les trois tables de données sont à présent assez bien structurées pour une première visualisation de l’apparition des premiers cas (infection, guérison, décès) et de l’évolution des nombres cumulés en fonction des dates.

NB : le code ci-dessous permet de reproduire une visualisation statique. En bas de l’article, vous retrouverez le lien vers un dépôt détaillé qui contient un code pour de la visualisation interactive.

Evolution du nombre cumulé de contamination confirmée
Evolution du nombre cumulé de guérison confirmée
Evolution du nombre cumulé de décès confirmée

Nous ne disposons pas de données sur le nombre de personnes testées par jour dans les pays ciblés. Nous pouvons cependant procéder à une observation de l’évolution du virus dans chacun des pays (Ratios : cas/population, guérison/cas, décès/cas) à partir du jour où chacun d’eux a enregistré son premier cas d’infection au Covid-19. On passera ainsi d’une série temporelle avec les dates en index, à une série toujours chronologique mais cette fois-ci avec plutôt le nombre de jours de Covid-19 dans le pays en index. Cela peut s’avérer aussi utile pour mesurer l’efficacité des mesures barrières adoptées dans chacun desdits pays.

Une fois la transformation effectuée, le résultat final est une nouvelle table de données unique qui comporte les différentes informations (nombre de cas, nombre de guérisons, nombre de décès, ratio cas par million d’habitants, ratio guérison par centaine de malades, et ratios décès par centaine de malades) des 5 pays à la fois. Il est souhaitable à ce niveau de présenter les visualisations deux à deux (nombre — ratios) sur une même page du tableau de bord.

NB : Les données de la population ont été extraites du site World Meters grâce à la technique web scraping. Vous pouvez consulter le code dans le dépôt final.

Le Bénin s’en sort assez bien avec le plus faible nombre de contaminations au 30e jour du Covid-19 sur son territoire. Mais à cette même position, le Nigeria était dans une meilleure posture en terme de taux de contamination, d’ailleurs, toujours en dessous de celui du Bénin et des autres pays même après 47 jours de Covid-19 chez le géant de l’Afrique occidentale. Pendant que la deuxième mesure peut permettre dans un sens, de défendre l’efficacité des politiques nigérianes pour freiner la contamination de nouvelles personnes (par million d’habitants) dans ce pays largement peuplé que les autres, dans un autre, l’on peut choisir de se limiter au nombre de contaminations au vu de la dangerosité du virus et pour des raisons de respect de la vie humaine — peu importe le ratio. Le choix de la mesure d’analyse dépend de l’objectif visé.

Le Bénin est le seul des 5 pays ayant présenté un taux de guérison supérieur à 50 %, 30 jours après l’enregistrement du premier cas de Covid-19 sur son territoire (en dehors du Niger actuellement à 26 jours de coronavirus). Il est suivi du Togo dans cette lancée plutôt rassurante. En dehors du taux, à cette même position, le voisin nigérian comptait aussi moins de guérisons que le Bénin malgré son nombre de contaminations déjà élevé. On peut supposer ici que soit les malades au Bénin ont un système immunitaire naturellement plus fort, ou que la prise en charge sanitaire y est plus performante.

Deuxième pays avec le plus de décès, juste derrière le Burkina Faso, le Niger après avoir eu le plus fort taux de mortalité au 6e jour du virus sur son territoire, détient à présent le plus faible taux juste derrière le Bénin et le Nigeria. Notons toutefois qu’au 26e jour de la pandémie sur son territoire, le Nigeria s’en sortait mieux avec un taux de mortalité plus faible que celui du Niger.

NB : Cette analyse n’est pas exhaustive. Il s’agit d’un cas pratique d’application de notions basiques en Analyse de données avec Python. Le prochain article portera sur l’usage d’algorithme de machine learning pour de la modélisation et de l’analyse prédictive. En attendant, retrouvez le dépôt détaillé et complet de cette application sur GitHub avec des visualisations interactives sur NbViewer de Jupyter.

--

--

Bola BALOGOUN
TakwimuLab

Observer - Apprendre - Comprendre - Partager ou non.