Sự khác biệt về sự khác biệt với dữ liệu bảng cấp độ cá nhân


11

Cách chính xác để xác định sự khác biệt trong mô hình khác biệt với dữ liệu bảng cấp độ cá nhân là gì?

Đây là thiết lập: Giả sử rằng tôi có dữ liệu bảng cấp độ cá nhân được nhúng trong các thành phố trong nhiều năm và cách xử lý khác nhau ở cấp độ thành phố. Chính thức, chúng ta hãy được kết quả cho cá nhân trong thành phố và năm và là một hình nộm cho dù có sự can thiệp bị ảnh hưởng thành phố trong năm . Một công cụ ước tính DiD điển hình như một công cụ được phác thảo trong Bertrand et al (2004, p. 250) dựa trên mô hình OLS đơn giản với các thuật ngữ hiệu ứng cố định cho thành phố và năm:yists t D s t s tistDstst

yist=As+Bt+cXist+βDst+ϵist

Nhưng công cụ ước tính đó có bỏ qua cấu trúc bảng điều khiển cấp cá nhân (tức là nhiều quan sát cho từng cá nhân trong các thành phố) không? Liệu có ý nghĩa gì khi mở rộng mô hình này với thuật ngữ hiệu ứng cố định ở cấp độ cá nhân ? Nhiều ứng dụng DiD sử dụng dữ liệu mặt cắt lặp đi lặp lại mà không có dữ liệu bảng cấp độ cá nhân.Si


Bertrand, Marianne, Esther Duflo và Sendhil Mullainathan. 2004. Ý nên ước lượng chênh lệch chênh lệch bao nhiêu? Tạp chí kinh tế hàng quý số 119 (1): 249 217575.


Nếu bạn muốn chụp các hiệu ứng của các hình nộm thực thể, tại sao không làm một mô hình hiệu ứng cố định? DID tương đương với FE với 2 khoảng thời gian vì vậy bao gồm cả người giả và sau đó thực hiện DID sẽ khiến họ bỏ học.
VCG

Sửa lỗi cho tôi nếu tôi sai nhưng tôi thấy hai điểm khác biệt: a) một mô hình fe sẽ sử dụng so sánh trong đơn vị để ước tính hiệu quả (ví dụ: Thu nhập cao hơn hoặc thấp hơn sau một sự kiện cuộc sống nhất định). Ý tưởng của phương pháp DiD là sử dụng các quan sát khác làm xu hướng kiểm soát để nắm bắt những gì sẽ xảy ra mà không cần điều trị. b) DiD tập trung vào cấp độ nhóm và không điều trị ở cấp độ cá nhân. Bây giờ câu hỏi là những gì xảy ra nếu tôi chỉ thêm một thuật ngữ cấp độ cá nhân vào phương trình trong ví dụ của tôi. Điều đó có sử dụng quan sát kiểm soát như một xu hướng kiểm soát? Tất cả các quan sát kiểm soát không khác nhau về cách điều trị mặc dù ...
greg

Câu trả lời:


11

Một tính năng hay của sự khác biệt (DiD) thực sự là bạn không cần dữ liệu bảng điều khiển cho nó. Cho rằng việc điều trị xảy ra ở một mức độ tổng hợp nào đó (trong trường hợp thành phố của bạn), bạn chỉ cần lấy mẫu các cá nhân ngẫu nhiên từ các thành phố trước và sau khi điều trị. Điều này cho phép bạn ước tính và nhận được hiệu quả nhân quả của điều trị như sự khác biệt về kết quả trước dự kiến ​​đối với đã xử lý trừ đi sự khác biệt sau kết quả trước dự kiến ​​cho sự kiểm soát.

yist=Ag+Bt+βDst+cXist+ϵist

Có một trường hợp trong đó mọi người sử dụng các hiệu ứng cố định riêng lẻ thay vì chỉ số điều trị và đây là khi chúng ta không có một mức độ tổng hợp được xác định rõ tại đó điều trị xảy ra. Trong trường hợp đó, bạn sẽ ước tính trong đó là một chỉ báo cho giai đoạn hậu xử lý cho các cá nhân đã nhận được điều trị (ví dụ, một chương trình thị trường việc làm xảy ra ở mọi nơi). Để biết thêm thông tin về điều này, xem những ghi chú bài giảng của Steve Pischke.

yit=αi+Bt+βDit+cXit+ϵit
Dit

Trong cài đặt của bạn, việc thêm các hiệu ứng cố định riêng lẻ sẽ không thay đổi bất cứ điều gì liên quan đến ước tính điểm. Chỉ số điều trị sẽ chỉ được hấp thụ bởi các hiệu ứng cố định riêng lẻ. Tuy nhiên, các hiệu ứng cố định này có thể khắc phục một số phương sai còn lại và do đó có khả năng làm giảm sai số chuẩn của hệ số DiD của bạn.Ag

Dưới đây là một ví dụ mã cho thấy đây là trường hợp. Tôi sử dụng Stata nhưng bạn có thể sao chép này trong gói thống kê mà bạn chọn. Các "cá nhân" ở đây thực sự là các quốc gia nhưng họ vẫn được nhóm theo một số chỉ số điều trị.

* load the data set (requires an internet connection)
use "http://dss.princeton.edu/training/Panel101.dta"

* generate the time and treatment group indicators and their interaction
gen time = (year>=1994) & !missing(year)
gen treated = (country>4) & !missing(country)
gen did = time*treated

* do the standard DiD regression
reg y_bin time treated did

------------------------------------------------------------------------------
       y_bin |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        time |       .375   .1212795     3.09   0.003     .1328576    .6171424
     treated |   .4166667   .1434998     2.90   0.005       .13016    .7031734
         did |  -.4027778   .1852575    -2.17   0.033    -.7726563   -.0328992
       _cons |         .5   .0939427     5.32   0.000     .3124373    .6875627
------------------------------------------------------------------------------

 * now repeat the same regression but also including country fixed effects
 areg y_bin did time treated, a(country)

------------------------------------------------------------------------------
       y_bin |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
        time |       .375    .120084     3.12   0.003     .1348773    .6151227
     treated |          0  (omitted)
         did |  -.4027778   .1834313    -2.20   0.032    -.7695713   -.0359843
       _cons |   .6785714    .070314     9.65   0.000       .53797    .8191729
-------------+----------------------------------------------------------------

Vì vậy, bạn thấy rằng hệ số DiD vẫn giữ nguyên khi bao gồm các hiệu ứng cố định riêng lẻ ( areglà một trong những lệnh ước tính hiệu ứng cố định có sẵn trong Stata). Các lỗi tiêu chuẩn hơi chặt chẽ hơn và chỉ số điều trị ban đầu của chúng tôi đã được hấp thụ bởi các hiệu ứng cố định riêng lẻ và do đó giảm trong hồi quy.

Đáp lại bình luận
tôi đã đề cập đến ví dụ Pischke để hiển thị khi mọi người sử dụng các hiệu ứng cố định riêng lẻ thay vì chỉ báo nhóm điều trị. Cài đặt của bạn có cấu trúc nhóm được xác định rõ ràng, do đó cách bạn viết mô hình của mình là hoàn toàn tốt. Các lỗi tiêu chuẩn nên được phân cụm ở cấp thành phố, tức là mức độ tổng hợp tại đó xử lý xảy ra (Tôi đã không thực hiện điều này trong mã ví dụ nhưng trong cài đặt DiD, các lỗi tiêu chuẩn cần phải được sửa chữa như được trình bày bởi bài báo của Bertrand et al ).

Về máy động lực, họ không có nhiều vai trò ở đây. Chỉ số điều trị bằng 1 cho những người sống trong một thành phố được điều trị trong sau điều trị thời gian . Để tính hệ số DiD, chúng tôi thực sự chỉ cần tính bốn kỳ vọng có điều kiện, cụ thể là Dstst

c=[E(yist|s=1,t=1)E(yist|s=1,t=0)][E(yist|s=0,t=1)E(yist|s=0,t=0)]

Vì vậy, nếu bạn có 4 giai đoạn sau điều trị cho một cá nhân sống trong một thành phố được điều trị trong hai lần đầu tiên và sau đó chuyển đến một thành phố kiểm soát trong hai giai đoạn còn lại, hai quan sát đầu tiên sẽ được sử dụng trong tính toán của và hai cái cuối cùng trong . Để làm rõ lý do tại sao nhận dạng đến từ sự khác biệt nhóm theo thời gian chứ không phải từ các động lực bạn có thể hình dung điều này bằng một biểu đồ đơn giản. Giả sử sự thay đổi trong kết quả chỉ thực sự là do điều trị và nó có tác dụng đương thời. Nếu chúng ta có một cá nhân sống trong một thành phố được điều trị sau khi điều trị bắt đầu nhưng sau đó chuyển đến một thành phố kiểm soát, kết quả của họ sẽ quay trở lại như trước khi họ được điều trị. Điều này được thể hiện trong biểu đồ cách điệu dưới đây.E ( y i s t | s = 0 , t = 1 )E(yist|s=1,t=1)E(yist|s=0,t=1)

nhập mô tả hình ảnh ở đây

Bạn vẫn có thể muốn nghĩ về máy động lực vì những lý do khác. Ví dụ, nếu việc điều trị có hiệu quả lâu dài (nghĩa là nó vẫn ảnh hưởng đến kết quả mặc dù cá nhân đã di chuyển)


2
Câu trả lời tốt đẹp. Bạn có đề nghị phân cụm các lỗi ở cấp thành phố ở đây không?
Dimitriy V. Masterov

Câu trả lời tuyệt vời, cảm ơn. Eq của bạn là eq 3 từ trang 12, phải không? Pischke giới thiệu phần này với "Tuy nhiên, đôi khi không có đơn vị tự nhiên nào được chỉ định điều trị. Thay vào đó, một số cá nhân được điều trị tại một thời điểm cụ thể và những người khác thì không". Nhưng đó không phải là trường hợp thực sự. Việc xử lý IS ở cấp thành phố (hoặc bất kỳ nhóm nào) trong cài đặt của tôi + tôi có dữ liệu bảng điều khiển. Nó có thể vẫn là mô hình phù hợp có thể với cụm se. Bạn muốn nói gì? Điều gì xảy ra nếu các cá nhân có thể di chuyển giữa các thành phố trong nhiều năm? Trong trường hợp đó, coef cho 'được xử lý' sẽ được xác định dựa trên các động lực, phải không?
greg

@ DimitriyV.Masterov Khuyến nghị của Bertrand et al sẽ là phân cụm các lỗi tiêu chuẩn ở cấp độ nhóm mà tại đó việc điều trị xảy ra. Ngoài ra, bạn có thể sử dụng một bootstrap khối với sự thay thế mặc dù cũng sẽ ở cấp thành phố một lần nữa.
Andy

@greg Tôi đã chỉnh sửa câu trả lời để trả lời chi tiết hơn một chút cho nhận xét của bạn. Tôi hy vọng điều này sẽ giúp :-)
Andy

Liệu nó có làm nên sự khác biệt nếu chúng ta sử dụng nhiều thời kỳ? D_i_t giả sẽ bằng không cho tất cả các giai đoạn trước sự kiện và sẽ là một cho tất cả các giai đoạn sau bất kỳ sự kiện nào. nó sẽ không giống nhau nếu tôi chỉ sử dụng hai giai đoạn? @Andy
Kim Hoa Wang

1

Câu trả lời ngắn gọn là việc sử dụng hiệu ứng cố định ở đơn vị hoặc ở cấp độ nhóm được xử lý không thay đổi ước tính, chỉ suy luận. Thông thường, sử dụng hiệu ứng cố định đơn vị sẽ hấp thụ nhiều biến thể hơn và do đó bạn sẽ có các lỗi tiêu chuẩn nhỏ hơn.

Việc các đơn vị trong cùng một nhóm tổng hợp không thay đổi kết quả này (nó chỉ thay đổi cách bạn xác định cấp độ nhóm được xử lý của mình và thực tế là bạn cần bảng điều khiển thay vì các mặt cắt lặp đi lặp lại).

Tuy nhiên, lưu ý rằng tính tương đương chỉ giữ khi không có đồng biến X. Ngay sau khi bạn có X, kết quả sẽ khác nhau cho dù bạn sử dụng hiệu ứng cố định đơn vị hay nhóm.

Ví dụ dưới đây so sánh 3 công cụ ước tính, trong hai trường hợp, có và không có X. Công cụ ước tính là:

  1. TUỔI
  2. FE với hiệu ứng cố định nhóm (được điều trị)
  3. FE với hiệu ứng cố định đơn vị

#>              OLS         FE treated  FE unit   OLS x       FE treated x  FE unit x
#> ----------------------------------------------------------------------------------
#> (Intercept)   0.500 ***                         0.491 ***                         
#>              (0.094)                           (0.107)                            
#> did          -0.403 *    -0.403 *    -0.403 *  -0.407 *    -0.407 *      -0.460 * 
#>              (0.185)     (0.185)     (0.183)   (0.189)     (0.189)       (0.187)  
#> x1                                              0.018       0.018         0.220   
#>                                                (0.104)     (0.104)       (0.165)  
#> ----------------------------------------------------------------------------------
#> Num. obs.    70          70          70        70          70            70       
#> ==================================================================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05

Mã số:

library(tidyverse)
library(haven)
library(texreg)
library(lfe)


dat <- read_dta("http://dss.princeton.edu/training/Panel101.dta")  %>% 
  mutate(time = (year>=1994) ,
         treated = (country>4),
         did = time*treated)

reg_ols <- lm(y_bin~ time+ treated+ did, data = dat)
reg_fe_a <- felm(y_bin~ did | time+ treated, data = dat)
reg_fe_b <- felm(y_bin~ did | time+ country, data = dat)

reg_ols_x <- update(reg_ols, .~.+x1)
reg_fe_a_x <- update(reg_fe_a, .~.+x1)
reg_fe_b_x <- update(reg_fe_b, .~.+x1)



screenreg(list(reg_ols, reg_fe_a, reg_fe_b, reg_ols_x, reg_fe_a_x, reg_fe_b_x), 
          omit.coef = "time|treated", digits=3, 
          include.rsquared = FALSE, include.adjrs = FALSE, include.rmse = FALSE,
          custom.model.names = c("OLS", "FE treated", "FE unit", "OLS x", "FE treated x", "FE unit x"))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.