双重差分stata演示 数据链接

In [1]:
clear all
set more off
eststo clear
cd C:\Users\jefeer\Documents\git\learn\stata


C:\Users\jefeer\Documents\git\learn\stata
In [2]:
use Panel101.dta
des

Contains data from Panel101.dta
  obs:            70                          
 vars:             9                          3 Jan 2020 11:28
--------------------------------------------------------------------------------
              storage   display    value
variable name   type    format     label      variable label
--------------------------------------------------------------------------------
country         long    %14.0g     country    Country
year            int     %8.0g                 Year
y               double  %10.0g                Outcome Y
y_bin           float   %9.0g                 Binary outcome Y
x1              float   %9.0g                 Predictor x1
x2              float   %9.0g                 Predictor x2
x3              float   %9.0g                 Predictor x3
opinion         float   %18.0g     agree      Categorical variable
op              float   %9.0g                 
--------------------------------------------------------------------------------
Sorted by: country  year

设立did项

In [3]:
gen time = (year >= 1994)&!missing(year)
gen treated = (country >4)&!missing(country)
gen did = time * treated

最原始的方法

In [4]:
reg y i.time##i.treated,r
Linear regression                               Number of obs     =         70
                                                F(3, 66)          =       2.17
                                                Prob > F          =     0.0998
                                                R-squared         =     0.0827
                                                Root MSE          =     3.0e+09

------------------------------------------------------------------------------
             |               Robust
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
      1.time |   2.29e+09   9.00e+08     2.54   0.013     4.92e+08    4.09e+09
   1.treated |   1.78e+09   1.05e+09     1.70   0.094    -3.11e+08    3.86e+09
             |
time#treated |
        1 1  |  -2.52e+09   1.45e+09    -1.73   0.088    -5.42e+09    3.81e+08
             |
       _cons |   3.58e+08   7.61e+08     0.47   0.640    -1.16e+09    1.88e+09
------------------------------------------------------------------------------

加载一些外部命令 diff外部命令

In [5]:
diff y, t(treated) p(time)
DIFFERENCE-IN-DIFFERENCES ESTIMATION RESULTS
Number of observations in the DIFF-IN-DIFF: 70
            Before         After    
   Control: 16             24          40
   Treated: 12             18          30
            28             42
--------------------------------------------------------
 Outcome var.   | y       | S. Err. |   |t|   |  P>|t|
----------------+---------+---------+---------+---------
Before          |         |         |         | 
   Control      |  3.6e+08|         |         | 
   Treated      |  2.1e+09|         |         | 
   Diff (T-C)   |  1.8e+09|  1.1e+09| 1.58    | 0.120
After           |         |         |         | 
   Control      |  2.6e+09|         |         | 
   Treated      |  1.9e+09|         |         | 
   Diff (T-C)   | -7.4e+08|  9.2e+08| 0.81    | 0.422
                |         |         |         | 
Diff-in-Diff    | -2.5e+09|  1.5e+09| 1.73    | 0.088*
--------------------------------------------------------
R-square:    0.08
* Means and Standard Errors are estimated by linear regression
**Inference: *** p<0.01; ** p<0.05; * p<0.1

利用面板数据解决不随时间改变的内生性

In [6]:
reghdfe y did,a(i.year i.country)
(MWFE estimator converged in 2 iterations)

HDFE Linear regression                            Number of obs   =         70
Absorbing 2 HDFE groups                           F(   1,     53) =       3.60
                                                  Prob > F        =     0.0632
                                                  R-squared       =     0.3874
                                                  Adj R-squared   =     0.2024
                                                  Within R-sq.    =     0.0636
                                                  Root MSE        =  2.693e+09

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         did |  -2.52e+09   1.33e+09    -1.90   0.063    -5.18e+09    1.43e+08
       _cons |   2.49e+09   4.69e+08     5.31   0.000     1.55e+09    3.43e+09
------------------------------------------------------------------------------

Absorbed degrees of freedom:
-----------------------------------------------------+
 Absorbed FE | Categories  - Redundant  = Num. Coefs |
-------------+---------------------------------------|
        year |        10           0          10     |
     country |         7           1           6     |
-----------------------------------------------------+

进行平行趋势检验——直接画图

In [8]:
preserve 
bysort year treated: egen mean_y = mean(y)

duplicates drop year mean_y,force

line y year if treated==1 || line y year if treated ==0 , xline(1994,lp(dash_dot) lc(dkgreen))

restore


Duplicates in terms of year mean_y

(50 observations deleted)

第二种回归的方法平行趋势检验

In [9]:
gen Dyear = year-1994

gen Before3 = (Dyear==-3&treated==1)

gen Before2 = (Dyear==-2&treated==1)

gen Before1 = (Dyear==-1&treated==1)

gen Current = (Dyear==0&treated==1)

gen After1 = (Dyear==1&treated==1)

gen After2 = (Dyear==2&treated==1)

gen After3 = (Dyear==3&treated==1)


reghdfe y did Be* Current Af* , a(i.year i.country)
est store m1
test Before3= Before2= Before1=0  //测试联合显著性
coefplot m1, keep(Before* Current After*) vertical recast(connect) yline(0)







(MWFE estimator converged in 2 iterations)

HDFE Linear regression                            Number of obs   =         70
Absorbing 2 HDFE groups                           F(   8,     46) =       1.74
                                                  Prob > F        =     0.1141
                                                  R-squared       =     0.4979
                                                  Adj R-squared   =     0.2468
                                                  Within R-sq.    =     0.2325
                                                  Root MSE        =  2.617e+09

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
         did |  -2.14e+09   2.45e+09    -0.87   0.387    -7.07e+09    2.79e+09
     Before3 |  -9.00e+08   2.83e+09    -0.32   0.752    -6.59e+09    4.79e+09
     Before2 |   5.10e+08   2.83e+09     0.18   0.858    -5.18e+09    6.20e+09
     Before1 |  -1.88e+09   2.83e+09    -0.66   0.510    -7.57e+09    3.81e+09
     Current |  -9.30e+07   2.45e+09    -0.04   0.970    -5.02e+09    4.83e+09
      After1 |  -6.43e+09   2.45e+09    -2.63   0.012    -1.14e+10   -1.51e+09
      After2 |  -1.91e+08   2.45e+09    -0.08   0.938    -5.12e+09    4.74e+09
      After3 |   1.03e+09   2.45e+09     0.42   0.675    -3.89e+09    5.96e+09
       _cons |   2.74e+09   8.71e+08     3.14   0.003     9.83e+08    4.49e+09
------------------------------------------------------------------------------

Absorbed degrees of freedom:
-----------------------------------------------------+
 Absorbed FE | Categories  - Redundant  = Num. Coefs |
-------------+---------------------------------------|
        year |        10           0          10     |
     country |         7           1           6     |
-----------------------------------------------------+



 ( 1)  Before3 - Before2 = 0
 ( 2)  Before3 - Before1 = 0
 ( 3)  Before3 = 0

       F(  3,    46) =    0.28
            Prob > F =    0.8420

安慰剂检验1——改变政策发生时间

In [10]:
gen time2 = (year >= 1992)&!missing(year)
gen did2 = time2 * treated

reghdfe y did2   , a(i.year i.country)

(MWFE estimator converged in 2 iterations)

HDFE Linear regression                            Number of obs   =         70
Absorbing 2 HDFE groups                           F(   1,     53) =       1.51
                                                  Prob > F        =     0.2245
                                                  R-squared       =     0.3639
                                                  Adj R-squared   =     0.1718
                                                  Within R-sq.    =     0.0277
                                                  Root MSE        =  2.744e+09

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        did2 |  -2.04e+09   1.66e+09    -1.23   0.225    -5.36e+09    1.29e+09
       _cons |   2.54e+09   6.56e+08     3.88   0.000     1.23e+09    3.86e+09
------------------------------------------------------------------------------

Absorbed degrees of freedom:
-----------------------------------------------------+
 Absorbed FE | Categories  - Redundant  = Num. Coefs |
-------------+---------------------------------------|
        year |        10           0          10     |
     country |         7           1           6     |
-----------------------------------------------------+

安慰剂检验2——改变分组,这里可以用随机化的方式来做,我手动做

In [11]:
gen treated2 = (country >6)&!missing(country)
gen did3 = time * treated2
reghdfe y did3   , a(i.year i.country)

(MWFE estimator converged in 2 iterations)

HDFE Linear regression                            Number of obs   =         70
Absorbing 2 HDFE groups                           F(   1,     53) =       0.04
                                                  Prob > F        =     0.8344
                                                  R-squared       =     0.3463
                                                  Adj R-squared   =     0.1489
                                                  Within R-sq.    =     0.0008
                                                  Root MSE        =  2.782e+09

------------------------------------------------------------------------------
           y |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        did3 |   4.07e+08   1.94e+09     0.21   0.834    -3.48e+09    4.30e+09
       _cons |   1.81e+09   3.72e+08     4.87   0.000     1.06e+09    2.56e+09
------------------------------------------------------------------------------

Absorbed degrees of freedom:
-----------------------------------------------------+
 Absorbed FE | Categories  - Redundant  = Num. Coefs |
-------------+---------------------------------------|
        year |        10           0          10     |
     country |         7           1           6     |
-----------------------------------------------------+