计数因变量的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值的问题
- 模型设定局限:你的模型只包含
treat、pos及交互项,相当于仅用4组均值(对照组基准期、对照组处理后、处理组基准期、处理组处理后)来拟合所有观测值,预测值自然只能落在这4个均值的范围内(7.77-28.35),无法覆盖观测值的极端值(0、504)。 - 计数模型的预测特性:Poisson/负二项的默认预测是条件均值,当模型没有控制其他协变量时,无法捕捉个体层面的异质性,也就无法生成0或极端大值。
后续处理建议
- 加入控制变量:引入医院层面的特征(如规模、床位数、医护人数等)、时间趋势变量,提升模型对异质性的解释能力,让预测值更贴近实际数据分布。
- 检验过度离散:用Stata的
estat gof命令对Poisson模型做拟合优度检验,或直接查看负二项回归的α值——如果α显著不为0,说明存在过度离散,此时负二项回归比Poisson更合适;若α接近0,Poisson即可。 - 考虑零膨胀模型:如果观测值中0的占比不低(你的数据里有0值),可以尝试零膨胀Poisson(
zip)或零膨胀负二项(zinb)模型,这类模型专门处理存在过多零值的计数数据。 - 关注核心估计量:双重差分的核心是处理效应(即
pos=1时的dy/dx(treat)),三个模型的这一估计值高度一致且显著,说明你的核心结论稳健。预测值的局限更多是模型设定简单导致,不影响核心处理效应的有效性。
内容的提问来源于stack exchange,提问作者PaulaSpinola
相关产品推荐
相关产品推荐

