Novinky ve 
Bayesovské víceúrovňové modelování: Nelineární, společné, podobné SEM…
Víceúrovňové modely se používají v mnoha oborech k modelování skupinově specifických účinků, které mohou vznikat na různých úrovních hierarchie. Představte si regiony, státy vnořené do regionů a společnosti vnořené do států v rámci regionů. Nebo si představte nemocnice, lékaře vnořené do nemocnic a pacienty vnořené do lékařů vnořených do nemocnic.
Kromě standardních výhod bayesovské analýzy nabízí bayesovské víceúrovňové modelování mnoho výhod pro data s malým počtem skupin nebo panelů. A poskytuje principiální způsoby porovnávání účinků v různých skupinách pomocí posteriorních rozdělení účinků. Další diskusi naleznete zde.
bayesmh má novou syntaxi náhodných efektů, která usnadňuje fitování bayesovských víceúrovňových modelů. A otevírá dveře k fitování nových tříd víceúrovňových modelů. Snadněji můžete fitovat jednorozměrné lineární a nelineární víceúrovňové modely. A nyní můžete fitovat vícerozměrné lineární a nelineární víceúrovňové modely!
Představte si nelineární modely se smíšenými efekty, které fituje příkaz menl, nebo některé modely SEM, které fitují příkazy sem a gsem, nebo vícerozměrné nelineární modely, které obsahují náhodné efekty a které zatím nelze fitovat žádným stávajícím příkazem Staty. Bayesovské protějšky těchto a dalších modelů můžete nyní fitovat pomocí bayesmh.
Nejdůležitější informace
- Výsledky: kontinuální, binární, ordinální, počet, přežití, …
- Pohodlná specifikace náhodných efektů
- Náhodné intercepty a koeficienty
- Vložené a zkřížené efekty
- Latentní faktory
- Více úrovní hierarchie
- Lineární a nelineární modely
- Jednorozměrné a vícerozměrné modely
- Společné, vícerozměrné modely růstu a modely podobné SEM
- Vícerozměrné nelineární modely s náhodnými efekty
- Flexibilní prioritní rozdělení náhodných efektů
- Flexibilní prioritní rozdělení náhodných efektů
- Diagnostika MCMC, včetně vícenásobných řetězců
- Plná podpora bayesovských funkcí postestimace
Podívejme se, jak to funguje
- Dvouúrovňové modely
- Nelineární víceúrovňové modely
- Modely typu SEM
- Společné modely longitudinálních dat a dat o přežití
- Vícerozměrné nelineární modely růstu
Dvouúrovňové modely
Začněme jednoduše a nejprve sestavme několik dvouúrovňových modelů.
Viz Bayesovské víceúrovňové modely s použitím předpony Bayes. Tam si ukážeme, jak pomocí příkazu bayes: mixed a dalších příkazů bayes multilevel fitovat bayesovské víceúrovňové modely. Zopakujme si zde některé specifikace s použitím nové syntaxe bayesmh s náhodnými efekty.
Uvažujeme stejná data o výsledcích žáků třetích a pátých ročníků v matematice z různých škol ve vnitřním Londýně (Mortimore et al. 1988). Chceme zkoumat vliv školy na výsledky z matematiky.
Napasujme na tato data jednoduchý dvouúrovňový model s náhodným průmětem pomocí bayesmh. Náhodné intercepty na úrovni školy specifikujeme jako U0[school] a zahrneme je do regresní specifikace.
bayesmh vyžaduje předchozí specifikace pro všechny parametry kromě náhodných efektů. Pro náhodné efekty předpokládá normální předběžné rozdělení se střední hodnotou 0 a složkou rozptylu {var_U0}, kde U0 je název náhodného efektu. Musíme však specifikovat prioritu pro {var_U0}. Pro regresní koeficienty zadáme normální prioritu se střední hodnotou 0 a rozptylem 10 000 a pro složky rozptylu zadáme prioritu inverzní gama s tvarem a škálou 0,01. Pro reprodukovatelnost zadáváme seed a používáme menší velikost MCMC 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) |
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 | |
Výsledky jsou podobné výsledkům z bayesova modelu: smíšené v Náhodné zásahy. Mohli jsme zopakovat stejnou postestimulační analýzu z této části po bayesmh, včetně zobrazení a grafů náhodných efektů. Kromě hlavních parametrů modelu odhadují bayesovské modely také všechny náhodné efekty. To je rozdíl oproti frekvenční analýze, kde se náhodné efekty neodhadují společně s parametry modelu, ale předpovídají se po odhadu podmíněném parametry modelu.
Dále zahrneme náhodné koeficienty pro math jako c.math3#U1[school]. Dále musíme určit prioritu pro složku rozptylu {var_U1}. Do seznamu komponent rozptylu jsme přidali prioritu inverzní gama.
. 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) |
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 | |
Naše výsledky jsou podobné výsledkům z bayes: mixed analýzy: smíšené v Náhodných koeficientech.
Ve výchozím nastavení bayesmh předpokládá, že náhodné efekty U0[id] a U1[id] jsou a priori nezávislé. Můžeme to však upravit tak, že pro ně zadáme vícerozměrné normální rozdělení s nestrukturovanou kovarianční maticí {Sigma,m}. Pro kovarianci {Sigma,m} navíc určíme inverzní Wishartovu prioritu.
. 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)) |
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 | |
Výsledky jsou opět podobné výsledkům z bayes: mixed, covariance(unstructured) v náhodných koeficientech. Stejně jako v této části bychom mohli použít bayesstats ic po bayesmh k porovnání nestrukturovaného a nezávislého modelu.
Můžeme také použít novou prior volbu mvnexchangeable() a zadat výměnnou kovarianční strukturu náhodných efektů místo nestrukturované. Výměnná kovariance je charakterizována dvěma parametry, společným rozptylem a korelací. Pro tyto parametry zadáváme další priory.
. 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) |
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 | |
Další modely z bayesovských víceúrovňových modelů jsme mohli fitovat pomocí předpony bayes pomocí bayesmh. Například bychom mohli fitovat tříúrovňový model přežití pomocí přípony
. 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)
a logistický model se zkříženými efekty s použitím
. 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))
Všechny tyto modely však lze snadno napasovat již pomocí bayes prefixu. V následujícím textu si ukážeme modely, které nelze fitovat pomocí bayesovské předpony:.
Nelineární víceúrovňové modely
Bayesovské jednorozměrné nelineární víceúrovňové modely můžete fitovat pomocí bayesmh. Syntaxe bayesmh je stejná jako u příkazu menl, který fituje klasické nelineární modely se smíšenými efekty, s tím rozdílem, že bayesmh navíc podporuje zkřížené efekty, jako je UV[id1#id2], a latentní faktory, jako je L[_n].
Viz Tříúrovňový nelineární model v [BAYES] bayesmh.
Modely typu SEM
Pomocí bayesmh můžete fitovat některé modely strukturálních rovnic (SEM) a modely s nimi související. SEM analyzují více proměnných a ve svých specifikacích používají tzv. latentní proměnné. Latentní proměnná je pseudoproměnná, která má pro každé pozorování jinou, nepozorovanou hodnotu. V programu bayesmh se latentní proměnné zadávají jako L[_n]. V různých rovnicích můžete používat různé latentní proměnné, stejné latentní proměnné můžete sdílet napříč rovnicemi, na koeficienty latentních proměnných můžete klást omezení a další.
Příklady viz Latentní růstový model a Teorie odezvy na položku v [BAYES] bayesmh.
Společné modely longitudinálních dat a dat o přežití
Pomocí bayesmh můžete modelovat více výsledků různých typů. Jedním z takových příkladů jsou společné modely longitudinálních výsledků a výsledků přežití. Tyto modely jsou v praxi oblíbené díky svým třem hlavním aplikacím:
- Zohlednění informativního výpadku při analýze longitudinálních dat.
- Studie vlivu výchozích kovariát na longitudinální výsledky a výsledky přežití.
- Studium vlivu kovariát závislých na čase na výsledek přežití.
Níže si ukážeme první aplikaci, ale stejný koncept lze použít i na další dvě.
Použijeme verzi škály pozitivních a negativních příznaků (PANSS), která pochází z klinické studie porovnávající různé způsoby léčby schizofrenie (Diggle 1998). Data obsahují skóre PANSS (panss) od pacientů, kteří dostávali tři léčebné postupy (treat): placebo, haloperidol (referenční) a risperidon (nová léčba). Skóre PANSS je měřením psychické poruchy. Chtěli bychom studovat účinky léčby na skóre PANSS v průběhu času (week).
Uvažovaný model pro skóre PANSS je longitudinální lineární model s účinky léčby, času (v týdnech) a jejich interakcí a náhodnými intercepty U[id].
. bayesmh panss i.treat##i.week U[id], likelihood(normal({var}))
Jak se zde uplatňuje model přežití?
Mnoho subjektů z této studie odstoupilo – jen asi polovina dokončila celý plán měření. Mnoho subjektů odstoupilo z důvodu „nedostatečné odpovědi“, což naznačuje, že odstoupení může být informativní a nelze je v analýze jednoduše ignorovat.
Na proces vyřazení lze nahlížet jako na proces přežívání, přičemž informativní vyřazení (infdrop) je událost, která nás zajímá, a doba do vyřazení je doba přežívání. Protože máme longitudinální data, na jeden subjekt připadá více pozorování. Doba vysazení je tedy rozdělena na více období podle týdnů a je tedy reprezentována časem začátku (t0) a časem konce (t1). V levém časovém bodě t0 je pozorování (nebo kouzlo) považováno za levostranné. Pro proces vyřazení budeme předpokládat Weibullův model přežití. Vysazení pravděpodobně souvisí s léčbou, proto jej zahrneme jako prediktor do modelu přežití.
. bayesmh t1 i.treat, likelihood(stweibull({lnp}) failure(infdrop) ltruncated(t0))
Jedním ze způsobů, jak zohlednit informativní předčasné ukončení studia, je zahrnout společný náhodný efekt mezi longitudinální model a model přežití, který by vyvolal korelaci mezi longitudinálním výsledkem a procesem předčasného ukončení studia (Henderson, Diggle a 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)))
Do modelu přežití jsme přidali náhodné intercepty z longitudinálního modelu. Omezili jsme také koeficient U[id] v první rovnici na hodnotu 1. Udělali jsme to proto, abychom zdůraznili, že se bude odhadovat pouze koeficient pro U[id] ve druhé rovnici. bayesmh ve skutečnosti tento předpoklad automaticky provádí ve výchozím nastavení.
Abychom mohli výše uvedený model přizpůsobit, musíme zadat prioritní rozdělení parametrů modelu. Máme mnoho parametrů, takže možná budeme muset zadat poněkud informativní priory. Připomeňme, že bayesovské modely kromě hlavních parametrů modelu odhadují také všechny parametry náhodných efektů U[id].
Pokud existuje vliv předčasného ukončení studia na skóre PANSS, bylo by rozumné předpokládat, že bude pozitivní. Proto v modelu přežití určíme exponenciální prioritu se škálou 1 pro koeficient U[id]. Pro konstantu {panss:_cons} a Weibullův parametr {lnp} zadáme normální priory se střední hodnotou 0 a rozptylem 1 000. Pro ostatní regresní koeficienty předpokládáme normální priory se střední hodnotou 0 a rozptylem 100. A pro složky rozptylu použijeme inverzní gama priory s tvarem a škálou 0,01.
Pro zvýšení efektivity vzorkování použijeme Gibbsovo vzorkování pro složky rozptylu a provedeme blokování ostatních parametrů. Pro některé parametry také určujeme počáteční hodnoty pomocí volby 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) |
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 | |
Nebudeme se věnovat interpretaci všech výsledků tohoto modelu, ale okomentujeme koeficient {t1:U} pro společný náhodný intercept. Jeho hodnota je odhadnuta na 0,06 a jeho 95% věrohodný interval neobsahuje 0. To znamená, že existuje pozitivní souvislost mezi skóre PANSS a dobou vysazení: čím vyšší je skóre PANSS, tím vyšší je pravděpodobnost vysazení. Jednoduchá longitudinální analýza by tedy pro tyto údaje nebyla vhodná.
Vícerozměrné nelineární modely růstu
Hierarchické lineární a nelineární modely růstu jsou oblíbené v mnoha oborech, například ve zdravotnictví, vzdělávání, sociálních vědách, inženýrství a biologii. Vícerozměrné lineární a nelineární modely růstu jsou zvláště užitečné v biologických vědách při studiu růstu volně žijících druhů, kde je růst popsán více měřeními, která jsou často korelovaná. Takové modely mají často mnoho parametrů a je obtížné je přizpůsobit klasickým metodám. Bayesovské odhady představují životaschopnou alternativu.
Výše uvedené modely lze fitovat pomocí bayesmh s použitím specifikací více rovnic, které nyní podporují náhodné efekty a latentní faktory. Rovnice mohou být všechny lineární, všechny nelineární nebo směs obou typů. Existují různé způsoby modelování závislosti mezi více výsledky (rovnicemi). Můžete například zahrnout stejné náhodné efekty, ale s různými koeficienty v různých rovnicích, nebo můžete zahrnout různé náhodné efekty, ale korelovat je prostřednictvím rozdělení prior.
Postupujme podle Jonese et al. (2005), kteří použili bayesovský bivariační model růstu ke studiu růstu mláďat rybáka černohlavého. Růst byl měřen pomocí délky křídel y1 a hmotnosti y2. Pro délku křídel se předpokládá lineární model růstu a pro hmotnost logistický model růstu.
kde d
is a fixed parameter, (Ui,Vi,Ci,Bi)∼N(μ,Σ)
,
a (ε1,ε2)∼N(0,Σ0)
.
Na úrovni jednotlivce (mláděte) jsou čtyři náhodné efekty: U
a V
jsou intercepce a míra růstu křídel. V rovnici pro y2
,
máme náhodné efekty B
a C
, které představují rychlost a maximální
hmotnost. Předpokládá se, že parametr umístění má tvar dC
, kde d
je konstanta. (U,V,C,B)
se řídí vícerozměrným normálním rozdělením s
nestrukturovaná kovariance. Chyby z obou rovnic se řídí
dvourozměrným normálním rozdělením.
Používáme fiktivní soubor dat simulovaný na základě popisu v Jones et al. (2005). Vhodíme dvourozměrný normální model s kovariancí chyb {Sigma0,m}. Čtyřem náhodným efektům je přiřazena vícerozměrná normální priorita s odpovídajícími parametry střední hodnoty a kovariance {Sigma,m}. Prioritním prostředkům je přiřazeno normální rozdělení se střední hodnotou 0 a rozptylem 100. Kovarianční matice mají přiřazeny inverzní Wishartovy priority. Parametru d je přiřazena exponenciální priorita se škálou 1. Pro kovarianční matice a blokové parametry používáme Gibbsovo vzorkování, abychom zvýšili efektivitu. Rovněž určujeme počáteční hodnoty, používáme menší velikost MCMC 2 500 a pro reprodukovatelnost určujeme semeno náhodného čísla.
. 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, |
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)) |
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 | |
Mezi chybovými členy existuje kladná korelace 0,21.
Vypočítáme také korelaci mezi rychlostí růstu křídel a maximální hmotností.
. 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 | |
Odhadovaná korelace je 0,73, což je vysoká hodnota. Měření délky křídla a hmotnosti jsou jednoznačně korelovaná a měla by být modelována společně.
Odkazy
Diggle, P. J. 1998. Dealing with missing values in longitudinal studies. In Recent Advances in the Statistical Analysis of Medical Data, ed. B. S. Everitt and G. Dunn, 203–228. London: Arnold.
Henderson, R., P. Diggle, and A. Dobson. 2000. Joint modeling of longitudinal measurements and event time data. Biostatistics 4: 465–480.
Jones, G., R. J. Keedwell, A. D. L. Noble, and D. I. Hedderley. 2005. Dating chicks: Calibration and discrimination in a nonlinear multivariate hierarchical growth model. Journal of Agricultural, Biological, and Environmental Statistics 10: 306–320.
Mortimore, P., P. Sammons, L. Stoll, D. Lewis, and R. Ecob. 1988. School Matters: The Junior Years. Somerset, UK: Open Books.