Ressources R pour ce cours
Rappels et aide-mémoire — Master GPE FERDI IHEDD
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 ?
- Cours complet : pierrebeaucoral.github.io/course/r-for-beginners
- Documentation R : tapez
?nom_fonctiondans la console RStudio (ex.?feols) - Cheat sheets : posit.co/resources/cheatsheets