Új a -ben

BIC a lasso büntetés kiválasztásához

A büntetési paraméter kiválasztása alapvető fontosságú a lasszóelemzés szempontjából. Válasszon egy kis büntetési paramétert, és megkockáztathatja, hogy túl sok változó szerepeljen a modelljében. Válasszon nagyot, és kizárhatja a fontos változókat.
Most a Bayes-i információs kritérium (BIC) segítségével kiválaszthatjuk a büntetési paramétereket a lasszóval kapcsolatos parancsokban mind az előrejelzés, mind a következtetés szempontjából.
Az előrejelzéshez kiválaszthatjuk a büntetési paramétereket azáltal, hogy minimalizáljuk a BIC-t lasszóban, gumihálóban és sqrtlasso-ban. A következtetéshez büntetési paramétereket is választhatunk a BIC minimalizálásával a dsregress, dslogit, dspoisson, poregress, pologit, popoisson, poivregress, xporegress, xpologit, xpopoisson, xpoivregress, és telasso fájlokban.
A BIC büntetési paraméterek kiválasztásával készült lasszó után megrajzolhatjuk a BIC függvényt, amely a BIC kritérium értékeit mutatja a büntetési paraméterek rácsán.A diagram megmutatja a minimális BIC-értéket is, amely a kiválasztott büntetési paraméter értéke. A büntetési paraméterek BIC alapján történő kiválasztásához csak adja meg az opcióválasztást (bic). Az y, lineáris modelljéhez, az x1-x100, kovariánsok jelöltjével, hogy a BIC-t használjuk a kiválasztáshoz, beírjuk

. lasso linear y x1-x100, selection(bic)

Az illesztett BIC függvénydiagram megtekintéséhez beírjuk

. bicplot

A d1 y-ra gyakorolt hatásának becsléséhez és teszteléséhez dupla szelekció használata x1 és x100, kontrollváltozókkal ugyanolyan egyszerű; begépeljük

. dsregress y d1, controls(x1-x100) selection(bic)

Ismét használhatunk bicplot -ot utána.

Kiemelt

  • BIC büntetési paraméterek kiválasztása lassoval az előrejelzéshez
    • Lasso
    • Négyzetgyök lasso
    • Elasztikus háló
  • BIC büntetési paraméter kiválasztása lasszóval a következtetéshez
    • Becslések felosztása
    • Keresztillesztéses részleges kiértékelés
    • Dupla szelekciós becslők
  • BIC büntetési paraméter lasso kezelés-hatás becsléssel
  • Ábrázolja a BIC funkciót

Lássuk hogyan működik

BIC használata lasszóban az előrejelzéshez

A lasszóval használt adatkészletek általában sok változóval rendelkeznek. Az induláshoz a vl változókezelő eszközt használjuk, hogy megmentsük magunkat a sok változó nevének manuális beírásától.

. use https://www.stata-press.com/data/r17/fakesurvey_vl
(Fictitious survey data with vl)

. vl rebuild
Rebuilding vl macros ...

Macro's contents
Macro # Vars Description
System
$vldummy 98 0/1 variables
$vlcategorical 16 categorical variables
$vlcontinuous 29 continuous variables
$vluncertain 16 perhaps continuous, perhaps categorical variables
$vlother 12 all missing or constant variables
User
$demographics 4 variables
$factors 110 variables
$idemographics factor-variable list
$ifactors factor-variable list

A vl létrehozott egy globális makrók halmazát, mindegyik változókészlettel, amelyet felhasználhatunk a becslés során. A vl megkönnyíti az életet, ha nagy mennyiségű kovariánssal van dolgod.
Ezután a splitsample segítségével osztjuk fel az adatokat edzési adatokra és tesztelési adatokra. Az edzésadatokat a lasso modellhez való illesztésre, a tesztelési adatokat pedig az illesztett modell előrejelzési teljesítményének értékelésére használják.

. set seed 12345671
. splitsample, generate(sample) nsplit(2)
. label define svalues 1 "Training" 2 "Testing"
. label values sample svalues

Most már készen állunk egy lasszó modell beillesztésére a BIC segítségével a büntetési paraméter kiválasztásához. Ehhez meg kell adnunk a selection(bic) opciót.

. lasso linear q104 ($idemographics) $ifactors $vlcontinuous
> if sample == 1, selection(bic)
Evaluating up to 100 lambdas in grid ...
Grid value 1:     lambda = 1.059075   no. of nonzero coef. =       4
                  BIC =  2653.83
Grid value 2:     lambda =   .96499   no. of nonzero coef. =       5
                  BIC = 2654.907
        ...(output omitted)...
Grid value 17:    lambda = .2390354   no. of nonzero coef. =      44
                  BIC = 2663.639
... selection BIC complete ... minimum found

Lasso linear model                          No. of obs        =        458
                                            No. of covariates =        273
Selection: Bayesian information criterion

No. of
nonzero Out-of-sample
ID Description lambda coef. R-squared BIC
1 first lambda 1.059075 4 0.0339 2653.83
10 lambda before .4584484 17 0.2552 2614.289
* 11 selected lambda .4177211 18 0.2806 2604.524
12 lambda after .3806119 21 0.3066 2606.103
17 last lambda .2390354 44 0.4220 2663.639
* lambda selected by Bayesian information criterion

A minimális BIC kritérium által kiválasztott büntetési paraméter 0,42 volt.
A beépített BIC függvénydiagramot megnézhetjük a bicplot beírásával.

. bicplot

A BIC függvény gyorsan csökken a minimum előtt λ = 0,42-nél.

A BIC használata a dsregress-ben a következtetéshez

Tegyük fel, hogy érdekel minket a levegőszennyezés (no2_class) hatása a gyermekek reakcióidejére (react), a kovariátok ellenőrzése. Abban azonban bizonytalanok vagyunk, hogy melyik kontrollváltozókat vegyük be a modellbe. A dsregress segítségével következetesen megbecsülhetjük a no2_class együtthatóját, míg a vezérlő változók kiválasztásához lasso-t használunk.
Megadjuk azt a selection(bic) opciót, amellyel a bic segítségével kiválaszthatjuk a büntetési paramétereket minden egyes lasóban, amelyet a dsregress végez. 32 globális makrót tárolunk a cc és fc globális makrókban.

. dsregress react no2_class, controls($cc i.($fc)) selection(bic)

Estimating lasso for react using BIC
Estimating lasso for no2_class using BIC

Double-selection linear model         Number of obs               =      1,036
                                      Number of controls          =         32
                                      Number of selected controls =         11
                                      Wald chi2(1)                =      22.18
                                      Prob > chi2                 =     0.0000

Robust
react Coefficient std. err. z P>|z| [95% conf. interval]
no2_class 2.315295 .4916547 4.71 0.000 1.35167 3.278921

Látjuk, hogy a 32 kontroll közül 11 van kiválasztva. Pontértékelésünk a nitrogén-dioxid reakcióidőre gyakorolt hatására 2.3, vagyis azt várjuk, hogy a reakcióidő 2.3 milliszekundummal növekszik minden mikrogramm / köbméter nitrogén-dioxid növekedés esetén. Ez az érték statisztikailag eltér a 0-tól. A dsregress valójában két lasztót futtatott, egyet a react és egyet a no2_class-hoz. Gépeléssel ábrázolhatjuk mindkét lassos BIC funkcióját

. bicplot, for(react)

és

. bicplot, for(no2_class)