Exercices — Module 5

DiD avec hétérogénéité — de Chaisemartin & D’Haultfoeuille (2020)

Auteur·rice

Master GPE — FERDI IHEDD

Date de publication

17 mars 2026

Objectifs de ce module

À la fin de ces exercices, vous saurez :

  1. Charger et explorer les données réelles de de Chaisemartin (favara_imbs)
  2. Utiliser did_multiplegt_dyn() du package DIDmultiplegtDYN
  3. Lire les sorties : effets, placebos, ATT agrégé
  4. Visualiser les résultats avec plot()
  5. 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.

Travailler dans RStudio ?

Téléchargez le script R complet du module avec tous les exercices à compléter :

⬇ Télécharger le script R — Module 5

Ouvrez-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.

Installation des packages (à faire une seule fois dans RStudio)
install.packages(c("DIDmultiplegtDYN", "did", "fixest", "tidyverse"))

Pourquoi ce concept est-il crucial pour un fonctionnaire ?

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.


Fin du Module 5 et du cours complet

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)