Ressources R pour ce cours

Rappels et aide-mémoire — Master GPE FERDI IHEDD

Auteur·rice

Pierre Beaucoral — Master GPE FERDI IHEDD

Date de publication

17 mars 2026

Vous débutez avec R ?

Si vous n’avez jamais utilisé R ou si vous souhaitez revoir les bases, un cours complet et interactif est disponible sur le site de l’enseignant :

👉 Cours Introduction à R — Pierre Beaucoral

Ce cours couvre : l’interface RStudio, les objets R, les données, tidyverse, ggplot2, et bien plus — avec des exercices pratiques.

Prenez 1 à 2 heures pour le parcourir avant de commencer les modules de ce cours DiD.


Aide-mémoire — Commandes de ce cours

Voici un rappel des commandes R utilisées dans les 5 modules, organisées par tâche.

Charger les packages et données

# Packages essentiels du cours
library(tidyverse)        # manipulation + visualisation
library(fixest)           # régressions avec effets fixes (TWFE)
library(did)              # Callaway & Sant'Anna
library(DIDmultiplegtDYN) # de Chaisemartin & D'Haultfoeuille
library(broom)            # mise en forme des résultats

# Données du cours
library(did)
data(mpdta)               # salaire minimum USA (Callaway & Sant'Anna)

library(DIDmultiplegtDYN)
data(favara_imbs)         # déréglementation bancaire (de Chaisemartin)

Créer la variable de traitement

# IMPORTANT : mpdta$treat est time-invariant → ne pas l'utiliser directement
# Créer la variable de traitement qui varie dans le temps :
mpdta$treat_tv <- as.integer(mpdta$first.treat > 0 & mpdta$year >= mpdta$first.treat)

Module 2 — DiD 2×2

# Régression DiD simple
modele_did <- lm(y ~ traite + apres + traite:apres, data = mon_data)
summary(modele_did)

# Mise en forme du tableau
library(broom)
tidy(modele_did)

Module 3 — TWFE avec fixest

# Modèle TWFE (effets fixes unité + temps)
twfe <- feols(
  lemp ~ treat_tv | countyreal + year,  # | séparateur effets fixes
  data    = mpdta,
  cluster = ~countyreal                 # erreurs groupées par unité
)
summary(twfe)

# Comparer des modèles
etable(twfe, twfe_cov, headers = c("Sans covariable", "Avec covariable"))

Module 4 — Callaway & Sant’Anna

# Étape 1 : estimer les ATT(g,t)
att_gt_res <- att_gt(
  yname         = "lemp",
  tname         = "year",
  idname        = "countyreal",
  gname         = "first.treat",
  data          = mpdta,
  control_group = "nevertreated"
)

# Étape 2 : agréger
agg_simple  <- aggte(att_gt_res, type = "simple")   # ATT global
agg_group   <- aggte(att_gt_res, type = "group")    # par cohorte
agg_dynamic <- aggte(att_gt_res, type = "dynamic")  # event study

# Étape 3 : visualiser
ggdid(agg_dynamic, title = "Event Study")

Module 5 — de Chaisemartin & D’Haultfoeuille

library(polars)           # dépendance obligatoire
library(DIDmultiplegtDYN)

result_fi <- did_multiplegt_dyn(
  df        = favara_imbs,
  outcome   = "Dl_hpi",
  group     = "county",
  time      = "year",
  treatment = "inter_bra",
  effects   = 5,
  placebo   = 3,
  cluster   = "state_n"
)

# Résultats
summary(result_fi)

# Graphique (ggplot intégré)
result_fi$plot + ggplot2::labs(title = "Mon titre")

# Extraire l'ATT agrégé
att_moyen <- result_fi$results$ATE[1]

Installer les packages (une seule fois dans RStudio)

install.packages(c("tidyverse", "fixest", "did", "bigmemory", "broom", "knitr"))
install.packages("polars", repos = "https://rpolars.r-universe.dev")
install.packages("DIDmultiplegtDYN")

Exercice — Vérifier votre environnement

Exécutez ce bloc pour vérifier que les packages de base sont disponibles dans votre navigateur :

Test que ggplot2 fonctionne (base pour tous les graphiques du cours) :


Besoin d’aide en R ?