Exercices — Module 5
DiD avec hétérogénéité — de Chaisemartin & D’Haultfoeuille (2020)
À la fin de ces exercices, vous saurez :
- Charger et explorer les données réelles de de Chaisemartin (
favara_imbs) - Utiliser
did_multiplegt_dyn()du packageDIDmultiplegtDYN - Lire les sorties : effets, placebos, ATT agrégé
- Visualiser les résultats avec
plot() - Comparer les trois approches (TWFE, CS, CdH) sur les mêmes données
Note : Le package DIDmultiplegtDYN n’est pas encore disponible dans l’environnement WebR. Exécutez ces exercices dans RStudio après avoir installé les packages nécessaires.
Téléchargez le script R complet du module avec tous les exercices à compléter :
⬇ Télécharger le script R — Module 5Ouvrez-le dans RStudio et complétez les ___ au fur et à mesure. Exécutez bloc par bloc avec Ctrl+Enter.
Les exercices sur DIDmultiplegtDYN nécessitent RStudio et les packages installés localement.
install.packages(c("DIDmultiplegtDYN", "did", "fixest", "tidyverse"))Les politiques publiques dans les pays en développement utilisent souvent des traitements gradués : un indice de qualité des services de santé (0 à 5), un score de décentralisation financière (0 à 10), un nombre de réformes adoptées. Les méthodes TWFE et Callaway & Sant’Anna ne gèrent que les traitements binaires (0/1). L’approche de Chaisemartin & D’Haultfoeuille est la seule qui s’applique correctement à ces traitements discrets ou continus, ouvrant la voie à des évaluations beaucoup plus riches et réalistes des politiques publiques africaines et asiatiques.
1 Les données de de Chaisemartin — favara_imbs
1.1 Exercice 5.1 — Explorer les données favara_imbs
Contexte : Le dataset favara_imbs provient de Favara & Imbs (2015) et illustre un cas pratique de traitement discret multi-valeurs. Pour faire le lien avec les contextes africains et asiatiques : imaginez un indice de décentralisation financière allant de 0 à 4, mesurant le nombre de compétences fiscales transférées aux collectivités locales (collecte de la taxe foncière, gestion des marchés, redevances minières, etc.). Comme l’indice bancaire américain, cet indice augmente de façon échelonnée et hétérogène selon les collectivités. L’approche de Chaisemartin est exactement la bonne méthode pour ce type de données.
Sujet original : Impact de la déréglementation bancaire (Interstate Branching) sur les prix de l’immobilier aux États-Unis.
library(DIDmultiplegtDYN)
library(tidyverse)
data(favara_imbs)
glimpse(favara_imbs)
# Distribution du traitement
cat("Distribution de inter_bra :\n")
table(favara_imbs$inter_bra)
# Nombre de comtés et d'années
cat("\nNombre de comtés :", n_distinct(favara_imbs$county), "\n")
cat("Années :", sort(unique(favara_imbs$year)), "\n")1.2 Exercice 5.2 — Visualiser les tendances par niveau de traitement
favara_sim |>
group_by(year, groupe_traitement) |>
summarise(moy = mean(Dl_hpi), .groups = "drop") |>
ggplot(aes(x = year, y = moy, color = groupe_traitement)) +
geom_line(size = 1.1) +
geom_point(size = 2.5) +
labs(title = "Tendances par niveau de déréglementation bancaire",
subtitle = "Favara & Imbs (2015) — données simulées à titre d'illustration",
x = "Année", y = "Variation log prix (Dl_hpi)", color = "Déréglementation") +
theme_minimal()Interprétation : Avec un traitement discret (0, 1, 2, 3), on observe maintenant quatre trajectoires au lieu de deux. Si les courbes sont parallèles avant le traitement pour tous les niveaux, l’hypothèse de tendances parallèles généralisée est soutenue. Dans le contexte fictif de la décentralisation fiscale, vous vérifieriez si les communes avec plus de compétences transférées n’avaient pas déjà une meilleure trajectoire budgétaire avant le transfert.
Point clé : La visualisation des tendances pour les traitements multi-valeurs est plus complexe car il y a plus de groupes à comparer. L’oeil doit chercher si les trajectoires pré-traitement sont globalement parallèles — pas forcément identiques en niveau, mais évoluant à la même vitesse.
2 Estimation avec did_multiplegt_dyn
2.1 Exercice 5.3 — Estimation principale (dans RStudio)
Copiez ce code dans RStudio et complétez les ___ :
library(DIDmultiplegtDYN)
data(favara_imbs)
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"
)
summary(result_fi)
# Visualisation
plot(result_fi,
ylab = "Effet estimé (variation log prix immobilier)",
xlab = "Périodes relatives au changement de déréglementation")Interprétation :
La déréglementation bancaire (hausse de l’indice inter_bra) est associée à une hausse des prix immobiliers dans les comtés concernés. Cet effet reflète l’expansion du crédit hypothécaire qui stimule la demande immobilière.
Les placebos pré-traitement non significatifs valident l’hypothèse de tendances parallèles.
Transposition dans un contexte africain : Si vous évaluez un indice de décentralisation fiscale (0 à 4) sur les recettes communales, la même procédure s’applique : outcome = "recettes_propres", treatment = "indice_decentr", group = "commune_id", time = "annee". L’argument placebo vous donne les tests de pré-tendances automatiquement.
Point clé : L’argument effects détermine le nombre de périodes post-traitement estimées, et placebo le nombre de périodes pré-traitement testées. Pour des données annuelles sur 10 ans avec traitement à mi-chemin, effects = 4 et placebo = 3 sont des valeurs typiques.
Référence : de Chaisemartin, C. & D’Haultfoeuille, X. (2020) “Two-Way Fixed Effects Estimators with Heterogeneous Treatment Effects.” American Economic Review, 110(9), 2964-2996.
3 Comparaison des trois méthodes
3.1 Exercice 5.4 — Comparer TWFE, CS et CdH sur mpdta
Pour la comparaison, on utilise mpdta (traitement binaire) car Callaway-Sant’Anna ne gère pas les traitements multi-valeurs :
3.2 Exercice 5.5 — Discussion : quelle méthode pour quel contexte ?
Scénario A : TWFE ou DiD 2×2 — traitement simultané et binaire, TWFE est valide. Exemple concret : évaluation du programme Filets Sociaux au Niger, où tous les villages bénéficiaires ont été sélectionnés simultanément en 2018.
Scénario B : Callaway-Sant’Anna — traitement échelonné, binaire, effets potentiellement hétérogènes entre cohortes. Exemple : la décentralisation fiscale au Cameroun déployée en 3 vagues (grandes villes 2019, villes moyennes 2020, communes rurales 2021).
Scénario C : de Chaisemartin — seul estimateur robuste pour les traitements continus/discrets multi-valeurs. Exemple : un indice composite de gouvernance locale (0 à 10) dans les communes du Vietnam, qui augmente progressivement avec les réformes adoptées.
Scénario D : Callaway-Sant’Anna ou de Chaisemartin — traitement binaire échelonné avec forte hétérogénéité attendue. Les deux sont valides ; CS donne des ATT(g,t) plus granulaires, CdH est plus simple. Exemple : lois anti-corruption adoptées à des dates différentes selon les régions du Sénégal.
Point clé — règle de décision rapide : - Traitement simultané → TWFE - Traitement échelonné binaire → Callaway-Sant’Anna - Traitement discret ou continu → de Chaisemartin - Doute sur l’hétérogénéité → estimez avec les 3 et comparez
3.3 Exercice 5.5 (suite) — Réflexion sur votre contexte
Parmi les scénarios ci-dessus (A, B, C, D), lequel ressemble le plus à une politique publique que vous connaissez dans votre pays ?
Réfléchissez à : - La structure temporelle du déploiement (simultané ou échelonné ?) - La nature du traitement (binaire, discret, continu ?) - Les sources potentielles de violation des tendances parallèles dans ce contexte
Partagez votre exemple avec le groupe en 2 minutes.
Récapitulatif des compétences acquises :
| Module | Thème | Package R principal |
|---|---|---|
| 1 | Cadre causal, biais de sélection | ggplot2, base R |
| 2 | DiD 2×2, régression | lm() |
| 3 | TWFE, effets fixes, event study | fixest::feols() |
| 4 | DiD échelonnée, ATT(g,t) | did::att_gt() |
| 5 | Hétérogénéité, switchers | DIDmultiplegtDYN |
Pour aller plus loin :
HonestDiD: robustesse aux violations de tendances parallèles (Rambachan & Roth, 2023)bacondecomp: décomposition de Goodman-Bacon (2021)staggered: approche bayésienne pour DiD échelonnée (Roth & Sant’Anna, 2023)