New In

Media modelului bayesian (BMA) pentru regresia liniară

De ce să alegeți doar un singur model când puteți împrumuta informații de la mai multe? Noua suită bma realizează o medie Bayesiană a modelelor pentru a ține cont de incertitudinea modelului în analiza dumneavoastră. Nu sunteți sigur ce predictori să includeți în modelul dvs. de regresie liniară? Utilizați bmaregress pentru a afla care sunt predictorii importanți. Efectuați alegerea modelului, inferența și predicția. Utilizați numeroase comenzi de post-estimare pentru a explora modelele influente, complexitatea modelului, potrivirea modelului și performanța predictivă, analiza sensibilității la ipotezele privind importanța modelelor și a predictorilor și multe altele.

Repere

  • Alegerea modelului, inferența și predicția

  • Enumerarea modelelor și eșantionarea MC3

  • Predictori întotdeauna incluși și grupați

  • Priori de model: uniform, binomial, beta-binomial

  • Multe priorități g, inclusiv hiper-g și robustă

  • Variabile factoriale și operatori de serii temporale

  • Ereditate puternică, slabă sau fără ereditate pentru interacțiuni

  • Convergența BMA MCMC

  • Modelul posterior și probabilitățile de includere

  • Distribuțiile anterioare și posterioare ale mărimii modelului

  • Distribuțiile posterioare ale parametrilor modelului

  • Măsuri de conexitate pentru perechi de predictori

  • Hărți cu incluziune de variabile

  • Log predictive-score pentru potrivirea modelului și performanța predicției

  • Analiza de sensibilitate

  • Predicție

  • Suportul standard al funcțiilor de post-estimare Bayesiană

  • Vezi mai mult Media modelului bayesian caracteristici

Introducere

În mod tradițional, selectăm un model și efectuăm inferențe și predicții condiționate de acest model. De obicei, rezultatele noastre nu țin cont de incertitudinea în selectarea unui model și, prin urmare, pot fi prea optimiste. Ele pot fi chiar incorecte dacă modelul selectat este substanțial diferit de adevăratul model generator de date (DGM). În unele aplicații, este posibil să dispunem de dovezi teoretice sau empirice solide cu privire la DGM. În alte aplicații, de obicei de natură complexă și instabilă, cum ar fi cele din economie, psihologie și epidemiologie, alegerea unui model fiabil poate fi dificilă. În loc să se bazeze pe un singur model, medierea modelelor face o medie a rezultatelor pe mai multe modele plauzibile bazate pe datele observate. În BMA, „plauzibilitatea” modelului este descrisă de probabilitatea modelului posterior (PMP), care este determinată cu ajutorul principiilor bayesiene fundamentale – teorema lui Bayes – și aplicată în mod universal la toate analizele de date. BMA poate fi utilizată pentru a ține cont de incertitudinea modelului atunci când se estimează parametrii modelului și se prezic noi observații pentru a evita concluziile prea optimiste. Este deosebit de utilă în aplicații cu mai multe modele plauzibile, în cazul în care nu există un motiv definitiv pentru a alege un anumit model în detrimentul celorlalți. Dar chiar dacă alegerea unui singur model este obiectivul final, BMA poate fi benefică. Aceasta oferă o modalitate bazată pe principii pentru a identifica modelele și predictorii importanți în cadrul claselor de modele luate în considerare. Cadrul său vă permite să aflați despre interrelațiile dintre diferiți predictori în ceea ce privește tendința lor de a apărea într-un model împreună, separat sau independent. Acesta poate fi utilizat pentru a evalua sensibilitatea rezultatelor finale la diverse ipoteze privind importanța diferitelor modele și predictori. Și oferă predicții optime în sensul log-score.

Suita bma

Într-un context de regresie, incertitudinea modelului reprezintă incertitudinea cu privire la predictorii care ar trebui incluși într-un model. Putem utiliza bmaregress pentru a ține cont de selecția predictorilor într-o regresie liniară. Acesta explorează spațiul modelului fie în mod exhaustiv cu opțiunea de enumerare, ori de câte ori este posibil, fie prin utilizarea algoritmului de compoziție a modelelor (MC3) Markov chain Monte Carlo (MCMC) cu opțiunea de eșantionare. Raportează diverse rezumate ale modelelor vizitate și ale predictorilor incluși, precum și ale distribuțiilor posterioare ale parametrilor modelului. Vă permite să specificați grupuri de predictori care să fie incluși sau excluși împreună dintr-un model și cei care sunt incluși în toate modelele. Oferă diverse distribuții anterioare pentru modele în opțiunea mprior() și pentru parametrul g, care controlează micșorarea coeficienților de regresie spre zero, în opțiunea gprior(). De asemenea, suportă variabilele factoriale și operatorii de serii temporale și oferă mai multe modalități de tratare a interacțiunilor în timpul estimării prin utilizarea opțiunii heredity().

Există multe funcții de postestimare acceptate, care includ, de asemenea, unele dintre funcțiile standard de postestimare bayesiană.

Comandă Descriere

bmacoefsample

Eșantioane posterioare ale coeficienților de regresie

   

bmagraph pmp

diagrame model-probabilitate

bmagraph msize

diagrame de distribuție a dimensiunilor modelului

bmagraph varmap

hărți cu includere de variabile

bmagraph coefdensity

diagrame de densitate posterioară a coeficientului

   

bmastats models

rezumatele modelului posterior și ale includerii variabilelor

bmastats msize

rezumat al dimensiunii modelului

bmastats pip

probabilități ulterioare de includere (PIP) pentru predictori

bmastats jointness

măsuri de îmbinare pentru predictori

bmastats lps

scorul predictiv logaritmic (LPS)

   

bmapredict

Predicțiile BMA

   

bayesgraph

Rezumate grafice bayesiene și diagnostice de convergență

bayesstats summary

Statistici sumare bayesiene pentru parametrii modelului și funcțiile acestora

bayesstats ess

Mărimile efective ale eșantioanelor Bayesiene și statisticile aferente

bayesstats ppvalues

Valorile p predictive bayesiene

bayespredict

Predicții bayesiene

Mai jos, oferim un tur al unor caracteristici bma folosind un set de date de jucărie. Acest set de date conține n=200

�=200 observații, p=10 �=10 predictori ortogonali, iar rezultatul y generat sub forma

y=0,5+1,2×x2+5×x10+ϵ

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

unde ϵ∼∼N(0,1)

�∼�(0,1) este un termen de eroare normal standard.

. 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

Enumerarea modelului

Utilizăm bmaregress pentru a ajusta o regresie liniară BMA a lui y la x1 până la x10.

. 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.

Cu 10 predictori și g-prior fix (de referință) implicit, bmaregress utilizează enumerarea modelelor și explorează toate cele 210=1.024

210=1.024 modele posibile. Prioritatea implicită a modelului este beta-binomial cu parametrii de formă de 1, care este uniformă pe dimensiunea modelului. A priori, modelul nostru BMA a presupus o micșorare mică a coeficienților de regresie spre zero, deoarece g/(1+g)=0,9950 �/(1+�)=0,9950 este aproape de 1.

bmaregress a identificat x2 și x10 ca fiind predictori foarte importanți – probabilitățile lor de includere posterioare (PIP) sunt în esență 1. Estimările medii posterioare ale coeficienților lor de regresie sunt, respectiv, 1,2 (rotunjite) și 5,1 și sunt foarte apropiate de valorile reale de 1,2 și 5. Toți ceilalți predictori au PIP-uri mult mai mici și estimări ale coeficienților apropiate de zero. Constatările noastre BMA sunt în concordanță cu adevăratul DGM.

Să stocăm rezultatele actuale ale estimării noastre pentru utilizare ulterioară. Ca și în cazul altor comenzi bayesiene, trebuie să salvăm mai întâi rezultatele simulării înainte de a putea utiliza estimates store pentru a stoca rezultatele estimării.

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

. estimates store bmareg
Intervale credibile

bmaregress nu raportează în mod implicit intervale credibile (CrIs), deoarece necesită o simulare potențial consumatoare de timp a eșantionului posterior de parametri ai modelului. Dar le putem calcula după estimare.

Utilizăm mai întâi bmacoefsample pentru a genera un eșantion MCMC din distribuția posterioară a parametrilor modelului, care include coeficienții de regresie. Apoi folosim comanda bayesstats summary existentă pentru a calcula rezumatele posterioare ale eșantionului MCMC generat.

. 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
 

CrI de 95% pentru coeficientul x2 este [1,05, 1,34], iar cel pentru x10 este [4,9, 5,26], ceea ce este în concordanță cu DGM-ul nostru.

Modele influente

Estimările coeficienților BMA sunt mediate pe 1 024 de modele. Este important să se investigheze ce modele sunt influente. Putem utiliza modelele bmastats pentru a explora PMP-urile.

. 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

Nu este surprinzător faptul că modelul care conține atât x2, cât și x10 are cel mai mare PMP, de aproximativ 63%. De fapt, primele două modele corespund unui PMP cumulat de aproximativ 77%:

. 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

Putem utiliza bmagraph pmp pentru a reprezenta grafic PMP cumulat.

. bmagraph pmp, cumulative

Comanda afișează în mod implicit primele 100 de modele, dar puteți specifica opțiunea top() dacă doriți să vedeți mai multe modele.

Predictori importanți

Putem explora vizual importanța predictorilor folosind bmagraph varmap pentru a produce o hartă de includere a variabilelor.

. bmagraph varmap

Computing model probabilities ...

x2 și x10 sunt incluse în toate cele 100 de modele de top, clasificate în funcție de PMP. Coeficienții acestora sunt pozitivi în toate modelele.

Distribuția dimensiunilor modelului

Putem explora complexitatea modelului nostru BMA folosind bmastats msize și bmagraph msize pentru a explora distribuțiile anterioare și posterioare ale dimensiunii modelului.

. 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

Distribuția anterioară a mărimii modelului este uniformă în funcție de mărimea modelului. Distribuția posterioară a dimensiunii modelului este înclinată spre stânga, cu un mod de aproximativ 2. Media anterioară a dimensiunii modelului este 5, iar cea posterioară este 2,48. Astfel, pe baza datelor observate, BMA tinde să favorizeze modele mai mici, cu aproximativ doi predictori, în medie, în comparație cu ipoteza noastră a priori.

Distribuțiile posterioare ale coeficienților

Putem utiliza bmagraph coefdensity pentru a trasa distribuțiile posterioare ale coeficienților de regresie.

. bmagraph coefdensity {x2} {x3}, combine

Aceste distribuții sunt amestecuri de o masă punctiformă la zero, care corespunde probabilității de neincludere a predictorului și o densitate continuă condiționată de includere. Pentru coeficientul x2, probabilitatea de neincludere este neglijabilă, astfel încât distribuția sa posterioară este, în esență, o densitate continuă, destul de simetrică, centrată la 1,2. Pentru coeficientul x3, în plus față de densitatea continuă condiționată, există o linie verticală roșie la zero care corespunde probabilității posterioare de neincludere de aproximativ 1-,2 = 0,8.

Predicția BMA

bmapredict produce diverse predicții BMA. De exemplu, să calculăm mediile predictive posterioare.

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

De asemenea, putem calcula CRI predictive pentru a estima incertitudinea cu privire la predicțiile noastre. (Acest lucru nu este disponibil în cazul multor metode tradiționale de selecție a modelelor.) Rețineți că aceste ICR predictive încorporează, de asemenea, incertitudinea modelului. Pentru a calcula ICR predictive, trebuie să salvăm mai întâi eșantionul MCMC posterior de parametri de model-parametru.

. 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 ...

Rezumăm rezultatele previzionate:

.  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

Mediile raportate pe observații pentru mediile predictive și limitele inferioare și superioare de 95% ale CrI predictive par rezonabile în raport cu rezultatul observat y.

Priori de model informativ

Unul dintre punctele forte ale BMA este capacitatea de a încorpora informații prealabile despre modele și predictori. Acest lucru ne permite să investigăm sensibilitatea rezultatelor la diferite ipoteze privind importanța modelelor și a predictorilor. Să presupunem că dispunem de informații fiabile conform cărora toți predictorii, cu excepția lui x2 și x10, sunt mai puțin probabil să fie legați de rezultat. Putem specifica, de exemplu, un model binomial anterior cu probabilități de includere anterioare scăzute pentru acești predictori.

Pentru a compara ulterior performanța în afara eșantionului a modelelor BMA, împărțim aleatoriu eșantionul nostru în două părți și ajustăm modelul BMA utilizând primul subeșantion. De asemenea, salvăm rezultatele acestui model BMA mai informativ.

. 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

Efectul acestui model anterior este că PIP al tuturor predictorilor neimportanți este acum mai mic de 2%.

Rețineți că, atunci când selectăm un model, în esență, potrivim un model BMA cu un prior foarte puternic conform căruia toți predictorii selectați trebuie să fie incluși cu o probabilitate de 1. De exemplu, putem forța bmaregress să includă toate variabilele în model:

. 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
Performanță predictivă utilizând LPS

Pentru a compara modelele BMA avute în vedere, refacem modelul nostru BMA implicit folosind primul subeșantion și stocăm rezultatele estimării.

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

Putem compara performanța predictivă în afara eșantionului a modelelor noastre BMA folosind bmastats lps pentru a calcula scorul predictiv logaritmic (LPS) pentru observațiile în afara eșantionului.

. 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.

Modelul bmareg_inf, mai informativ, are un LPS mediu ușor mai mic, dar rezumatele LPS pentru toate modelele sunt foarte asemănătoare. Consultați [BMA] bmastats lps pentru a vedea cum se compară performanța modelelor BMA prin utilizarea validării încrucișate.

Curățare

Am generat mai multe seturi de date în timpul analizei noastre. Nu mai avem nevoie de ele, așa că le ștergem la sfârșit. Dar este posibil să decideți să le păstrați, mai ales dacă ele corespund unei analize finale care ar putea consuma mult timp.

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