Chapitre 1 : Analyse de données

Économétrie (ECON0212)

Natalia Bermúdez

HEC Liège

September 2026

Utiliser des données

  • Les données sont centrales en économétrie.

  • Selon un article du New York Times de 2014, “les data scientists […] passent de 50 % à 80 % de leur temps plongés dans ce travail plus prosaïque de collecte et de préparation de données numériques rebelles, avant de pouvoir les explorer”

  • Aujourd’hui : les basiques de l’analyse de données (préparation, visualisation et statistiques descriptives)

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Installation de Stata

Cf. guide sur lola

1. Téléchargement depuis DOX (version Stata StataNow/SE)

2. Installation

  • Lancer l’installateur et choisir la version StataNow/SE.
  • Ensuite encoder les credentials ci-dessous :
    • Nom: Auchoix
    • Organization: HEC Liège
    • Authorization : rnje
    • Code : 0n0b koke $m7k xamu 26b7 v9fm hd83 zm7t cq4y t
    • Serial number : 401909325829

Interface utilisateur de Stata

Glossaire

  • Stata : le nom du logiciel qu’on va utiliser pendant tout le cours pour analyser des données
  • Une commande : une instruction écrite que vous donnez à Stata, et que le logiciel comprend et exécute (-> ouvrir une base de données, créer une variable, calculer une moyenne…)
    • ⚠️ Une seule commande par ligne
  • Un dofile : un fichier texte (extension .do) qui contient une suite de commandes, écrites les unes en dessous des autres
    • Chaque commande doit être séparée par une nouvelle ligne
    • Stata lit et exécute les commandes dans l’ordre où elles apparaissent, de haut en bas
    • Ouvrir un dofile :
  • Pour lancer une commande écrite dans un dofile :
    • Sélectionner la ou les lignes à exécuter
    • Taper Ctrl+D (Windows) ou Command+Shift+D (Mac), ou cliquer sur Do

Exercice 1

  1. Créer un nouveau dofile (File → New → Do-file). Sauvegarder quelque part sous le nom 1-analyse-de-donnees.

  2. Écrire le code suivant dans le dofile et compiler (Ctrl+D ou Ctrl+Maj+D). (Vous pouvez surligner le code à compiler, ou compiler sur tout le dofile)

set obs 10 /* Génère 10 observations */
gen x = 1 /* crée une variable nommée x et égale à 1 */

Bravo ! Vous avez créé votre première variable !

  1. Créer une nouvelle variable y égale à \(x^2\).

Trouver de l’aide

  • Directement dans Stata :

    • Limite : il faut connaître le nom de la commande. Par exemple :

      help regress
      help summarize
  • Sur internet :

    • Parfois plus efficace
    • Il vaut mieux faire une recherche en anglais pour avoir plus de réponses
    • Renvoie souvent sur la documentation officielle
  • Intelligence artificielle (ChatGPT, Claude, Prodigy…) :

    • Potentiellement encore plus efficace !
      • Surtout utile quand on a déjà une idée de ce qu’on fait
    • Exemple d’utilisation

Collaborer !

Quand ça tourne mal

Du rouge ? C’est une erreur ! Que faire ?

  1. La lire → souvent, la source de l’erreur est expliquée
  2. La rechercher sur internet car \(P(\textrm{quelqu'un a déjà eu cette erreur}) > 99\%\)

. summarize salaire age educaton

variable educaton not found
r(111);

Importer des données

Stata peut importer des données depuis différents formats :

  • Format Stata : extension .dta

    use dataset_name.dta, replace
  • Format Excel : extension .xls ou .xlsx

    import excel using dataset_name.xlsx, firstrow replace
    • Attention au format du fichier excel : une ligne est une observation, une colonne une variable
  • Format CSV : extension .csv

    import delimited using dataset_name.txt, delimiters(",") replace
    • Chaque élément est séparé de l’ensemble des données par un delimiter qui peut être : une tabulation, une virgule, un point-virgule…

Importer des données : chemin absolu ou relatif ?

1️⃣ Chemin absolu = l’adresse complète du fichier

On indique à Stata exactement où se trouve le fichier sur l’ordinateur.

* Windows
use "C:/Data/Projet/analyse/mydata.dta", clear

* macOS
use "/Users/alice/Data/Projet/analyse/mydata.dta", clear

Le chemin commence depuis la racine de l’ordinateur.

⚠️ Attention : utilisez / dans les chemins. Cela fonctionne sous Windows, macOS et Linux.

2️⃣ Chemin relatif = l’adresse à partir du dossier de travail

Stata part du répertoire de travail courant (cd).

* Définir le dossier de travail
cd "C:/Data/Projet/analyse"

* mydata.dta se trouve dans ce dossier
use "mydata.dta", clear

Inspecter des données

Une fois l’ensemble de données chargé, vous pouvez commencer à l’explorer :

  • browse : Ouvre les données dans la fenêtre d’exploration.

  • describe : Affiche la liste des variables, leur type et leur étiquette.

  • codebook : Fournit des informations détaillées sur les variables : type, valeurs manquantes, valeurs uniques, étendue, etc.

  • sum nom_de_la_variable : Donne le nombre d’observations, la moyenne, l’écart-type, le minimum et le maximum.

  • sum nom_de_la_variable, detail : Fournit des statistiques descriptives plus détaillées, notamment les percentiles, la médiane, l’asymétrie et l’aplatissement.

  • tab nom_de_la_variable : Produit un tableau de fréquences indiquant le nombre d’observations pour chaque valeur de la variable.

Exercice 2

  1. Importez la base gapminder.dta en format dta (disponible sur lola).

    • Cette base contient des données sur l’espérance de vie et le PIB par habitant de nombreux pays.
  2. Quelles variables contiennent les données ? Vous pouvez utiliser codebook ou describe.

  3. Inspectez visuellement les données. Plusieurs solutions pour ouvrir la base de données grâce à browse :

    1. Naviguer dans le menu : Data, Data Editor
    2. Bouton browse
    3. Commande : browse [varlist] [if] dans la fenêtre de commande ou un dofile

    À quoi correspond la variable pop ? Quel pays compte le moins d’habitants ?

Types de variables

  • Numérique (float, int) :
    • Exemple : âge → int ; revenu → float
  • Texte (string) :
    • Exemple : pays, nom → string
  • Catégorielle :
    • Exemple : genre
    • Une variable numérique avec un label pour chaque valeur
      • 1="female" ; 2="male"

Modifier le type de la variable

  • texte → numérique

    destring nom_de_la_variable, replace
  • numérique → texte

    tostring nom_de_la_variable, replace
  • texte → catégoriel

    encode nom_de_la_variable, gen(variable_encodee)

Modifier des données existantes (variables)

  • Supprimer une variable (ou une liste de variables)

    drop variable_1 variable_2
  • Sélectionner une variable (ou une liste de variables) [ce qui supprime les autres]

    keep variable_1 variable_2
  • Renommer une variable :

    rename ancien_nom nouveau_nom
  • Créer un label :

    label var nom_de_la_variable "Label de la variable"

Créer des variables

  • On génère une nouvelle variable en lui donnant un nom et en définissant ses valeurs dans une EXPRESSION

    gen nouvelle_variable = EXPRESSION
  • Une EXPRESSION peut être :

    • Mathématique, par exemple :

      gen variable1 = 200
      gen variable2 = variable1*2
    • Du texte (string en Stata), par exemple :

      gen variable1 = "coucou"
  • Une fonction de variables existantes :

    gen variable3 = (variable1 + variable2)/2

Modifier la valeur d’une variable

  • On peut remplacer la valeur d’une variable (très similaire à gen)

  • Une fonction de variables existantes :

    replace une_variable_qui_existe = EXPRESSION
  • Remplacement conditionnel :

    replace age_category = "old" if age > 70

Expressions logiques

  • Expressions qui peuvent être utilisées pour préciser la condition :
    • == : égal à
    • != : non égal à
    • <= : inférieur ou égal à
    • >= : supérieur ou égal à
    • < : strictement inférieur à
    • > : strictement supérieur à
  • Pour combiner ces conditions, on utilise & ou | :
    • & = et : si les 2 conditions doivent être vérifiées toutes les deux

      gen age_category = "old" if age > 70 & age < 110
    • | = ou : si une des conditions seulement doit être vérifiée

      gen etudiant_hec = "bac" if filiere=="IG" | filiere=="SEG"

Sélection d’observations

  • Garder ou supprimer les observations sous certaines conditions

    keep if CONDITION
    drop if CONDITION
  • Par exemple :

    /* Sélectionne les pays du continent américain */
    keep if continent=="Americas"
    
    /* Supprime les pays américains sauf l'Argentine */
    drop if continent=="Americas" & country!="Argentina"

⚠️ Comme c’est le cas dans de nombreux logiciels, l’expression logique s’écrit ==

Exercice 3

  1. Combien d’observations y a-t-il dans la base de données ouverte précédemment (gapminder) ?

  2. Combien de variables ? De quel type ?

  3. Ne gardez que les observations correspondant au continent Asia.

  4. Chargez à nouveau la base, puis créez la variable gdppercap égale au PIB par habitant grâce au code suivant :

    gen gdppercap = gdp / population

Félicitations, vous avez créé votre première variable ! Utilisez la commande browse pour la voir dans la base.

Syntaxe de Stata

La plupart des commandes ont la syntaxe suivante :

où [..] correspond à des options. Exemples :

  • summarize ou juste sum — statistiques descriptives pour toutes les variables
  • summarize gdp — statistiques descriptives pour le gdp uniquement
  • summarize gdp if year == 1960 — statistiques descriptives pour le gdp en 1960

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Valeurs manquantes

  • Quand une valeur est manquante, elle est indiquée

    • . pour une variable numérique
    • "" pour une variable string
  • Dans les calculs, une valeur manquante produit généralement une valeur manquante :

    display . + 10
  • Stata assigne la valeur \(+\infty\) à une valeur manquante :

Attention à la propagation des valeurs manquantes ! :

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Agrégation des données collapse

La commande collapse transforme la base de données en mémoire en statistiques essentielles sur celle-ci (sum=> somme ; mean=>moyenne ; sd=>écart-type ; median=>médiane).

  • Attention, collapse remplace les données en mémoire

Combiner des bases de données : append

use economy2004.dta, replace
append using economy2005.dta

Combiner des bases de données : merge

use economy2004.dta, replace
merge 1:1 country using economy2005.dta

Formats wide et long : reshape

  • Long → Wide

    reshape (wide) lifeexp, i(year) j(country)
  • Wide → Long

    reshape (long) lifeexpA lifeexpB lifeexpC, i(year) j(country)

Exercice 4 : Nettoyage des données

On utilise la base gapminder précédemment importée.

  1. Quelles années ont des valeurs manquantes pour le PIB ?

  2. Quel pays a l’espérance de vie la plus élevée pour une population de plus d’un milliard en 2007 ?

  3. Quelle est la moyenne de l’espérance de vie par continent et par an ? (Vous pouvez utiliser la fonction collapse)

Syntaxe de collapse : collapse (mean) VAR1 VAR2 VAR3, by(VAR_CATEGORIELLE)

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Visualiser des données

Comment choisir la représentation graphique adaptée ?

Ça dépend des variables étudiées, et notamment :

  • 1, 2 (ou 3) variables
  • Continue ou discrète

Visualiser des données — 1 variable

Variable continue

Histogramme : visualiser la distribution d’une variable

histogram wage

Densité : visualiser la distribution d’une variable

kdensity time_worked

Visualiser des données — 1 variable

Discrète

  • Diagramme en bâton (bar chart) :
    • Si la variable discrète est numérique :

      graph bar (count), over(nb_enfants)

Visualiser des données — 2 variables

Scatter plot : montrer les valeurs d’une variable en fonction de l’autre

twoway scatter gdp gini_ineq

Diagramme en bâton (bar chart) : variable quantitative selon les valeurs d’une variable qualitative (ou catégorielle)

graph bar (mean) wage, over(type_contract)

Une base de données “propre”

  1. Chaque colonne correspond à une variable
  2. Chaque ligne correspond à une observation

Avant de procéder à la visualisation, il faut se demander :

  1. Quelle information veux-je représenter ?
    • Faire en particulier attention à la présence de potentielles variables manquantes
    misstable summarize gdp fertility life_expectancy
  2. Est-ce que les données contiennent cette information telle qu’une colonne/ligne correspond à ce que je veux représenter ?
    • Éventuellement utiliser collapse et/ou reshape pour transformer les données

Types de visualisation

Quelques exemples des types de graphiques les plus utilisés :

  • Commande twoway + type de graphique
Type Fonction
Point scatter
Line line, connected
Histogram histogram
Density kdensity
  • Commande graph + type de graphique
Type Fonction
Bar bar
Boxplot box

Exercice 5 : Premiers graphiques

On utilise les données gapminder.

  1. L’histogramme des espérances de vie en 2007. Ensuite, précisez la couleur en ajoutant l’option color(green) (il faut mettre les options après une virgule).

  2. Un scatter plot du taux de fertilité (axe y) vs. PIB par habitant (axe x) en 2007. Ensuite, spécifiez les titres des axes.

  3. [CHALLENGE] Représentez l’évolution de l’espérance de vie au cours du temps par continent.

    • Il va falloir agréger les données au niveau continent × year → vous pouvez faire cela avec une commande collapse
    • Il est ensuite plus simple de changer la forme des données pour les transformer de “long” en “wide” en utilisant un reshape

Au menu de cette séance

  1. Stata 101
  2. Nettoyer les données
  3. Transformations avancées (agrégations, combinaisons…)
  4. Visualisation
  5. Statistiques descriptives

Synthétiser les données

  • En général, on apprend à connaître ses données par des visualisations + calculs de statistiques descriptives
  • C’est l’heure des statistiques descriptives !
    • Utilisées pour décrire les données et simplifier l’information à partir de différentes mesures, tableaux et graphiques
    • (VS. statistiques inférentielles qui permettent ensuite de généraliser les résultats à la population d’intérêt.)
  • En particulier, nous nous intéressons aux tendances centrales et à la dispersion.

Tendances centrales

mean(x) : la moyenne de toutes les valeurs de x.

\[\bar{x} = \frac{1}{N}\sum_{i=1}^N x_i\]

set obs 100
gen y = rnormal()
egen y_mean=mean(y)
summ y_mean 

Médiane : la valeur de \(x_j\) qui partage les observations en 2 parties égales (50 % au-dessus, 50 % en dessous). \(m\) est la médiane si

\[\Pr(X \leq m) \geq 0.5 \text{ et } \Pr(X \geq m) \geq 0.5\]

La médiane est robuste à la présence de valeurs extrêmes.

egen y_p50=median(y)
summ y_p50

Dispersion

Une autre caractéristique intéressante est la mesure de l’écart d’une variable par rapport à son centre (la moyenne dans ce cas).

La variance est l’une de ces mesures (l’écart interquartile en est une autre).

\[Var(X) = \frac{1}{N} \sum_{i=1}^N(x_i-\bar{x})^2\]

Soit deux distributions normales ayant une moyenne égale à 0 :

Commande :

egen sd_x = sd(x)
generate y_var = sd_x^2

Statistiques descriptives : les commandes Stata

Variables numériques

La commande summarize (sum) permet d’afficher des statistiques de base sur une ou plusieurs variables numériques de la base de données :

  • la moyenne, l’écart-type et les valeurs extrêmes (min et max)
  • L’option detail permet d’afficher des statistiques plus précises sur la distribution de la ou des variables : médiane et autres centiles.
summarize gdp population, detail

Statistiques descriptives : les commandes Stata

Variable discrète

tabulate (tab) permet d’afficher les tableaux de fréquences (i.e., la distribution) des variables numériques catégorielles ou des variables textuelles :

tabulate country

Statistiques croisées

Deux variables catégorielles

Dans le cas où il y a 2 variables spécifiées, table produit une table de contingence :

table year country

Deux variables : catégorielle vs. quantitative

tabstat fertility, by(year)

Comment \(x\) et \(y\) sont associées ? Covariance et corrélation

On s’intéresse principalement à 2 statistiques pour caractériser la relation entre \(x\) et \(y\) :

  1. Covariance
  2. Corrélation

Covariance

  • La covariance est une mesure de la variabilité jointe de deux variables.

    \[Cov(x,y) = \frac{1}{N} \sum_{i=1}^N(x_i-\bar{x})(y_i-\bar{y})\]

  • Difficile à interpréter car sensible à la dispersion des variables par rapport à la moyenne.

Corrélation

  • La corrélation est une mesure de la force de l’association linéaire entre deux variables.

    \[Cor(x,y) = \frac{Cov(x,y)}{\sqrt{Var(x)}\sqrt{Var(y)}}\]

  • La fonction cor calcule la corrélation :

    cor infant_mortality fertility
  • On ajoute l’option cov si on veut la covariance

    cor infant_mortality fertility, cov

Corrélation

  • La corrélation est toujours entre -1 et 1 !

Un autre source : mathisfun

Exercice 6 : statistiques descriptives

  1. Quelle est la moyenne du PIB en 2011 ?
  2. La médiane ?
  3. Calculez la moyenne de l’espérance de vie par année.
  4. Calculez la corrélation entre la fertilité et la mortalité infantile en 2015.

[À retenir] Utiliser des do files

Dofile = un script contenant une suite de commandes Stata

  • Commande vs. script
    • Ligne de commande : pratique pour tester
    • Script de commandes (= dofile) :
      • permet à l’analyse d’être reproductible
    • Commenter ses dofiles : //
    di 1+1 // commentaire sur une ligne
    
    /*
    Commentaire sur plusieurs lignes
    */
    ⇒ toujours utiliser un script
  • Organiser son travail en plusieurs dofiles
    • ayant une suite logique :
      • créer la base de données → statistiques descriptives → analyse graphique
    • ayant des noms significatifs :
      • 1-construction-data.do → 2-stat-des.do → 3-graph.do

[À retenir] Commandes principales en Stata

Tâches Commandes
Obtenir de l’aide help, findit, lookfor
Utiliser les données Stata use, save, append, merge
Gestion des données reshape, collapse
Gérer les variables replace, rename, encode, sort, keep, drop
Gérer les observations keep if, drop if
Créer/modifier des variables generate, replace, egen
Visualiser les données describe, list, tabulate, summarize
Calculatrice display

Question de compréhension [Groupe de 2]

Choisissez un graphique issu d’un média grand public (article, journal, site internet, rapport) qui concerne une statistique ou une donnée économique. Précisez les éléments suivants :

  • La source et le contexte du graphique.
  • Une description de ce que représente ce graphique.
  • Ce que vous trouvez pertinent ou problématique dans ce graphique.
  • Comment ce graphique peut être interprété ou discuté du point de vue de l’analyse économique et statistique.
  • Suggérez une analyse statistique complémentaire

Liste de sources

Où en sommes-nous de notre quête de la causalité ?

✅ Comment gérer les données ? Regardez-les, ordonnez-les, visualisez-les…

❌ Comment résumer une relation entre plusieurs variables ?

❌ Qu’est-ce que la causalité ?

❌ Comment faire si nous n’observons qu’une partie de la population ?

❌ Nos résultats sont-ils uniquement dus au hasard ?

❌ Comment trouver de l’exogénéité en pratique ?

À la semaine prochaine !

Contact

natalia.bermudez@uliege.be

Un grand merci à Malka Guillot pour avoir partagé les supports de ce cours, ainsi qu’à Florian Oswald et à toute l’équipe de ScPoEconometrics pour leur livre et leurs ressources.