Ново в

Байесови модели на надлъжни/панелни данни

Можете да приложите Байесови модели на надлъжни/панелни данни, като просто поставите пред класическите си модели на панелни данни префикс bayes:. Тъй като моделите за панелни данни могат да се разглеждат като йерархични модели на две нива, всички предимства на байесовото многостепенно моделиране се прилагат и за моделите за панелни данни.

Можете да приложите линеен модел на панелни данни със случайни ефекти към резултата y с предиктори x1 и x2 и идентификатор на панела или групата id, като въведете

. xtset id
. xtreg y x1 x2

Сега можете да приложите Байесов аналог на този модел, като въведете

. xtset id
. bayes: xtreg y x1 x2

Акценти

  • Резултати: непрекъснати, двоични, ординарни, категорични, брой
  • Случайни ефекти
  • Гъвкави предварителни разпределения
  • Постериорни разпределения на панелните или груповите ефекти
  • Прогнози по метода на Бейс
  • Пълна поддръжка на Байесовите функции

Разбира се, както при всяка друга команда на Stata, можете да използвате интерфейса „посочи и щракни“, вместо да въвеждате командите.

Байесовите модели за панелни данни не са само за непрекъснати резултати. Можете също толкова лесно да въведете и за двоични резултати

. bayes: xtprobit y x1 x2

или за резултатите от преброяването

. bayes: xtpoisson y x1 x2

Или използвайте някой от осемте модела за панелни данни, които поддържат префикса на bayes, включително новия модел за панелни данни multinomial logit.

Нека видим как работи

  • Оценяване
  • Сходимост на MCMC
  • Потребителски прайори
  • Постериорни разпределения на панелните или груповите ефекти
  • Прогнози по метода на Бейс
  • Постериорни прогнозни проверки – пригодност на модела
  • Почистване

Оценяване

Да разгледаме подгрупа от данни от Националното надлъжно проучване на млади жени на възраст между 14 и 24 години през 1968 г., живеещи в южната част на страната. Ще моделираме логаритъма на заплатите като функция на образованието на индивида, grade; неговия професионален опит, ttl_exp, който влиза в модела квадратично; и дали живее в стандартен метрополис, not_smsa. За всяко лице има няколко наблюдения, идентифицирани с id.

За отчитане на индивидуалните ефекти приложихме линеен модел на Бейс за панелни данни. Искаме също така да изчислим Байесовите прогнози за логаритмичните заплати и да сравним индивидуалните (панелни) ефекти.

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

За да спестим време, пускаме извадка от 1000 вместо стандартните 10 000. За възпроизводимост посочваме и семе за случайни числа.

. 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

Средната апостериорна стойност на коефициента за grade е положителна и възлиза на 7%. Теорията предполага, че заплатите се увеличават с натрупването на опит, но това увеличение намалява с времето. Това означава, че коефициентът ttl_exp трябва да е положителен, а коефициентът c.ttl_exp#c.ttl_exp трябва да е отрицателен. Наблюдаваме това в нашите данни. Накрая, животът извън големите градски центрове има отрицателен ефект върху заплатите.

Байесовото моделиране изисква да определите приори за всички параметри на модела. Както при всяка друга команда на bayes, bayes: xtreg предоставя за удобство приори по подразбиране. Трябва да прегледате спецификациите на приоритетите и да посочите свои собствени.

Сходимост на MCMC

bayes: xtreg използва MCMC за получаване на резултатите. Сходимостта му трябва да се провери преди по-нататъшен анализ. Можете да направите това графично или да изчислите статистиката за сходимост на Gelman-Rubin, като използвате множество вериги.

Нека да оценим визуално сходимостта на MCMC, например за коефициента на grade.

. bayesgraph diagnostics {ln_wage:grade}

В графиката на трасето няма видима тенденция. Автокорелацията намалява с времето. Нямаме причина да подозираме неконвергенция за grade, но е необходимо да се провери конвергенцията за всички параметри на модела.

Нека запазим нашите резултати от MCMC и оценяването за по-късна употреба.

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

. estimates store bxtreg

Потребителски прайори

При моделите на Бейс може да искате да включите свои собствени прийоми. Тези прийоми често идват от исторически данни. Например въз основа на предишни проучвания може да е разумно да се предположи, че коефициентът за grade варира между 0 и 25. Така че можем да разгледаме равномерен приоритет на (0,25) за него. Можем да използваме опцията prior() на Bayes, за да зададем потребителски приори.

. 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

Нашият потребителски приоритет не промени много резултатите.

Постериорни разпределения на панелните или груповите ефекти

Можем да се интересуваме от заключения за ефектите на отделните лица (панел). Байесовото моделиране предоставя естествен начин за това. За разлика от класическите модели на панелни данни със случайни ефекти, Байесовите модели на панелни данни оценяват случайните (панелни) ефекти заедно с всички други параметри на модела. По този начин всеки случаен ефект се представя чрез цяла MCMC извадка от неговото апостериорно разпределение. Тази извадка може да се използва за изводи, като например за сравнение на панелни или групови ефекти. (Помислете за сравняване на резултатите на различни компании или болници.)

Нека се върнем към нашия първоначален модел, който използва неинформативни прайори по подразбиране.

. estimates restore bxtreg
(results bxtreg are active now)

Нека начертаем апостериорните разпределения за първите девет индивидуални ефекта.

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

Посочените по-горе индивидуални ефекти представляват изместване или компенсиране на средната заплата в лева. Определено има различия между заплатите на отделните лица. Например можем да видим, че заплатата на индивид 8 е по-висока от тази на индивид 5. Така че все още има разлики между индивидуалните заплати, които не се отчитат от предикторите на модела.

Прогнози по метода на Бейс

В рамките на Байесовата система можете да изчислявате прогнози и техните несигурности, без да правите асимптотични предположения. Това е възможно, тъй като получените прогнози са извадки от „точното“ апостериорно предсказващо разпределение на новите данни, като се имат предвид наблюдаваните данни. Не се приема, че апостериорното предсказващо разпределение е асимптотично нормално.

Нека да изчислим апостериорните средни стойности на прогнозираните логаритмични заплати заедно с техните 95% достоверни интервали

. bayespredict pmean, mean 

Computing predictions ...

. bayespredict cri_l cri_u, cri

Computing predictions ...

Нека изброим резултатите за първите 10 наблюдения.

. 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

Прогнозираните апостериорни средни стойности са близки до наблюдаваните стойности, с изключение на наблюдение 10. В следващия раздел ще покажем как да проверим дали моделът се вписва добре по-официално. Но за да направим това, първо трябва да запазим всички MCMC прогнози.

. bayespredict {_ysim1}, saving(bxtregpred)

Computing predictions ...

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

bxtregpred.dta съдържа MCMC извадка от стойности за всяко наблюдение. Постериорните средни стойности (pmean), които прогнозирахме по-рано, са за всяко наблюдение средната стойност за MCMC извадката.

Наборите от данни за MCMC предсказания обикновено са големи, така че може да обмислите възможността да ги запазвате само при необходимост; за подробности вижте [BAYES] bayespredict.

Постериорни прогнозни проверки – пригодност на модела

Друго предимство на Байесовия анализ на модели на панелни данни са формализираните последващи прогнозни проверки за проверка на пригодността на модела, които не са налични при класическия честотен анализ.

Можем да използваме апостериорни извадки за прогнозирания резултат, MCMC прогнозна извадка, за да извършваме проверки за доброто прилягане на модела. Например нека сравним минималните и максималните статистики от MCMC прогнозните извадки с тези, наблюдавани в данните. Тези статистики описват опашките на разпределението на данните. Можете да използвате всякакви други статистики вместо (или в допълнение към) максимума и минимума.
bayesstats ppvalues извършва апостериорни прогностични проверки, като изчислява така наречените апостериорни прогностични р-стойности (PPP). PPP описват колко често статистическите данни от MCMC прогнозната извадка са толкова екстремни, колкото или по-екстремни от тези в наблюдаваната извадка; вижте [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.

ППС за минимума, 0,565, не е близо до 0 или 1, така че моделът се вписва добре по отношение на тази статистика. Но PPP за максимума, .085, е близък до 0 и следователно предполага лошо напасване на модела за тази статистика.

Ако разгледаме данните, ще открием група наблюдения със стойности между 3,5 и 4, които изглеждат като отклонения. Може да се наложи да преразгледаме нашия модел и да разгледаме въпроса за отклоненията.

Почистване

След анализа можем да премахнем файловете, създадени от bayes: var и bayespredict, които вече не са необходими.

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