Újdonságok a -ben

Bayesi longitudinális/panel-adatmodellek

A Bayes-féle longitudinális/paneladat-modelleket úgy illesztheti be, hogy a klasszikus paneladat-modellek elé egyszerűen beírja a bayes: szót. Mivel a paneladat-modellek kétszintű hierarchikus modelleknek tekinthetők, a Bayes-féle többszintű modellezés minden előnye a paneladat-modellekre is érvényes.

Egy lineáris véletlenszerű hatású paneladat-modellt illeszthet az y kimenetelre x1 és x2 prediktorokkal és a panel vagy csoport azonosítójával id beírásával

. xtset id
. xtreg y x1 x2

Most ennek a modellnek a Bayes-féle megfelelőjét illesztheti a következő beírással

. xtset id
. bayes: xtreg y x1 x2

Kiemelt információk

  • Eredmények: folytonos, bináris, ordinárius, kategorikus, számolás
  • Véletlen hatások
  • Rugalmas előzetes felosztás
  • A panel- vagy csoporthatások utólagos eloszlásai
  • Bayes-előrejelzések
  • Teljes Bayes-funkciók támogatása

Természetesen, mint bármely más Stata-parancs esetében, a parancsok begépelése helyett használhatsz egy mutass és kattints felületet is.

A Bayes-féle panel-adatmodellek nem csak folytonos kimenetekre vonatkoznak. Ugyanilyen egyszerűen beírhatja a bináris kimenetekhez is

. bayes: xtprobit y x1 x2

vagy számolási eredmények esetén

. bayes: xtpoisson y x1 x2

Vagy használja a bayes-előtagot támogató nyolc paneladat modell bármelyikét, beleértve az új paneladat multinomiális logit modellt is.

Lássuk, hogyan működik

  • Becslés
  • Az MCMC konvergenciája
  • Egyéni priorok
  • A panel- vagy csoporthatások utólagos eloszlásai
  • Bayes-előrejelzések
  • Utólagos prediktív ellenőrzések-modell illeszkedés
  • Takarítás

Becslés

Tekintsük az 1968-ban 14 és 24 év közötti, délen élő fiatal nőkre vonatkozó nemzeti longitudinális felmérés adatainak egy részhalmazát. A bérek logaritmusát az egyén iskolai végzettségének, grade; munkatapasztalatának, ttl_exp, amely négyzetesen lép be a modellbe; és annak függvényében fogjuk modellezni, hogy az egyén egy átlagos nagyvárosi területen él-e vagy sem, not_smsa. Egyénenként több megfigyelés van, amelyeket az id azonosít.

Az egyéni hatások figyelembevételéhez Bayes-féle paneladat lineáris modellt alkalmaztunk. Szeretnénk továbbá kiszámítani a naplóbérek Bayes-féle előrejelzéseit, és összehasonlítani az egyének (panel) hatásait.

. webuse nlswork6
(Subsample of 1986 National Longitudinal Survey of Young Women)

Az időmegtakarítás érdekében az alapértelmezett 10 000 helyett 1000 darabos Markov-lánc Monte Carlo (MCMC) mintát futtatunk. A reprodukálhatóság érdekében egy véletlenszámos magot is megadunk.

. bayes, mcmcsize(1000) rseed(17): xtreg ln_wage grade c.ttl_exp##c.ttl_exp i.not_smsa
note: Gibbs sampling is used for regression coefficients and variance
      components.

Burn-in 2500 aaaaaaaaa1000aaaaaaaaa2000aaaaa done
Simulation 1000 .........1000 done

Model summary
Likelihood: ln_wage ~ normal(xb_ln_wage,{sigma2}) Priors: {ln_wage:grade} ~ normal(0,10000) (1) {ln_wage:ttl_exp} ~ normal(0,10000) (1) {ln_wage:c.ttl_exp#c.ttl_exp} ~ normal(0,10000) (1) {ln_wage:1.not_smsa} ~ normal(0,10000) (1) {ln_wage:_cons} ~ normal(0,10000) (1) {U[id]} ~ normal(0,{var_U}) (1) {sigma2} ~ igamma(0.01,0.01) Hyperprior: {var_U} ~ igamma(0.01,0.01)
(1) Parameters are elements of the linear form xb_ln_wage. Bayesian RE normal regression MCMC iterations = 3,500 Metropolis–Hastings and Gibbs sampling Burn-in = 2,500 MCMC sample size = 1,000 Group variable: id Number of groups = 831 Obs per group: min = 1 avg = 1.4 max = 5 Number of obs = 1,174 Acceptance rate = .796 Efficiency: min = .02411 avg = .07145 Log marginal-likelihood max = .1676
Equal-tailed
Mean Std. dev. MSCE Median [95% cred. interval]
ln_wage
grade .0696248 .0052371 .00082 .069638 .0591421 .07999
ttl_exp .0404646 .0070371 .000544 .0404901 .026454 .053855
c.ttl_exp#
c.ttl_exp -.0005053 .0003978 .000039 -.0005132 -.0012609 .0003009
1.not_smsa -.1502314 .0251494 .002755 -.150213 -.200979 -.1014476
_cons .5646936 .0658804 .0099 .5680976 .4377888 .6957415
var_U .0801363 .0073138 .001258 .0795163 .0674855 .0959143
sigma2 .0673308 .0046724 .000952 .0671238 .0590742 .0771401

A grade együttható utólagos átlaga pozitív, 7 százalékos nagyságrenddel. Az elmélet szerint a bérek a tapasztalattal együtt nőnek, de a növekedés az idő múlásával csökken. Ez azt jelenti, hogy a ttl_exp együtthatójának pozitívnak, a c.ttl_exp#c.ttl_exp együtthatójának pedig negatívnak kell lennie. Ezt tapasztaljuk az adatainkban. Végül, a nagyvárosi központokon kívül élés negatív hatással van a bérekre.

A Bayes-modellezés megköveteli, hogy minden modellparaméterhez priort adjunk meg. Mint minden más bayes-parancs esetében, a bayes: xtreg is biztosít alapértelmezett priorokat a kényelem érdekében. Érdemes átnézni a prior specifikációkat, és megadni a sajátjait.

Az MCMC konvergenciája

A bayes: xtreg MCMC-t használ az eredményekhez. Konvergenciáját a további elemzés előtt ellenőrizni kell. Ezt megteheti grafikusan, vagy kiszámíthatja a Gelman-Rubin konvergencia-statisztikát több lánc segítségével.

Értékeljük az MCMC-konvergenciát vizuálisan, mondjuk, a grade együtthatóra.

. bayesgraph diagnostics {ln_wage:grade}

A nyomvonaldiagramon nincs nyilvánvaló tendencia. Az autokorreláció az idővel csökken. Nincs okunk arra gyanakodni, hogy a grade nem konvergencia, de a konvergenciát minden modellparaméter esetében ellenőrizni kell.

Mentsük el MCMC- és becslési eredményeinket későbbi felhasználásra.

. bayes, saving(bxtregsim)
note: file bxtregsim.dta saved.

. estimates store bxtreg

Egyéni priorok

A Bayes-modellek esetében érdemes lehet saját prioritásokat beépíteni. Ezek a priorok gyakran történeti adatokból származnak. Például korábbi tanulmányok alapján ésszerű lehet azt feltételezni, hogy a grade együtthatója 0 és 25 között mozog. Így megfontolhatjuk, hogy egy (0,25) egyenletes priorral számoljunk. A bayes prior() opciót használhatjuk az egyéni priorok megadásához.

. bayes, mcmcsize(1000) rseed(17) prior({ln_wage:grade}, uniform(0,25)):
> xtreg ln_wage grade c.ttl_exp##c.ttl_exp i.not_smsa
note: Gibbs sampling is used for variance components.

  
Burn-in 2500 aaaaaaaaa1000aaaaaaaaa2000aaaaa done
Simulation 1000 .........1000 done


Model summary
Bayesian RE normal regression MCMC iterations = 3,500 Metropolis–Hastings and Gibbs sampling Burn-in = 2,500 MCMC sample size = 1,000 Group variable: id Number of groups = 831 Obs per group: min = 1 avg = 1.4 max = 5 Number of obs = 1,174 Acceptance rate = .6181 Efficiency: min = .009861 avg = .01259 Log marginal-likelihood max = .01751
Equal-tailed
Mean Std. dev. MSCE Median [95% cred. interval]
ln_wage
grade .0691558 .0063225 .002013 .0692614 .0567288 .0819581
ttl_exp .0389882 .0080916 .002355 .0390646 .0228502 .0530886
c.ttl_exp#
c.ttl_exp -.0004548 .0004804 .000153 -.0004778 -.0013733 .0005973
1.not_smsa -.1452854 .0241483 .006649 -.1450175 -.1934294 -.0947368
_cons .5751218 .0727991 .022234 .5795395 .4176046 .7018132
var_U .0785815 .0082846 .00198 .0784331 .0615956 .0956798
sigma2 .0688682 .0059815 .001537 .0684258 .0583475 .0823034

A mi egyéni priorunk nem sokat változtatott az eredményeken.

A panel- vagy csoporthatások utólagos eloszlásai

Érdekelhet minket, hogy következtetéseket vonjunk le az egyének (panel) hatásaira. A Bayes-modellezés természetes módot biztosít erre. A klasszikus véletlenszerű hatású paneladatmodellekkel ellentétben a Bayes-féle paneladatmodellek a véletlenszerű (panel)hatásokat az összes többi modellparaméterrel együtt becsülik. Így minden egyes véletlen hatást egy teljes MCMC-minta reprezentál a poszterior eloszlásából. Ez a minta felhasználható olyan következtetésekhez, mint például a panel- vagy csoporthatások összehasonlítása. (Gondoljunk csak a különböző vállalatok vagy kórházak teljesítményének összehasonlítására).

Térjünk vissza az eredeti modellünkhöz, amely alapértelmezett nem informatív priorokat használt.

. estimates restore bxtreg
(results bxtreg are active now)

Ábrázoljuk az első kilenc egyéni hatás utólagos eloszlásait.

. bayesgraph histogram {U[1/9]}, byparm normal

A fenti egyéni hatások az átlagos logarlétszámhoz képest eltolódásokat vagy eltéréseket jelentenek. Az egyének fizetése között határozottan vannak eltérések. Láthatjuk például, hogy a 8. egyén fizetése magasabb, mint az 5. egyéné. Tehát az egyéni fizetések között még mindig vannak olyan különbségek, amelyeket a modell prediktorai nem vesznek figyelembe.

Bayes-előrejelzések

A Bayes-féle keretrendszerben aszimptotikus feltevések nélkül is kiszámíthatja az előrejelzéseket és azok bizonytalanságát. Ez azért lehetséges, mert a kapott előrejelzések az új adatok “pontos” poszterior előrejelző eloszlásának mintái a megfigyelt adatok mellett. Az utólagos előrejelző eloszlásról nem feltételezzük, hogy aszimptotikusan normális.

Számítsuk ki az előre jelzett naplóbérek utólagos átlagait a 95%-os hihető intervallumukkal együtt.

. bayespredict pmean, mean 

Computing predictions ...

. bayespredict cri_l cri_u, cri

Computing predictions ...

Soroljuk fel az első 10 megfigyelés eredményeit.

. list ln_wage pmean cri_l cri_u in 1/10

ln_wage pmean cri_l cri_u
1. 1.543923 1.55197 .8831815 2.184215
2. 1.815738 1.645933 1.006488 2.284888
3. 1.870532 1.718343 1.112855 2.360129
4. 2.340405 2.16819 1.523068 2.747879
5. 1.545327 1.629953 1.092535 2.221188
6. 1.594335 1.687503 1.089151 2.268714
7. 1.848619 1.849651 1.266758 2.408907
8. 1.757637 1.80307 1.140366 2.467546
9. 2.346746 2.224904 1.529079 2.833333
10. 3.539868 2.826903 2.270285 3.511156

A megjósolt utólagos átlagok közel állnak a megfigyelt értékekhez, kivéve talán a 10. megfigyelést. A következő szakaszban megmutatjuk, hogyan lehet formálisabban ellenőrizni, hogy a modell jól illeszkedik-e. Ehhez azonban először el kell mentenünk az összes MCMC-előrejelzést.

. bayespredict {_ysim1}, saving(bxtregpred)

Computing predictions ...

file bxtregpred.dta saved.
file bxtregpred.ster saved.

A bxtregpred.dta az egyes megfigyelésekhez tartozó értékek MCMC-mintáját tartalmazza. A korábban megjósolt utólagos átlagok (pmean) minden egyes megfigyelés esetében az MCMC-mintán mért átlagot jelentik.

Az MCMC-előrejelzések adathalmazai jellemzően nagyok, ezért érdemes megfontolni, hogy csak szükség esetén mentsük el őket; a részletekért lásd [BAYES] bayespredict.

Utólagos prediktív ellenőrzések-modell illeszkedés

A paneladat-modellek Bayes-elemzésének másik előnye a modell illeszkedésének ellenőrzésére szolgáló formalizált utólagos előrejelző ellenőrzések, amelyek a klasszikus frequentista elemzéssel nem állnak rendelkezésre.

Az előre jelzett kimenetelre vonatkozó utólagos mintákat, az MCMC-előrejelzési mintát használhatjuk a modell illeszkedési jóságának ellenőrzésére. Például hasonlítsuk össze az MCMC-előrejelzési mintákból származó minimális és maximális statisztikákat az adatokban megfigyelt statisztikákkal. Ezek a statisztikák az adateloszlás csóváit írják le. A maximum és a minimum helyett (vagy mellett) bármilyen más statisztikát is használhat.
A bayesstats ppvalues utólagos előrejelző ellenőrzéseket végez az úgynevezett utólagos előrejelző p-értékek (PPP) kiszámításával. A PPP-k azt írják le, hogy az MCMC-előrejelzési minta statisztikái milyen gyakran voltak ugyanolyan szélsőségesek vagy szélsőségesebbek, mint a megfigyelt minta statisztikái; lásd [BAYES] bayesstats ppvalues.

. bayesstats ppvalues (pmin:@min({_ysim1})) (pmax:@max({_ysim1})) using bxtregpred

Posterior predictive summary   MCMC sample size =     1,000

T Mean Std. dev. E(T_obs) P(T>=T_obs)
pmin .0299837 .1652143 .0176546 .565
pmax 3.515637 .2291669 3.85025 .085
Note: P(T>=T_obs) close to 0 or 1 indicates lack of fit.

A minimum PPP értéke, .565, nem közelíti meg a 0-t vagy az 1-et, így a modell jól illeszkedik ehhez a statisztikához. A maximum PPP-je, .085, azonban közel van a 0-hoz, és így rossz illeszkedésre utal e statisztika tekintetében.

Ha megvizsgáljuk az adatokat, felfedezhetünk egy olyan megfigyeléscsoportot, amelynek értékei 3,5 és 4 között vannak, és amelyek kiugrónak tűnnek. Lehet, hogy felül kell vizsgálnunk a modellünket, és foglalkoznunk kell a kiugró értékek problémájával.

Takarítás

Az elemzés után eltávolíthatjuk a bayes: var és bayespredict által létrehozott fájlokat, amelyekre már nincs szükség.

. erase bxtregsim.dta
. erase bxtregpred.dta
. erase bxtregpred.ster