Diff-in-diff with count dependent variable: OLS vs Poisson vs Negative Binomial

74 Views Asked by At

I am estimating a diff-in-diff simple model with an interaction term consisting of the product between a dummy of treatment status (treat) and a dummy of post-treatment time period (pos). The questions I have concern the fact that my dependent variable (outcome) is a count variable. Given that I have data on the same hospital over time, I cluster the standard errors at the hospital level (health_cent_id).

I am not sure whether I should use Poisson or Negative Binomial regressions instead of OLS. I tried estimating the three models in Stata (see below the code). Then, using the margins command, I computed the mean outcome difference between treated and controls units for both the baseline and the post-treatment periods. I copy the output of the margins command below.

Strangely, the marginal effect estimates for the Poisson specification are identical to those obtained by the OLS regression. Is this reasonable? The Negative Binomial marginal estimates are also very similar to the other two models.

In the end of the code below, I show that the mean predicted outcome values from the three models are very similar to that of the observed data and are also never negative (as in the original data). However, they are also never equal to zero and have a much narrower range. As shown below, the three models predict outcomes ranging from 7 to 28 while the observed values range from 0 to 504.

I am not sure how to proceed.

* ~~~ 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
--------------------------------------------------------------
*/

* ~~~ Negative Binomial Model
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
*/
0

There are 0 best solutions below