Bireysel seviye paneli verileriyle farklar arasındaki fark


11

Bireysel seviye paneli verileriyle fark modelinde bir fark belirlemenin doğru yolu nedir?

Kurulum: Birkaç yıl boyunca şehirlere gömülü bireysel düzey panel verilerim olduğunu ve tedavinin şehir yılı düzeyine göre değiştiğini varsayalım. Resmi olarak izin bireysel için sonucun şehir içinde ve yılı ve olsun müdahale etkilenen şehrin bir kukla olmak de yıl . Bertrand ve arkadaşlarında (2004, s. 250) özetlenen gibi tipik bir DiD tahmincisi, şehir ve yıl için sabit etki terimlerine sahip basit bir OLS modeline dayanmaktadır: i s t D s t s tyististDstst

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

Ancak bu tahminci bireysel düzeydeki panel yapısını göz ardı ediyor mu (yani şehirlerdeki her bir birey için çoklu gözlemler)? Bu modeli bireysel seviye sabit efekt terimi ile genişletmek anlamlı mı ? Birçok DiD uygulaması, bireysel düzey panel verileri olmadan tekrarlanan kesit verileri kullanır.Si


Bertrand, Marianne, Esther Duflo ve Sendhil Mullainathan. 2004. “Fark-Fark-Tahminlerine Ne Kadar Güvenmeliyiz?” Üç Aylık Ekonomi Dergisi 119 (1): 249-75.


Varlık mankenlerinin etkilerini yakalamak istiyorsanız, neden sabit bir etki modeli oluşturmuyorsunuz? DID, aptallar da dahil olmak üzere 2 zaman periyodu ile FE'ye eşdeğerdir ve daha sonra DID yapmak onların düşmesine neden olur.
VCG

Yanılıyorsam beni düzeltin ama iki fark görüyorum: a) bir fe modeli, etkiyi tahmin etmek için bir birim içi karşılaştırmayı kullanır (örneğin, gelir belirli bir yaşam olayından sonra daha yüksek veya daha düşüktür). Bir DiD yaklaşımı fikri, diğer gözlemleri tedavi olmadan ne olacağını yakalamak için kontrol eğilimi olarak kullanmaktır. b) DiD, bireysel seviye tedaviye değil grup düzeyine odaklanır. Şimdi soru, örneğimdeki denkleme sadece bireysel bir seviye terimi eklersem ne olur. Kontrol kontrolünü bir kontrol eğilimi olarak mı kullanıyor? Tüm kontrol obs tedaviye rağmen değişmez ...
greg

Yanıtlar:


11

Farklılıklardaki farklılıkların (DiD) hoş bir özelliği aslında panel verilerine ihtiyaç duymamanızdır. Tedavinin bir çeşit toplamada gerçekleştiği göz önüne alındığında (vaka şehirlerinizde), tedaviden önce ve sonra şehirlerden rastgele bireyleri örneklemeniz yeterlidir. Bu, yi tahmin ve tedavinin nedensel etkisini, kontrol için beklenen post-öncesi sonuç farkı eksi.

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

İnsanların bir tedavi göstergesi yerine bireysel sabit etkiler kullandıkları bir durum vardır ve bu, tedavinin gerçekleştiği iyi tanımlanmış bir toplama seviyesine sahip olmadığımız zamandır. Bu durumda, burada , tedavi sonrası dönem için bir gösterge tedaviyi aldı (örneğin, her yerde gerçekleşen bir iş piyasası programı). Bu konuda daha fazla bilgi için Steve Pischke'nin bu ders notlarına bakınız.

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

Ortamınızda, bireysel sabit efektler eklemek, nokta tahminlerine göre hiçbir şeyi değiştirmemelidir. Tedavi göstergesi sadece bireysel sabit etkiler tarafından emilecektir. Bununla birlikte, bu sabit etkiler kalan varyansın bir kısmını emebilir ve bu nedenle potansiyel olarak DiD katsayınızın standart hatasını azaltabilir.Ag

İşte durumun böyle olduğunu gösteren bir kod örneği. Stata kullanıyorum, ancak bunu istediğiniz istatistik paketinde çoğaltabilirsiniz. Buradaki "bireyler" aslında ülkelerdir, ancak hala bazı tedavi göstergelerine göre gruplandırılmaktadır.

* 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
-------------+----------------------------------------------------------------

Böylece, bireysel sabit efektler dahil edildiğinde DiD katsayısının aynı kaldığını görürsünüz (Stata'daki aregmevcut sabit etki tahmin komutlarından biridir). Standart hatalar biraz daha sıkıdır ve orijinal tedavi göstergemiz bireysel sabit etkiler tarafından absorbe edildi ve bu nedenle regresyona düştü.


Yoruma yanıt olarak, insanların bir tedavi grubu göstergesi yerine bireysel sabit etkiler kullandıklarını göstermek için Pischke örneğinden bahsettim. Ayarınız iyi tanımlanmış bir grup yapısına sahiptir, bu nedenle modelinizi yazma şekliniz mükemmeldir. Standart hatalar şehir düzeyinde, yani tedavinin gerçekleştiği toplama seviyesinde kümelenmelidir (bunu örnek kodda yapmadım, ancak DiD ayarlarında standart hataların Bertrand ve ark. Belgesinde gösterildiği gibi düzeltilmesi gerekiyor. ).

Ev sahipleri ile ilgili olarak, burada oynayacakları bir rolleri yoktur. Tedavi göstergesi bir muamele şehir içinde yaşayan insanlar için 1'e eşit olduğu tedavi sonrası dönem içinde . DiD katsayısını hesaplamak için, aslında sadece dört koşullu beklentiyi, yani 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)]

Dolayısıyla, tedavi gören bir şehirde ilk iki için yaşayan ve daha sonra geri kalan iki dönem için bir kontrol şehrine taşınan bir kişi için 4 tedavi sonrası döneminiz varsa, bu gözlemlerin ilk ikisi hesaplanmasında kullanılacaktır. ve son iki . Tespitin neden zaman içinde grup farklılıklarından geldiğini açıklamak için bunu basit bir grafikle görselleştirebilirsiniz. Sonuçtaki değişikliğin gerçekten sadece tedavi nedeniyle olduğunu ve çağdaş bir etkiye sahip olduğunu varsayalım. Tedavi başladıktan sonra tedavi edilen bir şehirde yaşayan ancak daha sonra bir kontrol şehrine taşınan bir bireyiniz varsa, sonuçları tedavi edilmeden önceki haline geri dönmelidir. Bu, aşağıdaki stilize grafikte gösterilmiştir.E ( y i s t | s = 0 , t = 1 )E(yist|s=1,t=1)E(yist|s=0,t=1)

resim açıklamasını buraya girin

Yine de başka nedenlerle taşınma hakkında düşünmek isteyebilirsiniz. Örneğin, tedavinin kalıcı bir etkisi varsa (yani, birey hareket etmesine rağmen hala sonucu etkiler)


2
Güzel cevap. Hataların şehir düzeyinde kümelenmesini de önerir misiniz?
Dimitriy V. Masterov

Harika cevap, teşekkürler. Denkleminiz sayfa 12'deki eşit 3'tür, değil mi? Pischke bu bölümü "Bununla birlikte, bazen tedavinin atandığı hiçbir doğal birim yoktur. Bunun yerine, bazı bireyler belirli bir zamanda tedavi edilir, bazıları ise tedavi edilmez". Ama durum böyle değil. Tedavi ayarımda şehir (veya herhangi bir grup) düzeyinde IS + panel verisi var. Belki de kümelenmiş se ile doğru model olabilir. Ne söylerdin? Ya bireyler yıllar içinde şehirler arasında gidebilirlerse? Bu durumda, 'tedavi edilmiş' için katsayı taşıyıcılara göre belirlenir, değil mi?
greg

@ DimitriyV.Masterov Bertrand ve arkadaşlarının önerisi, standart hataları tedavinin gerçekleştiği grup düzeyinde kümelendirmektir. Alternatif olarak, yine şehir seviyesinde olacak olsa da, yedekli bir blok bootstrap kullanabilirsiniz.
Andy

@greg Cevabınızı, yorumunuza biraz daha ayrıntılı yanıt vermek için düzenledim. Umarım bu yardımcı olur :-)
Andy

birden çok dönem kullanırsak fark yaratır mı? kukla D_i_t etkinlikten önceki tüm dönemler için sıfır ve yine de etkinlikten sonraki tüm dönemler için bir olacaktır. sadece iki dönem kullanırsam aynı olmaz mıydı? @Andy
Jinhua Wang

1

Kısa cevap, ünitede veya tedavi edilen grup seviyesinde sabit etki kullanmanın tahmini değiştirmemesi, sadece çıkarımda olmasıdır. Tipik olarak, birim sabit efekti kullanmak daha fazla varyasyonu emer ve böylece daha küçük standart hatalarınız olur.

Birimlerin aynı toplu grupta olup olmadığı bu sonucu değiştirmez (yalnızca tedavi edilen grup düzeyinizi nasıl tanımladığınızı ve tekrarlanan kesitler yerine panele ihtiyaç duyduğunuz gerçeğini değiştirir).

Bununla birlikte, eşdeğerliğin yalnızca eşdeğeri X olmadığında geçerli olduğunu unutmayın. X'lere sahip olur olmaz, birim veya grup sabit efektleri kullansanız da sonuçlar farklıdır.

Aşağıdaki örnek 3 tahminciyi iki durumda X ile veya X olmadan karşılaştırır. Tahminciler:

  1. EKK
  2. (Tedavi edilmiş) grup sabit etkili FE
  3. Birim sabit etkili FE

#>              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

Kod:

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"))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.