Nouveau dans

Modèles bayésiens de données longitudinales/panel

Vous pouvez ajuster des modèles bayésiens de données longitudinales/panel en préfixant simplement vos modèles classiques de données de panel avec bayes:. Les modèles de données de panel pouvant être considérés comme des modèles hiérarchiques à deux niveaux, tous les avantages de la modélisation bayésienne à plusieurs niveaux s’appliquent également aux modèles de données de panel.

Vous pouvez ajuster un modèle linéaire de données de panel à effets aléatoires au résultat y avec les prédicteurs x1 et x2 et l’identifiant de panel ou de groupe id en tapant

. xtset id
. xtreg y x1 x2

Vous pouvez maintenant ajuster une contrepartie bayésienne de ce modèle en tapant

. xtset id
. bayes: xtreg y x1 x2

Points forts

  • Résultats : continu, binaire, ordinal, catégorique, comptage.
  • Effets aléatoires
  • Distributions préalables flexibles
  • Distributions postérieures des effets de panel ou de groupe
  • Bayesian predictions
  • Support complet des caractéristiques bayésiennes

Bien entendu, comme pour toute autre commande Stata, vous pouvez utiliser une interface de type pointer-cliquer au lieu de taper les commandes.

Les modèles bayésiens de données de panel ne concernent pas uniquement les résultats continus. Vous pouvez tout aussi bien taper pour des résultats binaires

. bayes: xtprobit y x1 x2

ou pour les résultats de comptage

. bayes: xtpoisson y x1 x2

Vous pouvez également utiliser l’un des huit modèles de données de panel qui prennent en charge le préfixe bayes, y compris le nouveau modèle logit multinomial de données de panel.

Voyons comment cela fonctionne

  • Estimation
  • Convergence des MCMC
  • Priorités personnalisées
  • Distributions postérieures des effets de panel ou de groupe
  • Prédictions bayésiennes
  • Contrôles prédictifs a posteriori – ajustement du modèle
  • Nettoyer

Estimation

Considérons un sous-ensemble de données de l’enquête longitudinale nationale sur les jeunes femmes âgées de 14 à 24 ans en 1968, vivant dans le Sud. Nous modéliserons le logarithme des salaires en fonction de l’éducation de l’individu, grade, de son expérience professionnelle, ttl_exp, qui entre dans le modèle de façon quadratique, et du fait qu’il vive ou non dans une zone métropolitaine standard, not_smsa. Il y a plusieurs observations par individu, identifié par id.

Nous ajustons un modèle linéaire bayésien de données de panel pour tenir compte des effets individuels. Nous souhaitons également calculer les prédictions bayésiennes des salaires logarithmiques et comparer les effets (de panel) des individus.

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

Pour gagner du temps, nous exécutons un échantillon de Monte Carlo à chaîne de Markov (MCMC) de 1 000, au lieu des 10 000 par défaut. Nous spécifions également une graine de nombres aléatoires pour la reproductibilité.

. 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

La moyenne postérieure du coefficient du grade est positive, avec une magnitude de 7 %. La théorie suggère que les salaires augmentent avec l’expérience mais que cette augmentation s’amenuise avec le temps. Cela implique que le coefficient de ttl_exp devrait être positif, et que le coefficient de c.ttl_exp#c.ttl_exp devrait être négatif. C’est ce que nous observons dans nos données. Enfin, le fait de vivre en dehors des grands centres urbains a un effet négatif sur les salaires.

La modélisation bayésienne exige que vous spécifiiez des prieurs pour tous les paramètres du modèle. Comme pour toute autre commande bayes, bayes: xtreg fournit des prieurs par défaut pour des raisons de commodité. Vous devez revoir les spécifications des prieurs et spécifier les vôtres.

Convergence des MCMC

bayes: xtreg utilise MCMC pour obtenir des résultats. Sa convergence doit être vérifiée avant toute analyse ultérieure. Vous pouvez le faire graphiquement, ou vous pouvez calculer la statistique de convergence Gelman-Rubin en utilisant plusieurs chaînes.

Évaluons visuellement la convergence MCMC pour, disons, le coefficient grade.

. bayesgraph diagnostics {ln_wage:grade}

Il n’y a pas de tendance apparente dans le tracé. L’autocorrélation diminue avec le temps. Nous n’avons pas de raison de suspecter une non-convergence pour le grade, mais la convergence doit être vérifiée pour tous les paramètres du modèle.

Sauvegardons nos résultats MCMC et d’estimation pour une utilisation ultérieure.

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

. estimates store bxtreg

Priorités personnalisées

Avec les modèles bayésiens, vous pouvez vouloir incorporer vos propres prieurs. Ces prieurs proviennent souvent de données historiques. Par exemple, sur la base d’études antérieures, il peut être raisonnable de supposer que le coefficient du grade est compris entre 0 et 25. Nous pouvons donc envisager de lui attribuer une priorité uniforme sur (0,25). Nous pouvons utiliser l’option prior() de Bayes pour spécifier des prieurs personnalisés.

. 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

Notre antérieur personnalisé n’a pas beaucoup changé les résultats.

Distributions postérieures des effets de panel ou de groupe

Nous pouvons être intéressés à faire des inférences sur les effets (de panel) des individus. La modélisation bayésienne offre un moyen naturel de le faire. Contrairement aux modèles classiques de données de panel à effets aléatoires, les modèles bayésiens de données de panel estiment les effets (de panel) aléatoires avec tous les autres paramètres du modèle. Ainsi, chaque effet aléatoire est représenté par un échantillon MCMC complet de sa distribution postérieure. Cet échantillon peut être utilisé pour des inférences telles que la comparaison des effets de panel ou de groupe. (Pensez à la comparaison des performances de différentes entreprises ou hôpitaux).

Revenons à notre modèle original, qui utilisait des prieurs non informatifs par défaut.

. estimates restore bxtreg
(results bxtreg are active now)

Traçons les distributions postérieures pour les neuf premiers effets individuels.

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

Les effets individuels ci-dessus représentent des décalages ou des compensations par rapport au salaire logarithmique moyen. Il y a certainement des variations entre les salaires des individus. Par exemple, nous pouvons voir que le salaire de l’individu 8 est plus élevé que celui de l’individu 5. Il existe donc encore des différences entre les salaires individuels qui ne sont pas prises en compte par les prédicteurs du modèle.

Prédictions bayésiennes

Dans le cadre bayésien, vous pouvez calculer des prédictions et leurs incertitudes sans faire d’hypothèses asymptotiques. Cela est possible car les prédictions obtenues sont des échantillons de la distribution prédictive postérieure « exacte » des nouvelles données compte tenu des données observées. La distribution prédictive postérieure n’est pas supposée être asymptotiquement normale.

Calculons les moyennes postérieures du logarithme des salaires prédits ainsi que leurs intervalles crédibles à 95%.

. bayespredict pmean, mean 

Computing predictions ...

. bayespredict cri_l cri_u, cri

Computing predictions ...

Let’s list the results for the first 10 observations.

. 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

Les moyennes postérieures prédites sont proches des valeurs observées, sauf peut-être pour l’observation 10. Dans la section suivante, nous montrons comment vérifier plus formellement si le modèle s’ajuste bien. Mais pour ce faire, nous devons d’abord enregistrer toutes les prédictions MCMC.

. bayespredict {_ysim1}, saving(bxtregpred)

Computing predictions ...

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

bxtregpred.dta contient un échantillon MCMC de valeurs pour chaque observation. Les moyennes postérieures (pmean) que nous avons prédites précédemment sont, pour chaque observation, la moyenne sur l’échantillon MCMC.

Les ensembles de données de prédictions MCMC sont généralement volumineux, vous pouvez donc envisager de les sauvegarder uniquement lorsque cela est nécessaire ; voir [BAYES] bayespredict pour plus de détails.

Contrôles prédictifs a posteriori – ajustement du modèle

Un autre avantage de l’analyse bayésienne des modèles de données de panel est la formalisation des contrôles prédictifs a posteriori pour vérifier l’ajustement du modèle, qui ne sont pas disponibles avec l’analyse fréquentiste classique.

Nous pouvons utiliser des échantillons postérieurs pour le résultat prédit, l’échantillon de prédiction MCMC, afin de vérifier la qualité de l’ajustement du modèle. Par exemple, comparons les statistiques minimum et maximum des échantillons de prédiction MCMC avec celles observées dans les données. Ces statistiques décrivent les queues de la distribution des données. Vous pouvez utiliser toute autre statistique à la place (ou en plus) du maximum et du minimum.
bayesstats ppvalues effectue des vérifications prédictives postérieures en calculant les p-values prédictives postérieures (PPP). Les PPP décrivent la fréquence à laquelle les statistiques de l’échantillon de prédiction MCMC sont aussi extrêmes ou plus extrêmes que celles de l’échantillon observé ; voir [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.

La PPA pour le minimum, 0,565, n’est pas proche de 0 ou de 1, de sorte que le modèle s’adapte bien à cette statistique. Mais le PPP pour le maximum, 0,085, est proche de 0 et suggère donc un mauvais ajustement pour cette statistique.

Si nous examinons les données, nous découvrirons un groupe d’observations avec des valeurs entre 3,5 et 4 qui ressemblent à des valeurs aberrantes. Nous devrons peut-être revoir notre modèle et résoudre le problème des valeurs aberrantes.

Nettoyer

Après l’analyse, nous pouvons supprimer les fichiers créés par bayes: var et bayespredict qui ne sont plus nécessaires.

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