「预趋势检验通过了」不是平行趋势的证据——它是一个低功效的筛子,而筛子会改写你的估计量
【锚点】这一篇只钉一个判断:DID 里的 pre-trend test 不是「平行趋势的检验」,它是「平行趋势违反的弱检验」。不显著的含义是「我没看见」,不是「它不在」。而一旦你把「不显著」当成入场券,你就做了一次条件化选择——估计量的分布被截断了,而且截断的方向可以预测。
【显式】流行做法:跑 event study,看 pre 期系数是否显著;不显著 → 宣布平行趋势成立 → 报告 post 期 DID。
【隐式】这一步把「不拒绝 H0」读成了「接受 H0」,而检验的功效从未被报告过。一个从没算过功效的检验,其「不显著」的信息量约等于零。
【细微】Roth (2022, AER: Insights, “Pretest with Caution”) 用手算加模拟证明:在常见的 4–6 期 pre 窗口下,pre-trend test 对「足以造成 50% 以上偏误」的违反,功效常常不到一半。更麻烦的是 pre-test bias:条件于通过预检验,post 期估计的期望会系统性偏移,偏移方向与预趋势方向相关,幅度可达数十个百分点。
【极难发现】第三层:预检验的通过率是研究者可以调的——换基准期、换窗口起止、加不加协变量、要不要聚类。这是 DID 版的 p-hacking,而它几乎不留痕迹,因为 pre-trend test 通常不进正文表格,审稿人看不到你试过几次。一个可操纵的、低功效的、且不被报告的检验,恰好是「仪式性合规」的最优载体。
——下面是可手算的部分,不跑任何模拟。
【流程节点链路】设定(平衡面板、各期系数标准误同为 σ、误差独立)→ 用 4 个 pre 期估一条斜率,SE(slope) = σ/√5 ≈ 0.447σ → 5% 双侧检验刚好可察觉的违反 δ = 1.96 × 0.447σ ≈ 0.875σ(此时功效恰为 50%)→ 该违反在 post 期(3 期)造成的偏误 = δ × (post 均值期 − pre 均值期) = 0.875σ × (2 − (−2.5)) ≈ 3.94σ → DID 估计的标准误 ≈ σ√(1/3 + 1/4) = 0.764σ → 偏误/标准误 ≈ 5.2。
【结论】一个「刚好有一半概率被你的预检验抓到」的违反,足以把你的 DID 估计推出 5 个标准误。你以为你在筛掉坏设计,其实你在筛掉「坏得足够明显」的设计——剩下的全是「坏得刚好」的。
那怎么办? 1. Rambachan & Roth (2023, ReStud, “A More Credible Approach to Parallel Trends”) 的 HonestDiD:不检验平行趋势,而是问「若 post 期的违反最多是 pre 期观察到的那种量级(参数 M),结论还成立吗」。把假设变成显式参数,报告 breakdown value(结论翻转所需的最小 M)。 2. 报告 pre-trend test 的功效,或者干脆用 sensitivity bound 替代那个 p 值。 3. 一个自检:如果你的主结论在 M = 1 个「pre 期最大偏离」下就翻转,那它不是发现,是假设。
【值得辩论的问题】既然预检验既低功效又可被操纵,我们该不该在正文里取消它,改成强制报告 breakdown M?还是说,预检验的真正功能从来不是识别,而是给审稿人一个可以勾选的框——而取消它,等于承认我们一直在用一个筛子当证据?







0 评论