Neu in

Bayes’sche Längsschnitt-/Paneldatenmodelle

Sie können Bayes’sche Längsschnitt-/Paneldatenmodelle anpassen, indem Sie Ihren klassischen Paneldatenmodellen einfach bayes: voranstellen. Da Paneldatenmodelle als zweistufige hierarchische Modelle betrachtet werden können, gelten alle Vorteile der Bayesschen Mehrebenenmodellierung auch für Paneldatenmodelle.

Sie können ein lineares Paneldatenmodell mit zufälligen Effekten auf das Ergebnis y mit den Prädiktoren x1 und x2 und dem Panel- oder Gruppenidentifikator id anpassen, indem Sie Folgendes eingeben

. xtset id
. xtreg y x1 x2

Sie können nun ein Bayessches Gegenstück dieses Modells anpassen, indem Sie Folgendes eingeben

. xtset id
. bayes: xtreg y x1 x2

Höhepunkte

  • Ergebnisse: kontinuierlich, binär, ordinal, kategorisch, Anzahl
  • Zufällige Effekte
  • Flexible vorherige Verteilungen
  • Posteriorverteilungen von Panel- oder Gruppeneffekten
  • Bayes’sche Vorhersagen
  • Vollständige Unterstützung von Bayes’schen Merkmalen

Natürlich können Sie, wie bei jedem anderen Stata-Befehl auch, eine Point-and-Click-Schnittstelle verwenden, anstatt die Befehle einzugeben.

Bayes’sche Paneldatenmodelle sind nicht nur für kontinuierliche Ergebnisse geeignet. Für binäre Ergebnisse können Sie ebenso einfach eingeben

. bayes: xtprobit y x1 x2

oder bei Zählergebnissen

. bayes: xtpoisson y x1 x2

Oder verwenden Sie eines der acht Paneldatenmodelle, die das bayes-Präfix unterstützen, einschließlich des neuen multinomialen Logit-Modells für Paneldaten.

Wir wollen sehen, wie es funktioniert

  • Schätzung
  • Konvergenz von MCMC
  • Benutzerdefinierte Prioritäten
  • Posteriorverteilungen von Panel- oder Gruppeneffekten
  • Bayes’sche Vorhersagen
  • Posteriore Vorhersageprüfungen – Modellanpassung
  • Aufräumen

Schätzung

Betrachten wir eine Untergruppe von Daten aus der National Longitudinal Survey of Young Women, die 1968 zwischen 14 und 24 Jahre alt waren und im Süden lebten. Wir modellieren den Logarithmus der Löhne als Funktion der individuellen Bildung, grade;, der Berufserfahrung, ttl_exp, die quadratisch in das Modell eingeht, und der Tatsache, ob sie in einem Standard-Metropolengebiet leben oder nicht, not_smsa. Es gibt mehrere Beobachtungen pro Person, die durch id identifiziert werden.

Wir passen ein lineares Bayes’sches Paneldatenmodell an, um individuelle Effekte zu berücksichtigen. Außerdem möchten wir Bayes’sche Vorhersagen für die Log-Löhne berechnen und die individuellen (Panel-)Effekte vergleichen.

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

Um Zeit zu sparen, führen wir eine Markov-Chain-Monte-Carlo (MCMC)-Stichprobe von 1.000 anstelle der standardmäßigen 10.000 durch. Aus Gründen der Reproduzierbarkeit geben wir auch einen Zufallszahlen-Seed an.

. 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

Der posteriore Mittelwert für den Koeffizienten grade ist mit einer Größenordnung von 7 Prozent positiv. Die Theorie besagt, dass die Löhne mit der Erfahrung steigen, der Anstieg aber mit der Zeit abnimmt. Dies impliziert, dass der Koeffizient für ttl_exp positiv sein sollte und der Koeffizient für c.ttl_exp#c.ttl_exp negativ sein sollte. Wir beobachten dies in unseren Daten. Schließlich hat das Leben außerhalb der großen städtischen Zentren einen negativen Effekt auf die Löhne.

Bei der Bayes’schen Modellierung müssen Sie Prioritäten für alle Modellparameter angeben. Wie bei jedem anderen bayes-Befehl bietet bayes: xtreg zur Vereinfachung Standardprioritäten. Sie sollten die Prior-Spezifikationen überprüfen und Ihre eigenen angeben.

Konvergenz von MCMC

bayes: xtreg verwendet MCMC, um Ergebnisse zu erhalten. Seine Konvergenz muss vor der weiteren Analyse überprüft werden. Dies kann grafisch geschehen, oder Sie können die Gelman-Rubin-Konvergenzstatistik unter Verwendung mehrerer Ketten berechnen.

Beurteilen wir die MCMC-Konvergenz visuell, beispielsweise für den Koeffizienten grade.

. bayesgraph diagnostics {ln_wage:grade}

In der Kurvendarstellung ist kein Trend erkennbar. Die Autokorrelation nimmt mit der Zeit ab. Wir haben keinen Grund, eine Nichtkonvergenz für den grade, zu vermuten, aber die Konvergenz muss für alle Modellparameter überprüft werden.

Lassen Sie uns unsere MCMC- und Schätzergebnisse für spätere Zwecke speichern.

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

. estimates store bxtreg

Benutzerdefinierte Prioritäten

Bei Bayes’schen Modellen möchten Sie vielleicht Ihre eigenen Prioritäten einbeziehen. Diese Prioritäten stammen oft aus historischen Daten. Auf der Grundlage früherer Studien kann es beispielsweise sinnvoll sein, anzunehmen, dass der Koeffizient für grade zwischen 0 und 25 liegt. Wir können also einen gleichmäßigen Prior für (0,25) in Betracht ziehen. Wir können die Bayes-Option prior() verwenden, um benutzerdefinierte Prioren festzulegen.

. 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

Unser benutzerdefiniertes Prior hat die Ergebnisse nicht wesentlich verändert.

Posteriorverteilungen von Panel- oder Gruppeneffekten

Wir können daran interessiert sein, Rückschlüsse auf die (Panel-)Effekte von Einzelpersonen zu ziehen. Die Bayes’sche Modellierung bietet hierfür eine natürliche Möglichkeit. Im Gegensatz zu klassischen Paneldatenmodellen mit zufälligen Effekten werden bei Bayes’schen Paneldatenmodellen zufällige (Panel-)Effekte zusammen mit allen anderen Modellparametern geschätzt. So wird jeder Zufallseffekt durch eine vollständige MCMC-Stichprobe aus seiner Posterior-Verteilung repräsentiert. Diese Stichprobe kann für Inferenzen wie den Vergleich von Panel- oder Gruppeneffekten verwendet werden. (Man denke an den Vergleich der Leistungen verschiedener Unternehmen oder Krankenhäuser).

Kehren wir zu unserem ursprünglichen Modell zurück, das standardmäßig uninformative Prioren verwendete.

. estimates restore bxtreg
(results bxtreg are active now)

Stellen wir die Posterior-Verteilungen für die ersten neun individuellen Effekte dar.

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

Die oben genannten individuellen Auswirkungen stellen Verschiebungen oder Verschiebungen gegenüber dem durchschnittlichen Log-Lohn dar. Es gibt definitiv Unterschiede zwischen den Gehältern der einzelnen Personen. So ist zum Beispiel das Gehalt von Person 8 höher als das von Person 5. Es gibt also immer noch Unterschiede zwischen den einzelnen Gehältern, die nicht durch die Modellprädiktoren berücksichtigt werden.

Bayes’sche Vorhersagen

Im Bayes’schen Rahmen können Sie Vorhersagen und deren Unsicherheiten berechnen, ohne asymptotische Annahmen zu treffen. Dies ist möglich, weil die erhaltenen Vorhersagen Stichproben aus der „exakten“ posterioren Vorhersageverteilung der neuen Daten in Abhängigkeit von den beobachteten Daten sind. Es wird nicht angenommen, dass die posteriore Vorhersageverteilung asymptotisch normal ist.

Berechnen wir die posterioren Mittelwerte der vorhergesagten Log-Löhne zusammen mit ihrem 95% glaubwürdigen Intervall

. bayespredict pmean, mean 

Computing predictions ...

. bayespredict cri_l cri_u, cri

Computing predictions ...

Wir listen die Ergebnisse für die ersten 10 Beobachtungen auf.

. 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

Die vorhergesagten posterioren Mittelwerte liegen nahe an den beobachteten Werten, außer vielleicht bei Beobachtung 10. Im nächsten Abschnitt zeigen wir, wie man formal überprüfen kann, ob das Modell gut passt. Dazu müssen wir jedoch zunächst alle MCMC-Vorhersagen speichern.

. bayespredict {_ysim1}, saving(bxtregpred)

Computing predictions ...

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

bxtregpred.dta enthält eine MCMC-Stichprobe von Werten für jede Beobachtung. Die posterioren Mittelwerte (pmean), die wir zuvor vorhergesagt haben, sind für jede Beobachtung der Mittelwert über die MCMC-Stichprobe.

Die MCMC-Vorhersagedatensätze sind in der Regel sehr groß, so dass Sie sie nur bei Bedarf speichern sollten; siehe [BAYES] bayespredict für weitere Einzelheiten.

Posteriore Vorhersageprüfungen – Modellanpassung

Ein weiterer Vorteil der Bayes’schen Analyse von Paneldatenmodellen sind formalisierte posteriore Vorhersageprüfungen zur Überprüfung der Modellanpassung, die bei der klassischen frequentistischen Analyse nicht möglich sind.

Wir können Posterior-Stichproben für das vorhergesagte Ergebnis, die MCMC-Vorhersage-Stichprobe, verwenden, um die Anpassungsgüte des Modells zu überprüfen. Vergleichen wir zum Beispiel die Minimal- und Maximalstatistiken aus den MCMC-Vorhersage-Stichproben mit den in den Daten beobachteten Werten. Diese Statistiken beschreiben die Schwänze der Datenverteilung. Sie können anstelle des Maximums und des Minimums (oder zusätzlich dazu) jede andere Statistik verwenden.
bayesstats ppvalues führt posterior prädiktive Überprüfungen durch, indem es die sogenannten posterior prädiktiven p-Werte (PPPs) berechnet. PPPs beschreiben, wie oft die Statistiken aus der MCMC-Vorhersage-Stichprobe genauso extrem wie oder extremer als die der beobachteten Stichprobe waren; siehe [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.

Das KKP für das Minimum, .565, liegt nicht nahe an 0 oder 1, so dass das Modell in Bezug auf diese Statistik gut passt. Das KKP für das Maximum, 0,085, liegt jedoch nahe bei 0 und deutet somit auf eine schlechte Anpassung für diese Statistik hin.

Wenn wir die Daten untersuchen, werden wir eine Gruppe von Beobachtungen mit Werten zwischen 3,5 und 4 entdecken, die wie Ausreißer aussehen. Möglicherweise müssen wir unser Modell überarbeiten und das Problem der Ausreißer angehen.

Aufräumen

Nach der Analyse können wir die von bayes: var und bayespredict erstellten Dateien, die nicht mehr benötigt werden, entfernen.

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