Nou în 
Lasou cu date grupate
Acum puteți lua în considerare datele grupate în analiza lazo. Ignorarea clusterizării poate duce la rezultate incorecte în prezența corelației între observații în cadrul aceluiași cluster. Dar, cu comenzile lazo ale lui Stata – atât cele pentru predicție, cât și cele pentru inferență – puteți obține acum rezultate care să ia în considerare gruparea.
Cu comenzile lasou pentru predicție, pur și simplu adăugați opțiunea cluster(). De exemplu, tastați
. lasso linear y x1-x5000, cluster(idcode)
pentru a ține cont de posibila corelație între observații cu același idcode în timpul selectării modelului. Puteți face acest lucru cu alte modele lasou decât cele liniare, cum ar fi logit sau Poisson, și cu metode de selecție variabilă, altele decât lasou, cum ar fi lasou cu plasă elastică și cu rădăcină pătrată.
Cu comenzile lasso pentru inferență, adăugați opțiunea vce(cluster). De exemplu, tastați
. poregress y x1, controls(x2-x5000) vce(cluster idcode)
să producă erori standard robuste, care să ia în considerare clusterizarea în idcode, folosind lasoarea parțială pentru rezultate liniare. Opțiunea vce(cluster) este acceptată cu toate comenzile inferioare lasou, inclusiv noua comandă pentru estimarea efectelor tratamentului cu lasou.
Repere
- • Predicții lasou cu date grupate pentru
- Lasou
- Plasă elastică
- Lasou cu rădăcină pătrată
- Inferență lasou cu date grupate pentru
- Modele parțiale de lasou
- Modele de tip lasou parțial încrucișat
- Modele lasou cu selecție dublă
- Grupuri – erori standard robuste pentru
- Modele de lasou parțiale
- Modele de tip lasou parțial încrucișat
- Modele lasou cu selecție dublă
- Modele lasou cu efect de tratament
Să vedem cum funcționează
Vrem să potrivim un model liniar-lasou pentru jurnalul salariilor (ln_wage) folosind un set de variabile și interacțiunile lor de ordinul doi. Avem date despre vârsta individului, age; experiență de muncă, experince; deținerea locului de muncă, tenure; dacă individul locuiește într-o zonă rurală, rurală; dacă locuiesc în sud, sud; iar dacă nu au studii universitare, nocollege. Vrem o bună predicție a jurnalului salariilor, având în vedere aceste controale.
Avem observații repetate ale indivizilor în timp; avem date grupate. Fiecare persoană este identificată prin idcode.
Definim macro-ul global $var ca variabile și $controale ca lista completă a variabilelor de control.
. global vars c.(age tenure experience) i.(rural south nocollege)
. global controls ($vars)##($vars)
Ne potrivim modelului lasou și specificăm opțiunea cluster(idcode) pentru a contabiliza clusterizarea și specificăm opțiunea rseed(1234) pentru a face rezultatele reproductibile.
. lasso linear ln_wage $controls, cluster(idcode) rseed(1234) 10-fold cross-validation with 100 lambdas ... (output omitted) ... change in the deviance stopping tolerance reached ... last lambda selected Lasso linear model No. of obs = 28,093 No. of covariates = 45 Cluster: idcode No. of clusters = 4,699 Selection: Cross-validation No. of CV folds = 10
No. of Out-of- CV mean | ||
nonzero sample prediction | ||
ID | Description lambda coef. R-squared error | |
1 | first lambda .2261424 0 0.0010 .2526964 | |
81 | lambda before .0001325 23 0.3088 .1748403 | |
* 82 | selected lambda .0001207 23 0.3088 .1748393 | |
83 | lambda after .00011 23 0.3088 .1748406 | |
92 | last lambda .0000476 24 0.3087 .1748552 | |
Există 4.699 clustere. În culise, procedura de validare încrucișată extrage mostre aleatorii prin idcode pentru a ajunge la lambda optimă.
Am putea folosi acum comanda predict pentru a obține predicții despre ln_wage.
Să presupunem că nu ne interesează doar predicția. Să presupunem că vrem să cunoaștem efectul deținerii locului de muncă (tenure) asupra salariilor din jurnal (ln_wage). Toate celelalte variabile sunt tratate ca controale potențiale, pe care laso le poate include sau exclude din model. Lasso pentru inferență ne permite să obținem o estimare a efectului deținere și a erorii sale standard. Deoarece indivizii sunt corelați în timp, am dori să folosim erori standard clustere robuste la nivelul idcode. Ne potrivim unui model liniar cu metode lasou cu dublă selecție utilizând comanda dsregress.
În primul rând, definim macro-ul global $vars2 ca variabile de control neinteracționate și le interacționăm pentru a forma setul complet de controale în $controls2.
. global vars2 c.(age experience) i.(rural south nocollege)
. global controls2 ($vars2)##($vars2)
Pentru a se potrivi modelului și a estima erorile standard robuste ale clusterului, folosim dsregress și specificăm opțiunea vce(codul de identificare al clusterului).
. dsregress ln_wage tenure, controls($controls2) vce(cluster idcode) Estimating lasso for ln_wage using plugin Estimating lasso for tenure using plugin Double-selection linear model Number of obs = 28,093 Number of controls = 35 Number of selected controls = 10 Wald chi2(1) = 195.87 Prob > chi2 = 0.0000 (Std. err. adjusted for 4,699 clusters in idcode)
Robust | ||
ln_wage | Coefficient std. err. z P>|z| [95% conf. interval] | |
tenure | .0228961 .001636 14.00 0.000 .0196897 .0261025 | |
Estimarea punctului .02 înseamnă că o creștere cu un an a funcției de muncă ar crește jurnalul salariilor cu .02. Estimarea erorii standard este robustă față de observațiile corelate din cadrul clusterului.