Chapitre 36 — Données de panel et identification causale : bilan de rédaction (2026-10-31)
Compteurs
- Prose : ≈ 10 000 mots hors tableaux, figures, équations et commandes (≈ 14 300 mots bruts avec
wc -w) ; 40 pages compilées (chapitre + solutions + bibliographie du chapitre). - Figures : 7 (6 PDF Matplotlib + 1 schéma TikZ) —
ch36-fig-trajectoires,ch36-fig-event-study,ch36-fig-bacon,ch36-fig-synthetique,ch36-fig-discontinuite,ch36-fig-sensibilite; chronologie du plan (TikZ,\resizebox). Toutes sur données synthétiques (cas 4 + choc déclaré ; simulation transversale ; panel artificiel « laboratoire »). - Tableaux : 9 (plans d'identification ; cellules du 2 × 2 ; TWFE et trois erreurs-types ; coefficients de l'étude d'événement ; décomposition de Goodman-Bacon ; laboratoire ; Callaway–Sant'Anna ; bilan des estimateurs ; sensibilité et groupes témoins).
- Équations numérotées : 19 ; 1 définition (ATT) ; 1 proposition démontrée (within = indicatrices, Frisch–Waugh–Lovell).
- Exercices : 7 (niveaux 1, 1, 2, 2, 2, 3, 3) ; solutions détaillées dans
solutions/ch36.tex, chiffres testés (ex. 1, 2, 3, 5, 6, 7). - Encadrés : objectifs, définition, proposition, synthetique, exemple (court, étapes détaillées hors boîte comme au ch. 18), quebec, erreurs, limites, synthese.
- Citations : 18 clés distinctes, toutes déjà dans
references/library.bib;references/lib-ch36.bibne contient aucune nouvelle entrée (commentaire explicatif).
Contrôles
tools/compile_chapter.sh 36→OK ch36 : 40 pages, 0 references/citations non definies, 1 overfull hbox. L'unique overfull (29,7 pt) est dans la bibliographie (titre dedubeLegrosTheriaultDesrosiers2017, « (STDID) Estimator » insécable) ; il ne vient pas du chapitre et se corrigera danslibrary.bib(ajouter\allowbreakou raccourcir le titre) lors de l'harmonisation.python3 -m pytest -q analysis/python/tests/test_ch36.py→ 19 passed (7 tests génériques detraite.panelsur données simulées : within = LSDV, grappes unitaires = HC1, TWFE retrouve un effet constant, étude d'événement retrouve un profil, identité de Bacon + CS corrige un TWFE biaisé, contrôle synthétique retrouve des poids exacts, RDD retrouve un saut ; 10 tests des chiffres du chapitre ; 2 tests des solutions).test_cas2_cas4.pyettest_hedonique.pyne sont pas touchés (aucune fonction existante modifiée).python3 tools/check_manuscript.py --no-log: les seuls messages pour ch36 sont « figure … non inscrite dans verification/figures.csv » (6), conséquence de la règle de collision (fichiers par chapitreverification/chapters/ch36-figures.csv, jamais les CSV globaux) ; à fusionner en phase 5.- Contrôle croisé (
ch36_panel.py --controle) :linearmodels.PanelOLS(effets entité + temps, grappes par entité) donne D = 0,090460 (identique à 1e-6) et ET 0,0196 contre 0,0198 maison (CR1 ; linearmodels n'applique pas le facteur (N−1)/(N−K)) ;statsmodelscov_type="cluster"donne 0,0198 exactement et HC1 0,005289 identique. - PDF relu : 4 planches de contact (40 pages) + pages 13, 19, 21, 23 à plus forte résolution ; légende de la figure de Bacon déplacée sous les axes après relecture ; tableaux en
\footnotesizeavec\tabcolsep4 pt ; aucun débordement restant dans le chapitre. - Convention
\crefsans article respectée ; étiquetteseq:36:*,tab:36:*,fig:36:*,sec:36:*,ex:36:k,def:36-att,prop:36-within.
Fichiers livrés
manuscript/chapters/ch36.tex, solutions/ch36.tex, analysis/python/traite/panel.py (NOUVEAU module : mco_grappes, within, within_deux_voies, estimateur_within, indicatrices, twfe, did_2x2, event_study, callaway_santanna, bacon, controle_synthetique, placebos_synthetiques, rdd_local_lineaire), analysis/python/cases/ch36_panel.py, analysis/python/figures/ch36_figures.py, analysis/python/tests/test_ch36.py, assets/figures/ch36/*.pdf (6), verification/chapters/ch36-{figures,calculations,claims,registry}.csv, references/lib-ch36.bib, ce bilan. Rien d'écrit dans les CSV globaux ni dans library.bib ; hedonique.py, cas4.py et les données synthétiques ne sont pas modifiés.
Résultats clés (données synthétiques, cas 4 + choc déclaré)
- Plan : cohorte A = 8 immeubles de Montréal dès 2022T3 ; cohorte B = 5 immeubles de Gatineau dès 2024T3 ; 35 jamais traités ; δ(k) = 0,01(k+1) pour k ≤ 3 puis 0,04 + 0,0025(k−3). Vérité : ATT global 0,0454 (A 0,0484 ; B 0,0356 ; fenêtre 2 × 2 0,0462).
- 2 × 2 (témoins Montréal) 0,0534 (ET 0,0201) ; placebo 2019T3 0,0155 (0,0101).
- TWFE statique : effets communs 0,0905 (biais de tendance régionale) ; RMR × trimestre 0,0702 (ET grappes 0,0264 ; ET classique 0,0054 → rapport 4,9).
- Étude d'événement : profil retrouvé (k = 3 : 0,0410 vs 0,04) ; coefficients pré ≈ −0,015 (référence k = −1 sur un point haut).
- Bacon : identité Σ s·β = TWFE exacte ; comparaison interdite 0,0403 (poids 0,015) sur le cas 4 ; laboratoire : TWFE 0,0233 vs vrai 0,0692, comparaison interdite −0,0356 (poids 0,33), CS 0,0601.
- Callaway–Sant'Anna (même RMR) : 0,0481 (ET boot 0,0116) ; avec tous les témoins, la cohorte B est surestimée (0,0521 vs 0,0356).
- Contrôle synthétique : 0,0363 (sous-estimation), RMSPE pré 0,0031, rang 1/36 (p = 0,028) ; variantes de bassin 0,0375–0,0452.
- RDD : 0,032–0,058 selon la bande (vrai 0,05), naïf 0,114.
- Tendances parallèles violées (+1 pt/an) : 2 × 2 0,0734 (biais = 0,02 exactement), TWFE 0,1227, pente pré 0,0036 vs 0,0011 ; corrections 0,0609 (tendance de groupe) et 0,0426 (2 × 2 détendancé).
Points non vérifiés ou partiellement vérifiés (voir ch36-claims.csv)
- Seuils de distance de Linden–Rockoff (0,1 / 0,3 mille) et de Currie et al. (0,5 / 2 milles) cités d'après les résumés (CLM-36-02, 36-03).
- « Leçons » attribuées aux travaux de Dubé et coauteurs (effet dès l'annonce, décroissance avec la distance) : généralisations sans chiffre (CLM-36-04).
- Stabilité de l'identifiant d'unité d'évaluation entre rôles triennaux dans le jeu Données Québec : non vérifiée dans les métadonnées (CLM-36-06).
- Bertrand–Duflo–Mullainathan (2004), Hausman (1978), Moulton (1986) : non cités (absents de
library.bib) ; points attribués à Wooldridge (2010) et Angrist–Pischke (2009). - Le bootstrap de Callaway–Sant'Anna est un bootstrap par blocs stratifié « maison » (pas le bootstrap multiplicateur de l'article) ; signalé dans
limites. - Les séries du cas 4 étant des marches aléatoires, les coefficients pré-traitement de l'étude d'événement ne sont pas exactement nuls (≈ −0,015) ; le texte l'explique (trimestre de référence sur un point haut) plutôt que de le masquer.
Suggestions pour l'harmonisation
- Le ch. 8 (§ Val-Fictif) renvoie déjà au ch. 36 pour les conditions d'identification ; le ch. 43 (inondations) peut réutiliser
traite.panel.event_studyetcallaway_santanna(cohortes = secteurs cartographiés) ; le ch. 48 peut reprendre le panel simulé comme scénario de risque de portefeuille ; le ch. 35 peut citer la \cref{prop:36-within} pour l'équivalence indicatrices/within des indices. - Corriger dans
library.bible titre dedubeLegrosTheriaultDesrosiers2017(overfull bibliographique) ; envisager d'ajouter Bertrand–Duflo–Mullainathan (2004, QJE 119(1), 249–275) après vérification Crossref. data/synthetic/README.mdne donne pas les taux de croissance régionaux du générateur du cas 4 (3,5 % Montréal, 4 % Gatineau, 3 % Québec et Sherbrooke, 2,5 % Trois-Rivières, 2 % Saguenay, lus danssynth.py) ; les y ajouter rendrait le biais de tendance régionale du ch. 36 vérifiable par le lecteur.- Le
check_manuscript.pydevrait lire aussiverification/chapters/chNN-figures.csvpour ne plus signaler les figures des chapitres rédigés sous la règle de collision.