You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计数因变量的Diff-in-diff模型:OLS、Poisson与负二项回归选择疑问

双重差分模型中计数因变量的模型选择与预测问题

我正在估计一个含处理状态虚拟变量(treat)与处理后时期虚拟变量(pos)交互项的简单双重差分(Diff-in-diff)模型,因变量outcome是计数变量。数据为医院层面的面板数据,我在health_cent_id维度聚类标准误。

不确定该用Poisson、负二项(Negative Binomial)还是OLS回归,于是在Stata里估计了三个模型,用margins命令计算基准期和处理后时期处理组与对照组的均值差异。发现Poisson的边际效应和OLS完全一致,负二项结果也和前两者高度相似。

另外,三个模型的预测均值和观测数据一致,也没有负值,但预测值里没有0,且取值范围远窄于观测值(预测值7-28,观测值0-504),不知道后续该怎么处理。

* ~~~ OLS回归
reg outcome treat##pos, cluster(health_cent_id) 
predict yhat_ols
margins pos, dydx(treat) nopvalues
/*
--------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
0.treat      |  (base outcome)
-------------+------------------------------------------------
1.treat      |
         pos |
          0  |   .6509491   2.337706     -3.971704    5.273603
          1  |   11.18207   3.615578      4.032511    18.33162
--------------------------------------------------------------
*/

* ~~~ Poisson回归
poisson outcome treat##pos, cluster(health_cent_id) 
predict yhat_poisson
margins pos, dydx(treat) nopvalues
/*
--------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
0.treat      |  (base outcome)
-------------+------------------------------------------------
1.treat      |
         pos |
          0  |   .6509491   2.337107     -3.929696    5.231594
          1  |   11.18207   3.614651      4.097482    18.26665
--------------------------------------------------------------
*/

* ~~~ 负二项回归模型
nbreg outcome treat##pos, cluster(health_cent_id) 
predict yhat_nb
margins pos, dydx(treat) nopvalues
/*
--------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
0.treat      |  (base outcome)
-------------+------------------------------------------------
1.treat      |
         pos |
          0  |   .6509489   2.337107     -3.929696    5.231594
          1  |   11.18207    3.61465      4.097481    18.26665
--------------------------------------------------------------
*/
su outcome yhat_ols yhat_poisson yhat_nb if e(sample)==1
/*
    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
     outcome |      5,852     13.5716    27.74452          0        504
    yhat_ols |      5,852     13.5716    7.877809   7.769357   28.34767
yhat_poisson |      5,852     13.5716    7.877809   7.769357   28.34767
     yhat_nb |      5,852     13.5716    7.877807   7.769355   28.34766
*/

模型结果一致的原因

当模型仅包含虚拟变量(及交互项)时,Poisson回归的**边际效应(dy/dx)**会和OLS的系数完全一致——因为此时模型本质是分组均值的拟合,Poisson的对数线性形式在取反变换后,边际效应等价于组间均值差,和OLS的结果完全匹配。负二项回归在过度离散程度较低时,结果也会和Poisson高度接近,这就是你看到三个模型边际效应几乎一致的原因。

预测值范围偏窄、无0值的问题

  1. 模型设定局限:你的模型只包含treat、pos及交互项,相当于仅用4组均值(对照组基准期、对照组处理后、处理组基准期、处理组处理后)来拟合所有观测值,预测值自然只能落在这4个均值的范围内(7.77-28.35),无法覆盖观测值的极端值(0、504)。
  2. 计数模型的预测特性:Poisson/负二项的默认预测是条件均值,当模型没有控制其他协变量时,无法捕捉个体层面的异质性,也就无法生成0或极端大值。

后续处理建议

  • 加入控制变量:引入医院层面的特征(如规模、床位数、医护人数等)、时间趋势变量,提升模型对异质性的解释能力,让预测值更贴近实际数据分布。
  • 检验过度离散:用Stata的estat gof命令对Poisson模型做拟合优度检验,或直接查看负二项回归的α值——如果α显著不为0,说明存在过度离散,此时负二项回归比Poisson更合适;若α接近0,Poisson即可。
  • 考虑零膨胀模型:如果观测值中0的占比不低(你的数据里有0值),可以尝试零膨胀Poisson(zip)或零膨胀负二项(zinb)模型,这类模型专门处理存在过多零值的计数数据。
  • 关注核心估计量:双重差分的核心是处理效应(即pos=1时的dy/dx(treat)),三个模型的这一估计值高度一致且显著,说明你的核心结论稳健。预测值的局限更多是模型设定简单导致,不影响核心处理效应的有效性。

内容的提问来源于stack exchange,提问作者PaulaSpinola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:02:06