New In

Inferență robustă pentru modele liniare

Stata 18 oferă erori standard și intervale de încredere (IC) mai precise pentru trei modele liniare utilizate în mod obișnuit în Stata: regress, areg și xtreg, fe.

 

Repere

  • Multiway cluster–robust standard errors
  • HC2 standard errors:
    • Reglarea gradelor de libertate

    • Cluster-robust

    • Cluster-robust și ajustarea gradelor de libertate

Număr mic de clustere? Număr inegal de observații pe cluster? Folosiți HC2 cu ajustare a gradelor de libertate, opțiunea vce(hc2 …, dfadjust) sau bootstrap de cluster sălbatic pentru a obține o inferență validă.

Mai multe clustere nelipsite? Utilizați gruparea cu mai multe direcții, opțiunea vce(cluster group1 group2 … groupk), pentru a ține cont de corelația potențială a observațiilor din cadrul diferitelor grupuri.

Să vedem cum funcționează

Avem un panel de indivizi și am dori să studiem efectul apartenenței la un sindicat asupra logaritmului salariului ln_salariu. Controlăm dacă individul are sau nu o diplomă de colegiu collgrad, pentru durata de menținere a locului de muncă și pentru efecte fixe în timp.

Comparăm mai multe metode de calculare a erorilor standard: robustă, robustă pentru clustere, HC2 robustă pentru clustere cu ajustare a gradelor de libertate și clusterizare în două direcții. A doua și a treia metodă iau în considerare corelația la nivel de sector. Ultima metodă ia în considerare corelația atât la nivel de sector, cât și la nivel de ocupație. În exemplul nostru, folosim doar 12 clustere, ceea ce încalcă ipoteza aproximației asimptotice conform căreia numărul de clustere crește odată cu dimensiunea eșantionului. Restrângem eșantionul nostru la observațiile pentru care este disponibil codul ind_cod al industriei. De asemenea, stocăm rezultatele estimării. Scriem

. webuse nlswork
(National Longitudinal Survey of Young Women, 14-24 years old in 1968)

. keep if ind_code!=.
(341 observations deleted)

. quietly regress ln_wage tenure union collgrad i.year, vce(robust)

. estimates store robust

. quietly regress ln_wage tenure union collgrad i.year, vce(cluster ind_code)

. estimates store cluster

. quietly regress ln_wage tenure union collgrad i.year, vce(hc2 ind_code, dfadjust)

. estimates store HC2

. quietly regress ln_wage tenure union collgrad i.year, vce(cluster idcode ind_code)

. estimates store multiway

Instead of looking at all the regression output tables, we combine them into an estimates table by using etable.

Am cerut lui etable să utilizeze estimările pe care le-am stocat și să prezinte doar IC-urile, cstat(_r_ci, …), pentru coeficientul de uniune, keep(union). Apoi exportăm tabelul în tabelul .html pe care îl vedeți pe această pagină, export(setable.html, replace).

IC-urile sunt cele mai înguste cu erori standard robuste. Acestea sunt cele mai largi cu erori standard ajustate în funcție de gradele de libertate HC2. În acest din urmă caz, 0 se află în interiorul IC, ceea ce sugerează că ar trebui să fim atenți atunci când interpretăm efectul apartenenței la un sindicat asupra salariilor. Acest lucru este în contrast cu concluzia pe care am fi tras-o dacă am fi utilizat doar erori standard robuste. În cele din urmă, se pare că există puține diferențe între gruparea la nivel de sector și gruparea atât la nivel de sector, cât și la nivel de ocupație.

Putem utiliza, de asemenea, bootstrap-ul de cluster sălbatic pentru a ține cont de un număr mic de clustere și de un număr inegal de observații per cluster. Aceasta este implementată în noua comandă wildbootstrap. Descriem această funcție în detaliu în Wild cluster bootstrap, dar să o folosim și aici pentru comparație.

. wildbootstrap regress ln_wage tenure union collgrad i.year,
	cluster(ind_code) coefficients(union) rseed(111)

wildbootstrap solicită regress. Astfel, după ce se termină, puteți accesa în continuare rezultatele regresiei. Dar, în plus, wildbootstrap construiește IC bootstrap wild cluster pentru ipoteza nulă că un coeficient este 0. În mod implicit, utilizează toți coeficienții, dar puteți selecta pe care doriți să îi studiați. Noi ne concentrăm pe uniune. Deoarece reeșantionăm la nivel de cluster, specificăm variabila ind_code în cluster() și stabilim o sămânță pentru reproductibilitate.

IC raportată de wildbootstrap este aproape la fel de largă ca cea raportată atunci când am utilizat erorile standard HC2. Deși 0 nu se află în IC, acesta sugerează că există o variabilitate mare în estimarea punctuală.