Lo stimatore DID unapplicazione empirica Lez 5 Guido

  • Slides: 22
Download presentation
Lo stimatore DID: un’applicazione empirica Lez. 5 Guido Pellegrini

Lo stimatore DID: un’applicazione empirica Lez. 5 Guido Pellegrini

Ripasso DIFF-IN-DIFFS (DID) • Lo stimatore Diff-in-Diffs (DID) è adatto per stimare l’ATT di

Ripasso DIFF-IN-DIFFS (DID) • Lo stimatore Diff-in-Diffs (DID) è adatto per stimare l’ATT di una politica nel caso in cui: • si verifichi un esperimento naturale che determini un cambiamento di una politica solo per un gruppo di individui all’interno di una più ampia popolazione (no full coverage); • si abbiano a disposizione dati panel, ovvero osservazioni sugli stessi individui (sia trattati che non trattati) prima e dopo l'esperimento naturale, ovvero prima e dopo il trattamento. • Lo stimatore DID può essere implementato anche utilizzando cross-section ripetuti di dati (pseudo-panel).

Ripasso DIFF-IN-DIFFS (DID) • Se quindi si dispone di osservazioni per i trattati e

Ripasso DIFF-IN-DIFFS (DID) • Se quindi si dispone di osservazioni per i trattati e per i non trattati in almeno due periodi di tempo a cavallo del trattamento (�� e �� , con �� >�� ), l’ATT può essere stimato usando lo stimatore DID. • Tale stimatore è pari alla variazione media di Y nel gruppo dei trattati tra �� e �� , meno la variazione media di Y nel gruppo di controllo nello stesso periodo: DID=[E(Y|D=1, t=t)-E(Y|D=1, t=�� )]-[E(Y|D=0, t=t)-E(Y|D=0, t=�� )]

Assunzioni DIFF-IN-DIFFS (DID) Lo stimatore DID si basa su due assunzioni: • DID 1)

Assunzioni DIFF-IN-DIFFS (DID) Lo stimatore DID si basa su due assunzioni: • DID 1) la partecipazione al programma dipende da variabili osservabili e/o non osservabili con effetti fissi sugli individui, ovvero gli individui non si autoselezionano al programma in base a momentanei shock; • DID 2) cambiamenti nel tempo comuni fra trattati e non trattati: �� (���� -���� |�� =1)=�� (���� -���� |�� =0) DID 2) afferma che in assenza di trattamento, i trend relativi al gruppo di trattati e a quello di controllo sarebbero rimasti invariati.

Identificazione DIFF-IN-DIFFS (DID) •

Identificazione DIFF-IN-DIFFS (DID) •

stima DIFF-IN-DIFFS (DID) • Lo stimatore Diff-in-Diffs può essere calcolato tramite una semplice regressione

stima DIFF-IN-DIFFS (DID) • Lo stimatore Diff-in-Diffs può essere calcolato tramite una semplice regressione lineare della variazione di Yi per l’individuo i (ΔY i) sulla variabile binaria che denota il trattamento (Di) (3. 2) ΔYi = β 0 + β 1 Di + ui La stima di β 1 nella (3. 2) con lo stimatore OLS corrisponde a β^DID. • In alternativa, è del tutto equivalente stimare il modello (3. 3) Yi =β 0 +δ 0 Di +δ 1 Ti +β 1 Di. Ti +ui dove Ti èla variabile binaria (uguale ad 1 se Ti = t) che cattura i fattori che avrebbero causato cambiamenti in Yi a prescindere dalla presenza del trattamento; Di cattura le possibili differenze pre-trattamento fra gruppo dei trattati e gruppo di controllo; il parametro β 1 cattura l’ATT della politica e la sua stima tramite OLS corrisponde a β^DID.

simulazione • Creiamo un dataset di 10000 osservazioni in stata set obs 10000 Creiamo

simulazione • Creiamo un dataset di 10000 osservazioni in stata set obs 10000 Creiamo una variabile corrispondente a un errore a media 0 e varianza 1 che si distribuisce come una normale • gen unif=uniform() (distribuzione uniforme compresa tra 0 e 1 che non è compreso) • gen err 1=invnormal(uniform()) (distribuzione normale)

simulazione • Creiamo un identificativo per le 10000 osservazioni gen i=_n • Esempio: effetto

simulazione • Creiamo un identificativo per le 10000 osservazioni gen i=_n • Esempio: effetto della frequenza di un corso di formazione sul salario. La frequenza del corso è possibile solo ai laureati con un voto maggiore di 105 e un’età tra I 20 e 30 gen voto = 95+int(16*runiform()) gen eta = 20+int(11*runiform()) gen trat=voto>104

simulazione • Il salario pre trattamento dipende dall’età e da una variabile non osservabile

simulazione • Il salario pre trattamento dipende dall’età e da una variabile non osservabile formata da due componenti: una legata al voto dell’università, che è costante nel tempo, e una componente random: • gen u 0=0. 5*voto+err 1 • gen y 0= 0. 7*eta+0. 5*u 0

simulazione • Dopo il trattamento (cioè dopo due anni) , per i trattati il

simulazione • Dopo il trattamento (cioè dopo due anni) , per i trattati il salario sarà: • gen err 2=invnormal(uniform()) • gen u 1=0. 5*voto+err 2 • gen y 1=0. 7*(eta+2)+2*trat+0. 5*u 1 if trat==1 • Per i non trattati lo stesso senza trattamento • replace y 1=0. 7*(eta+2)+0. 5*u 1 if trat==0 • L’effetto del trattamento è quindi 2

 • -> trat = 0 • Variable | Obs Mean Std. Dev. Min

• -> trat = 0 • Variable | Obs Mean Std. Dev. Min Max • -------+---------------------------- • unif | 6277 . 4928755 . 2855303 . 0000419 . 9999346 • i | 6277 5006. 626 2884. 138 1 9999 voto | 6277 99. 52589 2. 873392 95 104 • eta | 6277 24. 98248 3. 164999 20 30 err 1 | 6277 . 0038901 1. 002304 -3. 702067 3. 601429 • -------+---------------------------- err 2 | 6277 -. 011366 1. 012939 -3. 50866 3. 65997 • u 0 | 6277 49. 76683 1. 745398 44. 6371 54. 98138 • u 1 | 6277 49. 75158 1. 762113 43. 99134 54. 90807 • y 0 | 6277 42. 37115 2. 374387 36. 65524 48. 0512 • trat | 6277 0 • y 1 | 6277 43. 76352 2. 382337 37. 82696 49. 814 • --------------------------------------------------------------------------------------- • -> trat = 1 • Variable | Obs Mean Std. Dev. Min Max • -------+---------------------------- • unif | 3723 . 4925835 . 2915873 . 0002977 . 9996094 • i | 3723 4990. 171 2891. 898 2 10000 • voto | 3723 107. 513 1. 716791 105 110 • eta | 3723 24. 93661 3. 153218 20 30 • err 1 | 3723 -. 0041182 1. 00439 -3. 473059 3. 600354 • -------+---------------------------- • err 2 | 3723 -. 0014283 . 9942211 -3. 78669 3. 803364 • u 0 | 3723 53. 7524 1. 337006 49. 02694 58. 60035 • u 1 | 3723 53. 75509 1. 307827 49. 3928 57. 85445 • y 0 | 3723 44. 33182 2. 29989 39. 29988 50. 12856 • trat | 3723 1 0 1 • y 1 | 3723 47. 73317 2. 307256 42. 84843 53. 31012

risultati • • effetto=E(Y|D=1)- E(Y|D=0) 47. 73317 -43. 76352= 4 ≠ 2 Perché? correlate

risultati • • effetto=E(Y|D=1)- E(Y|D=0) 47. 73317 -43. 76352= 4 ≠ 2 Perché? correlate y 1 u 1 • • | y 1 u 1 -------+--------- y 1 | 1. 0000 u 1 | 0. 6555 1. 0000 •

risultati • * trattati sarebbero stati migliori comunque • . gen y 1 senza=0.

risultati • * trattati sarebbero stati migliori comunque • . gen y 1 senza=0. 7*(eta+2)+0. 5*u 1 • • -> trat = 0 Variable | Obs Mean Std. Dev. Min Max -------+---------------------------- y 1 senza | 6277 43. 76352 2. 382337 37. 82696 49. 814 -> trat = 1 Variable | Obs Mean Std. Dev. Min Max -------+---------------------------- y 1 senza | 3723 45. 73317 2. 307256 40. 84843 51. 31012 • E anche senza trattamento avrebbero avuto un Y maggiore di 2

risultati • • quindi se faccio ols reg y 1 trat --------------------------------------- y 1

risultati • • quindi se faccio ols reg y 1 trat --------------------------------------- y 1 | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------+-------------------------------- trat | 3. 969648 . 0487087 81. 50 0. 000 3. 87 4. 065127 cons | 43. 76352 . 0297203 1472. 51 0. 000 43. 82178 --------------------------------------- • coef di trat (4) è la somma di effetto trat (2) + diff. Nel voto (2)

risultati • come eliminare? L’effetto voto è costante nel tempo quindi did • DID=

risultati • come eliminare? L’effetto voto è costante nel tempo quindi did • DID= [E(y 1|trat=1, t=1)- E(y 1|trat=1, t=0)]- [E(y 1|trat=0, t=1)- E(y 1|trat=0, t=0)] • (47. 7 -44. 3)-(43. 8 -42. 4)=3. 4 -1. 4=2 ok • È possibile anche fare regressione che dà significatività

risultati • gen dy=y 1 -y 0 • . regress dy trat • •

risultati • gen dy=y 1 -y 0 • . regress dy trat • • • Source | SS df MS -------+--------------- Model | 9431. 77331 1 9431. 77331 Residual | 5054. 33308 9998 . 505534415 -------+--------------- Total | 14486. 1064 9999 1. 44875551 Number of obs = 10000 F( 1, 9998) =18657. 04 Prob > F = 0. 0000 R-squared = 0. 6511 Adj R-squared = 0. 6511 Root MSE = . 71101 • • • --------------------------------------- dy | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------+-------------------------------- trat | 2. 008973 . 014708 136. 59 0. 000 1. 980142 2. 037804 _cons | 1. 392372 . 0089743 155. 15 0. 000 1. 374781 1. 409963 ---------------------------------------

Risultati con modello in livelli • *da forma wide a forma long reshape long

Risultati con modello in livelli • *da forma wide a forma long reshape long y, i(i) j(period) • • • • • • • • (wide form) i . . . . x_ij. . . . id sex inc 80 inc 81 inc 82 --------------- 1 0 5000 5500 6000 2 1 2000 2200 3300 3 0 3000 2000 1000 (long form) i j x_ij id year sex inc ----------- 1 80 0 5000 1 81 0 5500 1 82 0 6000 2 80 1 2000 2 81 1 2200 2 82 1 3300 3 80 0 3000 3 81 0 2000 3 82 0 1000 Given these data, you could use reshape to convert from one form to the other:

Risultati in livello • gen tratperiod=period*trat • regress y trat period tratperiod • •

Risultati in livello • gen tratperiod=period*trat • regress y trat period tratperiod • • • Source | SS df MS Number of obs = 20000 -------+--------------- F( 3, 19996) = 4144. 69 Model | 68713. 9523 3 22904. 6508 Prob > F = 0. 0000 Residual | 110503. 213 19996 5. 52626592 R-squared = 0. 3834 -------+--------------- Adj R-squared = 0. 3833 Total | 179217. 166 19999 8. 96130635 Root MSE = 2. 3508 • • --------------------------------------- y | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------+-------------------------------- trat | 1. 960675 . 0486288 40. 32 0. 000 1. 865358 2. 055991 period | 1. 392372 . 0419619 33. 18 0. 000 1. 310123 1. 474621 tratperiod | 2. 008973 . 0687715 29. 21 0. 000 1. 874175 2. 143771 _cons | 42. 37115 . 0296715 1428. 01 0. 000 42. 31299 42. 42931 --------------------------------------- • .

Comandi utilizzati clear all set obs 10000 gen unif=uniform() gen err 1=invnormal(uniform()) gen i=_n

Comandi utilizzati clear all set obs 10000 gen unif=uniform() gen err 1=invnormal(uniform()) gen i=_n gen voto = 95+int(16*runiform()) gen eta = 20+int(11*runiform()) gen trat=voto>104 gen u 0=0. 5*voto+err 1 gen y 0= 0. 7*eta+0. 5*u 0 gen err 2=invnormal(uniform()) gen u 1=0. 5*voto+err 2 gen y 1=0. 7*(eta+2)+2*trat+0. 5*u 1 if trat==1 replace y 1=0. 7*(eta+2)+0. 5*u 1 if trat==0 bysort trat: su corr y 1 u 1 gen y 1 senza=0. 7*(eta+2)+0. 5*u 1 bysort trat: su y 1 senza reg y 1 trat gen dy=y 1 -y 0 regress dy trat

Quando l’assunzione DID 1) non è valida: Ashenfelter’s dip • Lo stimatore DID non

Quando l’assunzione DID 1) non è valida: Ashenfelter’s dip • Lo stimatore DID non è in grado di controllare per i cambiamenti temporanei non osservati relativi ai vari individui sotto esame, che sono in grado di influenzare la decisione di partecipazione al programma. • Questo problema viene denominato Ashenfelter’s dip, dal nome dello studioso che per primo lo ha individuato nel 1978. Difatti, ci sono molte situazioni in cui gli individui si autoselezionano in un programma in base a shock momentanei.

Ashenfelter’s dip • Un esempio classico di questo problema viene dai corsi di formazione

Ashenfelter’s dip • Un esempio classico di questo problema viene dai corsi di formazione mirati esplicitamente a individui che hanno perso il posto di lavoro di recente. Se si analizza la serie storica dei salari dei partecipanti a questi corsi, spesso si nota un calo (dip) proprio in corrispondenza del periodo pre-trattamento. • situazione ipotetica in cui un calo nei salari pretrattamento causa distorsione nelle stime dell’ATT con lo stimatore DID

Le due serie storiche dei salari dei lavoratori nel gruppo dei trattati e in

Le due serie storiche dei salari dei lavoratori nel gruppo dei trattati e in quello di controllo sono rappresentate da linee compatte, mentre si ipotizza che la linea tratteggiata corrisponda a ciò che sarebbe successo al salario dei trattati in assenza del trattamento (scenario controfattuale). Sapendo il vero controfattuale (nella realtà tale valore è ignoto) si vede che il vero ATT è pari al segmento più corto tra i 3 alla destra delle serie storiche. Utilizzando il DID la stima dell’ATT è pari alla differenza tra il segmento più lungo e quello in mezzo; tale stima è superiore al valore vero. Numericamente si può vedere che il vero ATT è pari a 2 (8 -6), mentre l’effetto causale stimato tramite il DID è pari a 3 ((8 -2)-(10 -7)) e quindi sovrastima l’efficacia del corso.