Représenter graphiquement une série temporelle du PIB



Pour représenter une série temporelle du PIB (comme dans les transparents du chapitre introductif du cours ici) il faut d'abord trouver et télécharger des données. Comme dans le cours, j'utilise le Maddison Project Database qui propose des données sur (très) longues périodes du PIB et de la population pour plus de 160 pays1. Pour télécharger les données, qui sont disponibles sous la forme d'un fichier excel, j'utilise un petit code python~:

import urllib.request as url
MADDISON = 'mpd2020'
MADDISON_PATH = 'https://www.rug.nl/ggdc/historicaldevelopment/maddison/data/'+MADDISON+'.xlsx'
File = url.urlopen(MADDISON_PATH)
data = File.read()
with open('./'+MADDISON+'.xlsx', 'wb') as f:
    f.write(data)

Ce code télécharge un fichier excel depuis le site du Maddison Project Database et l'enregistre localement sur mon disque. Comme je n'aime pas les fichiers excel, je convertis le fichier mdp2020.xlsx en un fichier texte csv (Comma Separated Values) :

import pandas as pd
data = pd.read_excel(MADDISON+'.xlsx', 'Full data', dtype=str, index_col=None)
data.to_csv(MADDISON+'.csv', encoding='utf-8', index=False)

Le fichier fichier mdp2020.csv est sauvé sur le disque. Il s'agit d'un fichier texte (que vous pouvez donc lire avec n'importe quel éditeur de texte ou traiter programmatiquement, par exemple pour construire des graphiques). Le fichier contient un tableau. La première colonne fournit un code pays (en trois lettres), la deuxième colonne donne le nom du pays, la troisième colonne précise l'année, la quatrième colonne donne le PIB par tete (en $ 2011) et la cinquième colonne la population en milliers. Par exemple, entre les lignes 2 et 73 nous avons des observations pour l'Afghanistan de 1820 à 2018. Notez que les années ne sont pas nécessairement consécutives (cela dépend des pays et des périodes) et que nous disposons de plus ou moins de données selon les pays (cela dépend de l'histoire et de la culture du pays, qui est plus ou moins versé dans les statistiques).

Dans le cours, j'ai produit les graphiques en utilisant Matlab qui est un langage de calcul scientifique (les codes utilisés pour obtenir les graphiques du cours sont disponibles ici). Ce logiciel est privatif et payant. Ici je montre comment utiliser Python (et la librairie matplotlib) pour produire ces graphiques. À titre d'exemple, je vais représenter graphiquement l'évolution du PIB réel par tête en France.

Commençons par extraire de data (cet objet est ce que l'on appelle une dataframe et contient toutes les données) les observations correspondant à la France. Vous pouvez afficher les observations pour la France en sélectionnant les lignes qui correspondent à la France de la façon suivante :

data[data["countrycode"]=="FRA"]

On constate que l'extrait contient 711 observations et que le PIB par tête est observé annuellement à partir de 1280 (c'est-à-dire depuis l'époque de Phillipe III dit le Hardi, fils de Saint Louis). La population n'est observée annuellement qu'à partir de 1820. Pour représenter graphiquement cette série temporelle, on utilise la librairie matplotlib (il existe d'autres librairies graphiques qui pourraient éventuellement vous permettre d'obtenir des graphiques plus à votre goût) :

import matplotlib.pyplot as plt
# Sélection des données pour la France à partir de 1280
DATA = data[(data["countrycode"]=="FRA") & (data["year"].astype(int)>=1280)][["year","gdppc"]]
# Conversion des données en valeurs numériques (pour l'instant il s'agit de chaînes de caractères) 
DATA["year"] = pd.to_numeric(DATA["year"])
DATA["gdppc"] = pd.to_numeric(DATA["gdppc"])
# Représentation graphique
plt.figure(1)
DATA.plot(x="year",y="gdppc")
plt.savefig("img/gdppc-fr.svg", transparent=True)

gdppc-fr.svg

Figure 1 : PIB par tête en France depuis 1280.

On observe que jusqu'au début du XIX siècle il ne se passe pas grand chose. Ici le graphique montre le niveau de la variable de PIB par tête, il serait plus approprié d'afficher le logarithme népérien du PIB par tête (pour gommer le caractère explosif de la variable à partir du milieu de XIX et éventuellement permettre de mieux observer les fluctuations du PIB avant 1820).

Notes de bas de page:

1

Les données de sont disponibles sur de très longues périodes, plus d'un siècle, que pour un nombre limité de pays