Nou în

Bayesian multilevel modeling: Nonlinear, joint, SEM-like…

Modelele pe mai multe niveluri sunt utilizate de multe discipline pentru a modela efecte specifice grupului, care pot apărea la diferite niveluri ale ierarhiei. Gândiți-vă la regiuni, state cuibărite în regiuni și companii cuibărite în state din regiuni. Sau gandiți-vă la spitalele, medicii cuibăriți în spitale și pacienții cuibăriți în medicii cuibăriți în spitale.
În plus față de beneficiile standard ale analizei bayesiene, modelarea Bayesiană pe mai multe niveluri oferă multe avantaje pentru datele cu un număr mic de grupuri sau panouri. Și oferă modalități principiale de a compara efectele între diferite grupuri utilizând distribuții posterioare ale efectelor. Vedeți mai multe discuții aici.
bayesmh are o nouă sintaxă cu efecte aleatorii care facilitează adaptarea modelelor Bayesian pe mai multe niveluri. Și deschide ușa potrivirii noilor clase de modele pe mai multe niveluri. Puteți potrivi mai ușor modelele univariate liniare și neliniare pe mai multe niveluri. Și vă puteți potrivi acum modele multivariate liniare și neliniare pe mai multe niveluri!
Gândiți-vă la modelele neliniare cu efecte mixte, potrivite de menl sau la unele modele SEM, potrivite de sem și gsem, sau de modele neliniare multivariate care conțin efecte aleatorii și, de acum, nu pot fi potrivite de nicio comandă Stata existentă. Acum puteți potrivi omologii bayesieni ai acestor modele și multe altele folosind bayesmh.

Repere

  • • Rezultate: continuu, binar, ordinal, număr, supraviețuire, …
  • • Specificație convenabilă a efectelor aleatorii
  • Intercepții aleatorii și coeficienți
  • Efecte imbricate și încrucișate
  • Factori latenți
  • Mai multe niveluri de ierarhie
  • Modele liniare și neliniare
  • Modele univariate și multivariate
  • Creșterea comună, multivariată și modele SEM
  • Modele multivariate de efecte aleatorii neliniare
  • Distribuții anterioare flexibile cu efecte aleatorii
  • Distribuții posterioare ale efectelor aleatorii
  • Diagnosticare MCMC, inclusiv lanțuri multiple
  • Suport complet pentru funcții postestimare bayesiene

Să vedem cum funcționează

  • Modele pe două niveluri
  • Modele multi nivel neliniare
  • Modele de tip SEM
  • Modele comune de date longitudinale și de supraviețuire
  • Modele de creștere neliniare multivariate

Modele pe două niveluri

Să începem simplu și să potrivim mai întâi câteva modele pe două niveluri.
See Bayesian multilevel models using the bayes prefix. There, we show how to use bayes: mixed and other bayes multilevel commands to fit Bayesian multilevel models. Let’s replicate some of the specifications here using the new random-effects syntax of bayesmh.Vedeți modelele Bayesian pe mai multe niveluri folosind prefixul bayes. Acolo, vă arătăm cum să utilizați bayes:mixed și alte comenzi mixte bayes pe mai multe niveluri pentru a se potrivi modelelor Bayesiene pe mai multe niveluri. Să reproducem câteva dintre specificații aici folosind noua sintaxă a efectelor aleatorii a bayesmh.
Considerăm aceleași date despre scorurile matematice ale elevilor din anii trei și cinci din diferite școli din Londra interioară (Mortimore et al. 1988). Vrem să investigăm un efect școlar asupra scorurilor matematice.
Să potrivim un model simplu de interceptare aleatorie pe două niveluri la aceste date folosind bayesmh. Specificăm interceptările aleatorii la nivelul școlii ca U0 [școală] și le includem în specificația de regresie.
bayesmh necesită specificații prealabile pentru toți parametrii, cu excepția efectelor aleatorii. Pentru efectele aleatorii, presupune o distribuție anterioară normală cu media 0 și componenta varianței {var_U0}, unde U0 este numele efectului aleatoriu. Dar noi trebuie să precizeze în prealabil pentru {var_U0}. Precizăm prealabilele normale cu media 0 și varianța 10.000 pentru coeficienții de regresie și o prioritate inversă-gamma cu formă și scară de 0,01 pentru componentele varianței. Specificăm o punte pentru reproductibilitate și utilizăm o dimensiune MCMC mai mică de 1.000.

. bayesmh math5 math3 U0[school], likelihood(normal({var_0}))
 prior({math5:}, normal(10000)) 
 prior({var_U0 var_0}, igamma(0.01, 0.01) split)
 rseed(17) mcmcsize(1000)

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

Model summary
Likelihood:
math5 ~ normal(xb_math5,{var_0})
 
Priors:
{math5:math3 _cons} ~ normal(0,10000) (1)
{U0[school]} ~ normal(0,{var_U0}) (1)
{var_0} ~ igamma(0.01,0.01)
 
Hyperprior:
{var_U0} ~ igamma(0.01,0.01)
(1) Parameters are elements of the linear form xb_math5. Bayesian normal regression MCMC iterations = 3,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 1,000 Number of obs = 887 Acceptance rate = .184 Efficiency: min = .01949 avg = .02627 Log marginal-likelihood max = .03782
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
math5
math3 .6106683 .0294298 .004785 .6118322 .557625 .6666446
_cons 30.33802 .286075 .054654 30.30869 29.78776 30.90507
var_0 28.04414 1.127223 .255309 28.12474 25.9292 30.12599
var_U0 4.18167 1.324194 .293471 3.791668 2.443605 8.09385

Rezultatele sunt similare cu cele de la bayes: mixed în interceptări aleatorii. Am putea replica aceeași analiză postestimare din acea secțiune după bayesmh, inclusiv afișarea și graficele efectelor aleatorii. În plus față de parametrii principali ai modelului, modelele bayesiene estimează, de asemenea, toate efectele aleatorii. Acest lucru este în contrast cu analiza frecventistă, în care efectele aleatorii nu sunt estimate împreună cu parametrii modelului, dar sunt prezise după estimare condiționată de parametrii modelului.
În continuare includem coeficienți aleatori pentru math ca c.math3 # U1 [school]. În plus, trebuie să specificăm o prioritate pentru componenta de varianță {var_U1}. Am adăugat la lista componentelor de varianță folosind invers-gama anterior.

. bayesmh math5 math3 U0[school] c.math3#U1[school], likelihood(normal({var_0}))
 prior({math5:}, normal(10000))
 prior({var_U0 var_U1 var_0}, igamma(0.01, 0.01) split)
 rseed(17) mcmcsize(1000)

Burn-in 2500 aaaaaaaaa1000aaaaa....2000..... done
Simulation 1000 .........1000 done

Model summary
Likelihood:
math5 ~ normal(xb_math5,{var_0})
 
Priors:
{math5:math3 _cons} ~ normal(0,10000) (1)
{U0[school]} ~ normal(0,{var_U0}) (1)
{U1[school]} ~ normal(0,{var_U1}) (1)
{var_0} ~ igamma(0.01,0.01)
 
Hyperprior:
{var_U0 var_U1} ~ igamma(0.01,0.01)
(1) Parameters are elements of the linear form xb_math5. Bayesian normal regression MCMC iterations = 3,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 1,000 Number of obs = 887 Acceptance rate = .2641 Efficiency: min = .009673 avg = .02501 Log marginal-likelihood max = .04479
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
math5
math3 .6076992 .0399422 .005968 .6027789 .5351981 .6909692
_cons 30.30091 .2693482 .060468 30.30717 29.77415 30.81859
var_0 27.1167 1.143676 .1871 27.13383 24.40773 28.99094
var_U0 3.644527 .3810517 .104254 3.632184 2.865729 4.504112
var_U1 .0359823 .0132122 .004248 .0369494 .0121753 .0612364

Rezultatele noastre sunt similare cu cele de la bayes: mixed în coeficienți aleatori
În mod implicit, bayesmh presupune că efectele aleatorii U0[id] și U1[id] sunt independente ca prioritate. Dar putem modifica acest lucru specificând odistribuție normală multivariată pentru ei cu o matrice de covarianță nestructurată {Sigma, m}. În plus, specificăm o prioritate inversă Wishart pentru covarianța {Sigma, m}.

. bayesmh math5 math3 U0[school] c.math3#U1[school], likelihood(normal({var_0}))
 prior({math5:}, normal(10000))
 prior({var_0}, igamma(0.01, 0.01))
 prior({U0[school] U1[school]}, mvn(2,0,0,{Sigma,m}))
 prior({Sigma,m}, iwishart(2,3,I(2)))
 rseed(17) mcmcsize(1000)

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

Model summary
Likelihood:
math5 ~ normal(xb_math5,{var_0})
 
Priors:
{math5:math3 _cons} ~ normal(0,10000) (1)
{var_0} ~ igamma(0.01,0.01)
{U0[school] U1[school]} ~ mvnormal(2,0,0,{Sigma,m}) (1)
 
Hyperprior:
{Sigma,m} ~ iwishart(2,3,I(2))
(1) Parameters are elements of the linear form xb_math5. Bayesian normal regression MCMC iterations = 3,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 1,000 Number of obs = 887 Acceptance rate = .2681 Efficiency: min = .02805 avg = .03997 Log marginal-likelihood max = .05502
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
math5
math3 .6358644 .055642 .010505 .6413544 .5284978 .7378708
_cons | 30.19804 .2872908 .049467 30.21301 29.62466 30.79241
var_0 26.47047 1.316738 .20655 26.47233 23.97093 28.83548
Sigma_1_1 4.355775 1.134325 .173332 4.251965 2.460442 6.865151
Sigma_2_1 -.337147 .1266224 .01707 -.3318653 -.6110905 -.1305513
Sigma_2_2 .0989839 .0211883 .003369 .0971182 .0633831 .1454557

Rezultatele sunt din nou similare cu cele de la bayes: mixed, covarianță (nestructurată) în coeficienți aleatori. La fel ca în acea secțiune, am putea folosi bayesstats ic după bayesmh pentru a compara modelele nestructurate și independente.
De asemenea, putem folosi noua opțiune anterioară mvnexchangeable() pentru a specifica o structură de covarianță cu efecte aleatorii schimbabile în loc de o structurată. O covarianță schimbabilă se caracterizează prin doi parametri, o varianță comună și o corelație. Specificăm priorități suplimentare pentru acei parametri.

. bayesmh math5 math3 U0[school] c.math3#U1[school], likelihood(normal({var_0}))
 prior({math5:}, normal(10000))
 prior({var_0}, igamma(0.01, 0.01))
 prior({U0[school] U1[school]}, mvnexchangeable(2,0,0,{var_U},{rho}))
 prior({var_U}, igamma(0.01, 0.01)) prior({rho}, uniform(-1,1))
 rseed(17) mcmcsize(1000)

Burn-in 2500 aaaaaaaaa1000aaaaa....2000..... done
Simulation 1000 .........1000 done

Model summary
Likelihood:
math5 ~ normal(xb_math5,{var_0})
 
Priors:
{math5:math3 _cons} ~ normal(0,10000) (1)
{var_0} ~ igamma(0.01,0.01)
{U0[school] U1[school]} ~ mvnexchangeable(2,0,0,{var_U},{rho}) (1)
 
Hyperpriors:
{var_U} ~ igamma(0.01,0.01)
{rho} ~ uniform(-1,1)
(1) Parameters are elements of the linear form xb_math5. Bayesian normal regression MCMC iterations = 3,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 1,000 Number of obs = 887 Acceptance rate = .2192 Efficiency: min = .004793 avg = .009362 Log marginal-likelihood max = .01871
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
math5
math3 .5981686 .0363804 .010405 .5997212 .525986 .6658922
_cons 30.38414 .1865243 .043121 30.36968 30.02465 30.73264
var_0 32.47519 .509181 .219875 32.45254 31.75455 33.4238
var_U .0635754 .0293628 .013412 .0574445 .0241849 .1300754
rho -.6144082 .2107051 .088129 -.6555609 -.9454211 -.2390335

Ne-am putea potrivi cu alte modele din modelele Bayesiene pe mai multe niveluri folosind prefixul bayes, folosind bayesmh. De exemplu, ne-am putea potrivi modelului de supraviețuire pe trei niveluri folosind

. bayesmh time education njobs prestige i.female U[birthyear] UU[id<birthyear],
 likelihood(stexponential, failure(failure))
 prior({time:}, normal(0,10000)) prior({var_U var_UU}, igamma(0.01,0.01) split)

using și modelul logistic cu efecte încrucișate prin utilizarea

. bayesmh attain_gt_6 sex U[sid] V[pid], likelihood(logit)
 prior({attain_gt_6:}, normal(0,10000)) prior({var_U var_V}, igamma(0.01,0.01))

Dar toate aceste modele se pot potrivi cu ușurință deja prin prefixul bayes. În cele ce urmează, demonstrăm modele care nu pot fi potrivite cu bayes :.

Modele multi nivel neliniare

Vă puteți potrivi modele multi-nivel neliniare univariate bayesiene folosind bayesmh. Sintaxa bayesmh este aceeași cu comanda menl care se potrivește modelelor clasice cu efecte mixte neliniare, cu excepția faptului că bayesmh suportă în plus efecte încrucișate precum UV[id1 # id2] și factori latenți precum L[_n].
Vedeți Model neliniar cu trei niveluri în [BAYES] bayesmh.

Modele de tip SEM

Puteți utiliza bayesmh pentru a se potrivi unor modele de ecuații structurale (SEM) și modele legate de acestea. SEM analizează mai multe variabile și utilizează așa numitele variabile latente în specificațiile lor. O variabilă latentă este o pseudo-variabilă care are o valoare diferită, neobservată, pentru fiecare observație. Cu bayesmh, specificați variabile latente ca L[_n]. Puteți utiliza diferite variabile latente în ecuații diferite, puteți partaja aceleași variabile latente între ecuații, puteți plasa constrângeri asupra coeficienților variabilelor latente și multe altele.
Pentru exemple, a se vedea modelul de creștere latentă și teoria răspunsului articolului în [BAYES] bayesmh.

Modele comune de date longitudinale și de supraviețuire

Puteți utiliza bayesmh<> pentru a modela rezultate multiple de diferite tipuri. Modele comune de rezultate longitudinale și de supraviețuire sunt un astfel de exemplu. Aceste modele sunt populare în practică datorită celor trei aplicații principale:

  1. Contabilizarea abandonului informativ în analiza datelor longitudinale.
  2. Studiați efectele covariabilelor de bază asupra rezultatelor longitudinale și de supraviețuire.
  3. Studiați efectele covariabilelor dependente de timp asupra rezultatului supraviețuirii.

Mai jos, demonstrăm prima aplicație, dar același concept poate fi aplicat celorlalte două.
Vom utiliza o versiune a datelor Scalei Simptomelor Pozitive și Negative (PANSS) dintr-un studiu clinic care compară diferite tratamente medicamentoase pentru schizofrenie (Diggle 1998). Datele conțin scoruri PANSS (panss) de la pacienții care au primit trei tratamente (treat): placebo, haloperidol (referință) și risperidonă (terapie nouă). Scorurile PANSS sunt măsurători pentru tulburarea psihiatrică. Am dori să studiem efectele tratamentelor asupra scorurilor PANSS în timp (week).
Un model considerat pentru scorurile PANSS este un model longitudinal liniar cu efectele tratamentelor, timpul (în săptămâni) și interacțiunea lor și interceptările aleatorii U [id].

. bayesmh panss i.treat##i.week U[id], likelihood(normal({var}))

Deci, cum intră în joc modelul de supraviețuire?
Mulți subiecți s-au retras din acest studiu – doar aproximativ jumătate au finalizat programul complet de măsurare. Mulți subiecți au renunțat din cauza „inadecvării pentru răspuns”, ceea ce sugerează că abandonul poate fi informativ și nu poate fi pur și simplu ignorat în analiză.
Un proces de abandon științific poate fi privit ca un proces de supraviețuire cu un abandon științific informativ (infdrop) ca eveniment de interes și cu timpul până la abandon școlar ca timp de supraviețuire. Deoarece avem date longitudinale, există mai multe observații pe subiect. Deci, timpul de abandon este împărțit în mai multe vrăji în funcție de week și este astfel reprezentat de ora de început (t0) și ora de sfârșit (t1). În punctul de timp rămas t0, o observație (sau o semnificație) este considerată trunchiată la stânga. Vom presupune un model de supraviețuire Weibull pentru procesul de abandon. Abandonul este probabil legat de tratament, deci îl includem ca predictor în modelul de supraviețuire.

. bayesmh t1 i.treat, likelihood(stweibull({lnp}) failure(infdrop) ltruncated(t0))

O modalitate de a explica abandonul informativ este de a include un efect aleatoriu comun între modelele longitudinale și de supraviețuire care ar induce corelația dintre rezultatul longitudinal și procesul de abandon (Henderson, Diggle și Dobson 2000).

. bayesmh (panss i.treat##i.week U[id]@1, likelihood(normal({var})))
         (t1 i.treat U[id], likelihood(stweibull({lnp}) failure(infdrop) ltruncated(t0)))

Am adăugat interceptări aleatorii de la modelul longitudinal la modelul de supraviețuire. De asemenea, am restrâns coeficientul pentru U[id] în prima ecuație la 1. Am făcut acest lucru pentru a sublinia că doar coeficientul pentru U[id] din a doua ecuație va fi estimat. bayesmh face de fapt această presupunere în mod implicit.
Pentru a se potrivi modelului de mai sus, trebuie să specificăm distribuții anterioare pentru parametrii modelului. Avem mulți parametri, deci este posibil să fie nevoie să specificăm priorități oarecum informative. Reamintim că modelele bayesiene, pe lângă parametrii principali ai modelului, estimează, de asemenea, toți parametrii cu efecte aleatorii U [id].
Dacă există un efect al abandonului asupra scorurilor PANSS, ar fi rezonabil să presupunem că ar fi pozitiv. Deci, specificăm o prioritate exponențială cu scara 1 pentru coeficientul lui U[id] în modelul de supraviețuire. Specificăm priorele normale cu media 0 și varianța de 1.000 pentru constanta {panss: _cons} și parametrul Weibull {lnp}. Presupunem priori normali cu medie 0 și varianță 100 pentru alți coeficienți de regresie. Și folosim priori invers-gamma cu formă și scară de 0,01 pentru componentele varianței.
Pentru a îmbunătăți eficiența eșantionării, folosim eșantionarea Gibbs pentru componentele varianței și efectuăm blocarea altor parametri. De asemenea, specificăm valorile inițiale pentru unii parametri utilizând opțiunea initial().

. bayesmh (panss i.treat##i.week U[id]@1, likelihood(norm({var})) )
         (t1 i.treat U[id], likelihood(stweibull({lnp}), failure(dropinf) ltruncated(t0))),
 prior({panss:_cons} {lnp},     normal(0,10000))
 prior({panss:i.treat##i.week}, normal(0,100))
 prior({t1:i.treat _cons},      normal(0,100))  
 prior({t1:U},                  exponential(1))                               
 prior({var_U} {var},           igamma(.01, .01) split)
 block({panss:i.treat#i.week}) block({panss:i.week})
 block({t1:i.treat U _cons}, split)
 block({var_U} {var}, split gibbs)
 initial({t1:U} 1 {U[id]} 10 {panss:_cons} 100)
 mcmcsize(2500) rseed(17)
  
Burn-in 2500 aaaaaaaaa1000aaaaaaaaa2000aaaaa done
Simulation 2500 .........1000.........2000..... done

Model summary
Likelihood:
panss ~ normal(xb_panss,{var})
t1 ~ stweibull(xb_t1,{lnp})
 
Priors:
{panss:_cons} ~ normal(0,10000) (1)
{panss:i.treat i.week i.treat#i.week} ~ normal(0,100) (1)
{U[id]} ~ normal(0,{var_U}) (1)
{var} ~ igamma(.01,.01)
{t1:i.treat _cons} ~ normal(0,100) (2)
{t1:U} ~ exponential(1) (2)
{lnp} ~ normal(0,10000)
 
Hyperprior:
{var_U} ~ igamma(.01,.01)
(1) Parameters are elements of the linear form xb_panss. (2) Parameters are elements of the linear form xb_t1. Bayesian normal regression MCMC iterations = 5,000 Metropolis–Hastings and Gibbs sampling Burn-in = 2,500 MCMC sample size = 2,500 No. of subjects = 685 Number of obs = 685 No. of failures = 63 Time at risk =863.6239911317825 Acceptance rate = .4608 Efficiency: min = .003913 avg = .03232 Log marginal-likelihood max = .2742
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
panss
treat
2 -.3822383 2.271158 .359186 -.6136486 -4.434188 4.837333
3 -2.523494 3.80129 1.21543 -2.476083 -9.917332 4.074579
week
1 -4.993821 1.896496 .305945 -5.012834 -8.444717 -2.05126
2 -6.936372 1.57161 .453628 -6.939513 -10.50464 -3.908946
4 -4.844521 1.251981 .166785 -4.877955 -7.435107 -2.411917
6 -10.18118 1.816353 .361756 -10.03946 -14.2258 -6.98241
8 -10.25389 1.943371 .215791 -10.24783 -14.31332 -6.847999
treat#week
2 1 6.310975 2.434069 .390195 6.23198 1.213006 10.90485
2 2 7.027649 1.762338 .388778 6.840791 4.187137 10.5907
2 4 5.048269 1.863907 .351182 4.95867 1.458491 8.918415
2 6 15.32668 3.174594 .558032 14.99079 9.634857 21.59519
2 8 15.06479 3.072411 .646168 15.33875 8.316151 20.73611
3 1 -4.369372 2.892201 .659758 -4.479573 -9.651484 1.705437
3 2 -3.592772 2.198812 .444487 -3.576276 -7.864927 .982366
3 4 -11.22279 2.857886 .70199 -11.46703 -16.1155 -4.78894
3 6 -6.514449 1.87237 .483044 -6.457851 -9.986309 -2.939939
3 8 -2.078064 2.111598 .334112 -2.20723 -6.045809 1.881032
U 1 0 0 1 1 1
_cons 92.73873 2.162198 .367931 92.93747 88.40111 96.73237
t1
U .0596402 .0100107 .0009 .0598603 .0399564 .0783648
treat
2 .7984438 .3316247 .043614 .8106603 .1467264 1.457444
3 -.5172767 .4007821 .070892 -.5204102 -1.312922 .2484082
_cons -4.179667 .3958759 .082368 -4.19354 -4.944542 -3.359592
var 160.0879 9.848987 .376194 159.7498 142.23 180.8697
lnp .4849039 .0896179 .019375 .4879265 .2611824 .6596941
var_U 289.2579 39.46373 1.72886 285.8929 222.4319 372.773

Nu ne vom concentra pe interpretarea tuturor rezultatelor acestui model, dar vom comenta coeficientul {t1: U} pentru interceptarea aleatorie partajată. Se estimează că este 0,06, iar intervalul său credibil de 95% nu conține 0. Aceasta înseamnă că există o asociere pozitivă între scorurile PANSS și timpii de abandon: cu cât scorul PANSS este mai mare, cu atât este mai mare șansa de abandon. Deci, simpla analiză longitudinală nu ar fi adecvată pentru aceste date.

Modele de creștere neliniare multivariate

Modelele ierarhice de creștere liniară și neliniară sunt populare în multe discipline, cum ar fi știința sănătății, educația, științele sociale, ingineria și biologia. Modelele de creștere liniare și neliniare multivariate sunt deosebit de utile în științele biologice pentru a studia creșterea speciilor de animale sălbatice, unde creșterea este descrisă prin măsurători multiple care sunt adesea corelate. Astfel de modele au adesea mulți parametri și sunt dificil de adaptat folosind metode clasice. Estimarea bayesiană oferă o alternativă viabilă.
Modelele de mai sus pot fi potrivite de bayesmh folosind specificații de ecuații multiple, care acceptă acum efecte aleatorii și factori latenți. Ecuațiile pot fi toate liniare, toate neliniare sau un amestec din cele două tipuri. Există diferite moduri de a modela dependența între rezultate multiple (ecuații). De exemplu, puteți include aceleași efecte aleatorii, dar cu coeficienți diferiți în ecuații diferite, sau puteți include efecte aleatoare diferite, dar corelați-le prin distribuția anterioară.
Să-i urmărim pe Jones et al. (2005) care au aplicat un model Bayesian de creștere bivariată pentru a studia creșterea puilor cu stern negru. Creșterea a fost măsurată prin lungimea aripii y1 și greutatea y2. Se presupune un model de creștere liniară pentru lungimea aripii, iar un model de creștere logistică se presupune pentru greutate.

(y1,ijy2,ij)=(Ui+VitimeijCi/{1+dCiexp(Bitimeij)})+(ε1,ijε2,ij)

where d

d

is a fixed parameter, (Ui,Vi,Ci,Bi)N(μ,Σ)

(Ui,Vi,Ci,Bi)N(μ,Σ)

,
and (ε1,ε2)N(0,Σ0)

(ε1,ε2)N(0,Σ0)

.

There are four random effects at the individual (chick) level: U

U

and V

V


are the intercept and growth rate for the wings. In the equation for y2

y2

,
we have random effects B

B

and C

C

, which represent the rate and maximum
weight. The location parameter is assumed to take the form dC

dC

, where d

d


is a constant. (U,V,C,B)

(U,V,C,B)

follow a multivariate normal distribution with
an unstructured covariance. The errors from the two equations follow a
bivariate normal distribution.

urmeaază o distribuție normală multi variată cu o covarianță nestructurată. Erorile din cele două ecuații urmează o distribuție normală bivariată.
Folosim un set de date fictiv simulat pe baza descrierii din Jones et al. (2005). Ne potrivim unui model normal bivariat cu covarianță de eroare {Sigma0, m}. Celor patru efecte aleatorii li se atribuie o normală multivariată anterioară cu parametrii medii și covarianța corespunzătoare {Sigma, m}. Mijloacelor anterioare li se atribuie distribuții normale cu media 0 și varianța 100. Matricilor de covarianță li se atribuie priori Wishart inverse. Parametrului d i se atribuie o prioritate exponențială cu scala 1. Folosim eșantionarea Gibbs pentru matricile de covarianță și parametrii blocului pentru a îmbunătăți eficiența. De asemenea, specificăm valorile inițiale, folosim o dimensiune MCMC mai mică de 2.500 și specificăm o semință cu număr aleatoriu pentru reproductibilitate.

. bayesmh (y1 = ({U[id]} + time*{V[id]}))
         (y2 = ({C[id]}/(1+{d}*{C[id]}*exp(-{B[id]}*time)))),
 likelihood(mvnormal({Sigma0,m}))
 prior({U[id] V[id] C[id] B[id]}, mvnormal(4,{u},{v},{c},{b},{Sigma,m}))
 prior({u v c b},  normal(0, 100))
 prior({Sigma0,m}, iwishart(2,3,I(2)))
 prior({Sigma,m},  iwishart(4,5,I(4)))
 prior({d}, exp(1))
 block({d u v b c}, split)
 block({Sigma0,m} {Sigma,m}, gibbs)
 init({U[id] u} -10 {V[id] v} 10 {C[id] c} 100 {d} 1)
 mcmcsize(2500) rseed(17)

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

Model summary
Likelihood:
y1 y2 ~ mvnormal(2,,,{Sigma0,m})
 
Priors:
{Sigma0,m} ~ iwishart(2,3,I(2))
{U[id] V[id] C[id] B[id]} ~ mvnormal(4,{u},{v},{c},{b},{Sigma,m})
{d} ~ exponential(1)
 
Hyperpriors:
{u v c b} ~ normal(0,100)
{Sigma,m} ~ iwishart(4,5,I(4))
 
Expressions:
expr1 : {U[id]} + time*{V[id]}
expr2 : {C[id]}/(1+{d}*{C[id]}*exp(-{B[id]}*time))
Bayesian multivariate normal regression MCMC iterations = 5,000 Metropolis–Hastings and Gibbs sampling Burn-in = 2,500 MCMC sample size = 2,500 Number of obs = 414 Acceptance rate = .4713 Efficiency: min = .01174 avg = .2265 Log marginal-likelihood max = .7028
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
d .0634061 .0025888 .000478 .0635744 .0579154 .0680656
u -12.84796 3.011731 .255283 -12.97586 -18.25202 -6.451113
v 5.977761 .2446379 .023368 5.990374 5.422395 6.404792
c 78.42872 3.602142 .368536 78.7988 70.10973 84.34357
b .2208688 .0471093 .002637 .2229167 .1242395 .3148616
Sigma0_1_1 7.956314 .5825538 .017417 7.926544 6.871581 9.158582
Sigma0_2_1 2.625951 .6406367 .021819 2.632427 1.430312 3.875557
Sigma0_2_2 18.85203 1.342218 .038113 18.81303 16.36956 21.67296
Sigma_1_1 192.8405 67.11091 2.92639 179.5316 101.754 362.8648
Sigma_2_1 -8.029962 4.209058 .21859 -7.334189 -17.74035 -1.783869
Sigma_3_1 -108.4137 63.18093 3.39159 -97.77067 -258.3206 -18.55377
Sigma_4_1 .4582266 .6998019 .021466 .4405483 -.8234645 1.983518
Sigma_2_2 1.193545 .4200058 .025011 1.10642 .6352668 2.223882
Sigma_3_2 12.45667 5.664299 .404336 11.29209 5.259565 27.34906
Sigma_4_2 -.0023492 .0557342 .001842 -.0034794 -.1104773 .1078309
Sigma_3_3 234.2312 95.14968 6.93288 212.8518 117.8635 471.0824
Sigma_4_3 -.2949588 .829987 .032991 -.2727646 -2.063978 1.386505
Sigma_4_4 .0454308 .0136201 .000325 .0428103 .0257433 .0790052

Există o corelație pozitivă, 0,21, între termenii de eroare.
De asemenea, calculăm corelația dintre rata de creștere a aripilor și greutatea maximă.

. bayesstats summary (corr24: {Sigma_2_3}/sqrt({Sigma_2_2}*{Sigma_3_3}))

Posterior summary statistics                      MCMC sample size =     2,500

      corr24 :  {Sigma_2_3}/sqrt({Sigma_2_2}*{Sigma_3_3})

Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
corr24 .7328452 .1065301 .005605 .7508832 .4838739 .8959725

Corelația estimată este de 0,73, care este ridicată. Măsurările lungimii și greutății aripii sunt clar corelate și trebuie modelate împreună.

Referințe

Diggle, P. J. 1998. Tratarea valorilor lipsă în studiile longitudinale. În Progrese recente în analiza statistică a datelor medicale, ed. B. S. Everitt și G. Dunn, 203-228. Londra: Arnold.
Henderson, R., P. Diggle și A. Dobson. 2000. Modelarea în comun a măsurătorilor longitudinale și a datelor timpului evenimentului. Biostatistică 4: 465–480.
Jones, G., R. J. Keedwell, A. D. L. Noble și D. I. Hedderley. 2005. Puii de întâlniri: calibrarea și discriminarea într-un model de creștere ierarhică neliniară multivariată. Jurnal de statistici agricole, biologice și de mediu 10: 306-320.
Mortimore, P., P. Sammons, L. Stoll, D. Lewis și R. Ecob. 1988. Problemele școlare: anii juniorilor. Somerset, Marea Britanie: Cărți deschise.

Resurse adiționale

Aflați mai multe în Manualul de referință pentru analiza bayesiană Stata
A se vedea modelele Bayesiene longitudinale / panouri de date.
Vedeți modelele Bayesian pe mai multe niveluri folosind prefixul bayes.