New In

Bayes-i modellátlagolás (BMA) lineáris regresszióhoz

Miért válasszon egyetlen modellt, amikor több modellből is kölcsönözhet információt? Az új bma csomag Bayes-modellátlagolást végez, hogy figyelembe vegye a modell bizonytalanságát az elemzés során. Bizonytalan abban, hogy mely prediktorokat vegye fel lineáris regressziós modelljébe? A bmaregress segítségével megtudhatja, hogy mely prediktorok fontosak. Végezzen modellválasztást, következtetést és előrejelzést. Használjon számos posztbecslési parancsot a befolyásoló modellek, a modell komplexitása, a modellillesztés és az előrejelzési teljesítmény, a modellek és prediktorok fontosságára vonatkozó feltételezésekkel kapcsolatos érzékenységvizsgálat és még sok más vizsgálat elvégzéséhez.

Kiemelt információk

  • Modellválasztás, következtetés és előrejelzés

  • Modellszámlálás és MC3 mintavétel

  • Mindig bevont és csoportosított prediktorok

  • Modell priorok: egységes, binomiális, béta-binomiális

  • Számos g-előfutár, beleértve a hiper-g és a robusztus

  • Tényezőváltozók és idősor-operátorok

  • Erős, gyenge vagy nem öröklődő kölcsönhatások

  • BMA MCMC konvergencia

  • Posterior modell és befogadási valószínűségek

  • Előzetes és utólagos modellméret-eloszlások

  • A modellparaméterek utólagos eloszlásai

  • A prediktorpárok közössége

  • Változó-bevonási térképek

  • Log prediktív pontszám a modell illeszkedésére és az előrejelzési teljesítményre vonatkozóan

  • Érzékenységi elemzés

  • Előrejelzés

  • A Bayes-féle standard utóbecslési funkciók támogatása

  • Lásd még Bayesi modellátlagolás funkciók

Bevezetés

Hagyományosan kiválasztunk egy modellt, és következtetést és előrejelzést végzünk e modell függvényében. Eredményeink általában nem veszik figyelembe a modell kiválasztásának bizonytalanságát, és így túlságosan optimisták lehetnek. Az eredmények akár helytelenek is lehetnek, ha a kiválasztott modell jelentősen eltér a valódi adatgeneráló modelltől (DGM). Egyes alkalmazásokban erős elméleti vagy empirikus bizonyítékokkal rendelkezhetünk a DGM-ről. Más, általában összetett és instabil jellegű alkalmazásokban, mint például a közgazdaságtan, a pszichológia és a járványtan, nehéz lehet egyetlen megbízható modell kiválasztása. Ahelyett, hogy csak egy modellre támaszkodnánk, a modellátlagolás a megfigyelt adatok alapján több plauzibilis modell eredményeit átlagolja. A BMA-ban a modell “plauzibilitását” a modell utólagos valószínűsége (posterior model probability, PMP) írja le, amelyet az alapvető Bayes-elvek – a Bayes-tétel – alapján határoznak meg, és minden adatelemzésre általánosan alkalmaznak. A BMA a modellparaméterek becslése és az új megfigyelések előrejelzése során a modell bizonytalanságának figyelembevételére használható, hogy elkerülhetők legyenek a túlzottan optimista következtetések. Különösen hasznos olyan alkalmazásokban, ahol több valószínűsíthető modell áll rendelkezésre, és ahol nincs egyetlen határozott ok sem arra, hogy egy adott modellt válasszunk a többivel szemben. De még akkor is hasznos lehet a BMA, ha egyetlen modell kiválasztása a végső cél. Elvi módszert biztosít a fontos modellek és prediktorok azonosítására a figyelembe vett modellosztályokon belül. A keretrendszer lehetővé teszi, hogy megismerje a különböző prediktorok közötti összefüggéseket aszerint, hogy hajlamosak-e együtt, külön-külön vagy egymástól függetlenül megjelenni egy modellben. Használható a végső eredmények érzékenységének értékelésére a különböző modellek és prediktorok fontosságára vonatkozó különböző feltételezésekkel szemben. És optimális előrejelzéseket biztosít a log-score értelemben.

A bma suite

Regressziós környezetben a modell bizonytalansága azt a bizonytalanságot jelenti, hogy mely prediktorokat kell bevonni a modellbe. A bmaregress segítségével figyelembe vehetjük a prediktorok kiválasztását egy lineáris regresszióban. A modellteret vagy kimerítően vizsgálja a felsorolás opcióval, amikor csak lehetséges, vagy a Markov-lánc Monte Carlo (MCMC) modellkompozíció (MC3) algoritmus segítségével a mintavétel opcióval. Különböző összefoglalókat ad a meglátogatott modellekről és a bevont prediktorokról, valamint a modellparaméterek utólagos eloszlásáról. Lehetővé teszi a modellbe együttesen bevonandó vagy kizárandó prediktorcsoportok, valamint az összes modellben szereplő prediktorcsoportok megadását. Különböző előzetes eloszlásokat biztosít a modellekhez az mprior() opcióban és a g paraméterhez, amely a regressziós együtthatók nullára zsugorodását szabályozza, a gprior() opcióban. Támogatja továbbá a faktorváltozókat és az idősor-operátorokat, és a heredity() opció segítségével többféleképpen kezeli a becslés során fellépő kölcsönhatásokat.

Számos támogatott utóbecslési funkció van, amelyek között a Bayes-féle standard utóbecslési funkciók egy része is megtalálható.

Parancs Leírás

bmacoefsample

A regressziós együtthatók utólagos mintái

   

bmagraph pmp

modell-valószínűségi ábrák

bmagraph msize

modellméret-eloszlási grafikonok

bmagraph varmap

változó-bevonási térképek

bmagraph coefdensity

koefficiens poszterior sűrűség ábrák

   

bmastats models

utólagos modell és változó-bevonási összefoglalók

bmastats msize

modellméret-összefoglaló

bmastats pip

a prediktorokra vonatkozó utólagos befogadási valószínűségek (PIP)

bmastats jointness

a prediktorokra vonatkozó együttes intézkedések

bmastats lps

log prediktív pontszám (LPS)

   

bmapredict

BMA előrejelzések

   

bayesgraph

Bayes-féle grafikus összefoglalók és konvergencia-diagnosztika

bayesstats summary

A modellparaméterek és függvényeik Bayes-összefoglaló statisztikái

bayesstats ess

Bayes-féle effektív mintanagyságok és kapcsolódó statisztikák

bayesstats ppvalues

Bayes-előrejelző p-értékek

bayespredict

Bayes-előrejelzések

Az alábbiakban néhány bma jellemzőt mutatunk be egy játékadatkészlet segítségével. Ez az adathalmaz n=200

�=200 megfigyelést, p=10 �=10 ortogonális prediktort, és az y eredményt a következő módon generáltuk

y=0.5+1.2×x2+5×x10+ϵ

�=0.5+1.2�2+5�10+�

ahol ϵ∼N(0,1)

�∼�(0,1) egy standard normál hibatermet jelent.

. webuse bmaintro
(Simulated data for BMA example)

. summarize
Variable   Obs Mean Std. dev. Min Max
 
y   200 .9944997 4.925052 -13.332 13.06587
x1   200 -.0187403 .9908957 -3.217909 2.606215
x2   200 -.0159491 1.098724 -2.999594 2.566395
x3   200 .080607 1.007036 -3.016552 3.020441
x4   200 .0324701 1.004683 -2.410378 2.391406
 
x5   200 -.0821737 .9866885 -2.543018 2.133524
x6   200 .0232265 1.006167 -2.567606 3.840835
x7   200 -.1121034 .9450883 -3.213471 1.885638
x8   200 -.0668903 .9713769 -2.871328 2.808912
x9   200 -.1629013 .9550258 -2.647837 2.472586
 
x10   200 .083902 .8905923 -2.660675 2.275681

Modell felsorolás

A bmaregress segítségével BMA lineáris regressziót illesztünk az y-ra x1-től x10-ig.

. bmaregress y x1-x10

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                            No. of obs         =    200
Linear regression                                   No. of predictors  =     10
Model enumeration                                               Groups =     10
                                                                Always =      0
Priors:                                             No. of models      =  1,024
  Models: Beta-binomial(1, 1)                           For CPMP >= .9 =      9
   Cons.: Noninformative                            Mean model size    =  2.479
   Coef.: Zellner's g
       g: Benchmark, g = 200                        Shrinkage, g/(1+g) = 0.9950
  sigma2: Noninformative                            Mean sigma2        =  1.272
 
y   Mean Std. dev. Group PIP
 
x2   1.198105 .0733478 2 1
x10   5.08343 .0900953 10 1
x3   -.0352493 .0773309 3 .21123
x9   .004321 .0265725 9 .051516
x1   .0033937 .0232163 1 .046909
x4   -.0020407 .0188504 4 .039267
x5   .0005972 .0152443 5 .033015
x9   -.0005639 .0153214 8 .032742
x7   -8.23e-06 .015497 7 .032386
x6   -.0003648 .0143983 6 .032361
 
Always    
_cons   .5907923 .0804774 0 1
 
 
Note: Coefficient posterior means and std. dev. estimated from 1,024 models.
Note: Default priors are used for models and parameter g.

10 prediktorral és az alapértelmezett fix (benchmark) g-priorral a bmaregress a modell felsorolását használja, és megvizsgálja az összes 210=1,024

210=1,024 lehetséges modellt. Az alapértelmezett modellprioritás béta-binomiális, 1 alakú alakparaméterekkel, ami a modellméretre nézve egységes. A priori a BMA-modellünk feltételezte a regressziós együtthatók kis mértékű zsugorodását a nulla felé, mivel g/(1+g)=0,9950 �/(1+�)=0,9950 közel 1.

A bmaregress az x2-t és az x10-et nagyon fontos prediktorként azonosította – ezek utólagos befogadási valószínűsége (PIP) lényegében 1. A regressziós együtthatóik utólagos átlagos becslései 1,2 (kerekítve), illetve 5,1, és nagyon közel vannak az 1,2 és 5 valódi értékekhez. Az összes többi prediktor PIP-értéke sokkal alacsonyabb, és az együttható becslései közel vannak a nullához. A BMA-eredményeink összhangban vannak a valódi DGM-mel.

Tároljuk el a jelenlegi becslési eredményeinket későbbi felhasználásra. Más Bayes-parancsokhoz hasonlóan először el kell mentenünk a szimulációs eredményeket, mielőtt a becslések tárolása parancsot használhatnánk a becslési eredmények tárolására.

. bmaregress, saving(bmareg)
note: file bmareg.dta saved.

. estimates store bmareg
Hiteles intervallumok

A bmaregress alapértelmezés szerint nem közöl hiteles intervallumokat (CrI), mivel a modellparaméterek utólagos mintájának potenciálisan időigényes szimulációját igényli. A becslés után azonban kiszámíthatjuk őket.

Először a bmacoefsample segítségével MCMC-mintát hozunk létre a modellparaméterek utólagos eloszlásából, amely magában foglalja a regressziós együtthatókat is. Ezután a meglévő bayesstats summary parancsot használjuk a generált MCMC-minta utólagos összegzéseinek kiszámításához.

. bmacoefsample, rseed(18)

Simulation (10000): ....5000....10000 done

. bayesstats summary

Posterior summary statistics                      MCMC sample size =    10,000
 
    Equal-tailed
    Mean Std. dev. MCSE Median [95% cred. interval]
 
y    
x1   .0031927 .0234241 .000234 0 0 .0605767
x2   1.197746 .0726358 .000735 1.197211 1.053622 1.341076
x3   -.0361581 .0780037 .00078 0 -.2604694 0
x4   -.0021015 .018556 .000186 0 -.0306376 0
x5   .0004701 .0147757 .000148 0 0 0
x6   -.0003859 .0140439 .000142 0 0 0
x7   -.0003311 .0166303 .000166 0 0 0
x8   -.0005519 .0145717 .00015 0 0 0
x9   .0046535 .0273899 .000274 0 0 .096085
x10   5.08357 .0907759 .000927 5.083466 4.90354 5.262716
_cons   .5901334 .0811697 .000801 .5905113 .4302853 .7505722
 
sigma2   1.272579 .1300217 .0013 1.262612 1.043772 1.555978
g   200 0 0 200 200 200
 

Az x2 együttható 95%-os CrI-je [1,05, 1,34], az x10-é pedig [4,9, 5,26], ami összhangban van a DGM-ünkkel.

Befolyásoló modellek

A BMA-koefficiensbecslések átlaga 1024 modellre vonatkozik. Fontos megvizsgálni, hogy mely modellek befolyásosak. A bmastats modellek segítségével feltárhatjuk a PMP-ket.

. bmastats models

Model summary         Number of models:
                               Visited = 1,024
                              Reported =     5

Analytical PMP Model size .6292 2 .1444 3 .0258 3 .0246 3 .01996 3

 
    Rank 1 2 3 4 5  

 

Variable-inclusion summary
 
    Rank Rank Rank Rank Rank
    1 2 3 4 5
 
x2   x x x x x
x10   x x x x x
x3   x
x9   x
x1   x
x4   x
 
Legend: 
x - estimated

Nem meglepő módon az x2-t és x10-et is tartalmazó modellnek van a legmagasabb, 63% körüli PMP-je. Valójában a két legjobb modell körülbelül 77%-os kumulatív PMP-nek felel meg:

. bmastats models, cumulative(0.75)

Computing model probabilities ...

Model summary           Number of models:
                                 Visited = 1,024
                                Reported =     2
 
    Analytical CPMP Model size
 
Rank    
1   .6292 2
2   .7736 3
 
Variable-inclusion summary
 
    Rank Rank
    1 2
 
x2   x x
x10   x x
x3   x
 
Legend: 
x - estimated

A bmagraph pmp segítségével ábrázolhatjuk a kumulatív PMP-t.

. bmagraph pmp, cumulative

A parancs alapértelmezés szerint az első 100 modellt ábrázolja, de megadhatja a top() opciót, ha több modellt szeretne látni.

Fontos előrejelzők

A prediktorok fontosságát vizuálisan is felfedezhetjük a bmagraph varmap segítségével, amellyel egy változó-bevonási térképet készíthetünk.

. bmagraph varmap

Computing model probabilities ...

Az x2 és az x10 a PMP szerint rangsorolt top 100 modellben szerepel. Együtthatóik minden modellben pozitívak.

Modellméret-eloszlás

A BMA-modellünk komplexitását a bmastats msize és a bmagraph msize segítségével vizsgálhatjuk meg a modellméret előzetes és utólagos eloszlásának feltárásához.

. bmastats msize

Model-size summary

Number of models = 1,024
Model size:
  Minimum =  0
  Maximum = 10
 
    Mean Median
 
Prior    
Analytical   5.0000 5
 
Posterior    
Analytical   2.4794 2
 
Note: Frequency summaries not available.
 
. bmagraph msize

Az előzetes modellméret-eloszlás egyenletes a modellméretre. Az utólagos modellméret-eloszlás balra ferde, a módusz körülbelül 2. Az előzetes átlagos modellméret 5, az utólagos pedig 2,48. A megfigyelt adatok alapján tehát a BMA az a priori feltételezésünkhöz képest a kisebb, átlagosan nagyjából két prediktort tartalmazó modelleket részesíti előnyben.

Az együtthatók utólagos eloszlása

A bmagraph coefdensity segítségével ábrázolhatjuk a regressziós együtthatók utólagos eloszlásait.

. bmagraph coefdensity {x2} {x3}, combine

Ezek az eloszlások egy nullpontos tömeg keverékei, amely megfelel a prediktor be nem vonásának valószínűségének és egy folytonos sűrűségnek, amely a bevonás függvénye. Az x2 együttható esetében a be nem vonás valószínűsége elhanyagolható, így az utólagos eloszlása lényegében egy folytonos, meglehetősen szimmetrikus sűrűség, amelynek középpontja 1,2. Az x3 együttható esetében a feltételes folytonos sűrűségen kívül egy piros függőleges vonal is van a nullánál, amely a be nem vonás utólagos valószínűségének felel meg, ami nagyjából 1-,2 = 0,8.

BMA előrejelzés

A bmapredict különböző BMA-előrejelzéseket készít. Számítsuk ki például az utólagos prediktív középértékeket.

. bmapredict pmean, mean
note: computing analytical posterior predictive means.

Előrejelző CrI-ket is kiszámíthatunk, hogy megbecsüljük az előrejelzéseinkkel kapcsolatos bizonytalanságot. (Ez sok hagyományos modellválasztási módszerrel nem áll rendelkezésre.) Vegyük észre, hogy ezek a prediktív CrI-k a modell bizonytalanságát is magukban foglalják. A prediktív CrI-k kiszámításához először el kell mentenünk az utólagos MCMC modellparaméter-mintát.

. bmacoefsample, saving(bmacoef)
note: saving existing MCMC simulation results without resampling; specify
      option simulate to force resampling in this case.
note: file bmacoef.dta saved.

. bmapredict cri_l cri_u, cri rseed(18)
note: computing credible intervals using simulation.

Computing predictions ...

Összefoglaljuk az előre jelzett eredményeket:

.  summarize y pmean cri*
 
Variable   Obs Mean Std. dev. Min Max
 
y   200 .9944997 4.925052 -13.332 13.06587
pmean   200 .9944997 4.783067 -13.37242 12.31697
cri_l   200 -1.24788 4.787499 -15.66658 10.03054
cri_u   200 3.227426 4.779761 -11.06823 14.58301

A prediktív átlagok és az alsó és felső 95%-os prediktív CrI-határok megfigyelésekre vonatkozó átlagai ésszerűnek tűnnek a megfigyelt y eredményhez képest.

Informatív modell priorok

A BMA egyik erőssége, hogy képes a modellekre és prediktorokra vonatkozó előzetes információk beépítésére. Ez lehetővé teszi, hogy megvizsgáljuk az eredmények érzékenységét a modellek és prediktorok fontosságára vonatkozó különböző feltételezésekre. Tegyük fel, hogy megbízható információval rendelkezünk arról, hogy az x2 és x10 kivételével minden prediktor kevésbé valószínű, hogy kapcsolatban van a kimenettel. Megadhatunk például egy binomiális modell priorját alacsony előzetes bevonási valószínűséggel ezekre a prediktorokra.

A BMA-modellek mintán kívüli teljesítményének későbbi összehasonlításához véletlenszerűen két részre osztottuk a mintánkat, és a BMA-modellt az első részmintára illesztettük. Ennek az informatívabb BMA-modellnek az eredményeit is elmentjük.

. splitsample, generate(sample) nsplit(2) rseed(18)

. bmaregress y x1-x10 if sample == 1, mprior(binomial x2 x10 0.5 x1 x3-x9 0.05)
  saving(bmareg_inf)

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                          No. of obs         =    100
Linear regression                                 No. of predictors  =     10
Model enumeration                                             Groups =     10
                                                              Always =      0
Priors:                                           No. of models      =  1,024
  Models: Binomial, IP varies                         For CPMP >= .9 =      1
   Cons.: Noninformative                          Mean model size    =  2.072
   Coef.: Zellner's g
       g: Benchmark, g = 100                      Shrinkage, g/(1+g) = 0.9901
  sigma2: Noninformative                          Mean sigma2        =  1.268
 
y   Mean Std. dev. Group PIP
 
x2   1.168763 .1031096 2 1
x10   4.920726 .124615 10 1
x1   .0019244 .0204242 1 .013449
x5   -.0018262 .0210557 5 .011973
x3   -.0017381 .0205733 3 .011557
x4   -.0015444 .0193858 4 .010709
 
Always    
_cons   .5637673 .113255 0 1
 
Note: Coefficient posterior means and std. dev. estimated from 1,024 models.
Note: Default prior is used for parameter g.
Note: 4 predictors with PIP less than .01 not shown.

file bmareg_inf.dta saved.

. estimates store bmareg_inf

Ennek a modell-előzetesnek az a hatása, hogy az összes nem fontos prediktor PIP-je most kevesebb, mint 2%.

Vegyük észre, hogy amikor kiválasztunk egy modellt, lényegében egy BMA-modellt illesztünk be egy nagyon erős priorral, amely szerint minden kiválasztott prediktort 1 valószínűséggel kell bevonni. Például kényszeríthetjük a bmaregress-t, hogy minden változót bevegyen a modellbe:

. bmaregress y (x1-x10, always) if sample == 1, saving(bmareg_all)

Enumerating models ...
Computing model probabilities ...

Bayesian model averaging                           No. of obs         =    100
Linear regression                                  No. of predictors  =     10
Model enumeration                                              Groups =      0
                                                               Always =     10
Priors:                                            No. of models      =      1
  Models: Beta-binomial(1, 1)                          For CPMP >= .9 =      1
   Cons.: Noninformative                           Mean model size    = 10.000
   Coef.: Zellner's g
       g: Benchmark, g = 100                       Shrinkage, g/(1+g) = 0.9901
  sigma2: Noninformative                           Mean sigma2        =  1.192


Mean Std. dev. Group PIP

.1294521 .105395 0 1

1.166679 .1129949 0 1

-.1433074 .1271903 0 1

-.1032189 .1223152 0 1

-.0819008 .1261309 0 1

.0696633 .1057512 0 1

.0222949 .1215404 0 1

-.0252311 .1124352 0 1

.0587412 .1166921 0 1

4.949992 .1276795 0 1

.6006153 .1127032 0 1
 
y   Always x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 _cons  
Note: Coefficient posterior means and std. dev. estimated from 1 model.
Note: Default priors are used for models and parameter g.

file bmareg_all.dta saved.

. estimates store bmareg_all

Előrejelző teljesítmény az LPS használatával

A figyelembe vett BMA-modellek összehasonlítása érdekében az alapértelmezett BMA-modellünket az első részmintát felhasználva újrateszteljük, és a becslési eredményeket tároljuk.

. qui bmaregress y x1-x10 if sample == 1, saving(bmareg, replace)
. estimates store bmareg

Összehasonlíthatjuk a BMA-modelleink mintán kívüli előrejelző teljesítményét a bmastats lps segítségével, amely kiszámítja a log prediktív pontszámot (LPS) a mintán kívüli megfigyelésekre.

. bmastats lps bmareg bmareg_inf bmareg_all if sample == 2, compact

Log predictive-score (LPS)

Number of observations = 100
 
LPS   Mean Minimum Maximum
 
bmareg   1.562967 1.039682 6.778834
bmareg_inf   1.562238 1.037576 6.883794
bmareg_all   1.576231 1.032793 6.084414
 
Notes: Using analytical PMPs.
       Result bmareg_inf has the smallest mean LPS.

Az informatívabb bmareg_inf modell átlagos LPS-értéke valamivel kisebb, de az összes modell LPS-összegzése nagyon hasonló. Lásd [BMA] bmastats lps a BMA-modellek teljesítményének kereszthitelesítéssel történő összehasonlításához.

Tisztítás

Elemzésünk során több adatkészletet generáltunk. Ezekre már nincs szükségünk, ezért a végén töröljük őket. Ön azonban dönthet úgy, hogy megtartja őket, különösen, ha egy potenciálisan időigényes végső elemzésnek felelnek meg.

. erase bmareg.dta
. erase bmacoef.dta
. erase bmareg_inf.dta
. erase bmareg_all.dta