From 284a7250e49170ee6d2b01c36eec0f396eedfe29 Mon Sep 17 00:00:00 2001 From: Andrew Grant <45248830+aj-grant@users.noreply.github.com> Date: Mon, 5 Jun 2023 10:00:25 +1000 Subject: [PATCH] Add files via upload --- data_ex.csv | 101 +++++++++++++++++++++++++++++++++++++++++++ data_mv_ex.csv | 101 +++++++++++++++++++++++++++++++++++++++++++ mr_horse.R | 113 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 315 insertions(+) create mode 100644 data_ex.csv create mode 100644 data_mv_ex.csv create mode 100644 mr_horse.R diff --git a/data_ex.csv b/data_ex.csv new file mode 100644 index 0000000..5a025c4 --- /dev/null +++ b/data_ex.csv @@ -0,0 +1,101 @@ +"betaY","betaYse","betaX","betaXse" +0.0423815233241926,0.0114163796498198,0.0949684065740707,0.0113758593578169 +0.0102282756741403,0.0111041368755959,0.10767894710869,0.0110949878458482 +0.0154283404865539,0.0121008545535267,0.112576015578445,0.0121526178342121 +0.0912333826714715,0.0133885437926451,0.205906219217954,0.0133961027457949 +0.0105475565430919,0.0136215409986451,0.144814776313212,0.0136150831034631 +-0.00921523295697252,0.0122724772900909,-0.0974385603998507,0.0121827708928975 +0.0096102791240234,0.0122603850978267,0.119296677152144,0.0122618212409124 +0.012026560565703,0.0115746373870527,0.0872838491918191,0.0115439469206716 +-0.013842243512904,0.0120203799181066,-0.115891038331474,0.0119995287341082 +-0.0141066832146455,0.0135163349065031,-0.116873142646942,0.0135625283230341 +0.0279357216234037,0.0138318773696789,-0.0976034446254069,0.0138303817617427 +-0.0117748147644739,0.0116427458307175,0.118219082439831,0.0116010899173162 +-0.0301423955126884,0.0144621022743217,0.0466859443902186,0.0143146395797718 +-0.0128319237840364,0.0152938112905456,-0.164449902121106,0.0152777401870077 +0.025930525571679,0.013094268261008,0.173025575868611,0.0131332536273078 +0.00462705654178457,0.0146722364723349,-0.122667744156262,0.0146444183415762 +-0.00297523170518179,0.0129141298806994,0.118771164649553,0.0128785613654407 +0.00723378980735155,0.0113122987853519,0.062066399946671,0.0112269773279589 +0.0109850494169085,0.010823035495112,0.0799480948765829,0.0107129409462687 +0.00375968971468246,0.0111096819121189,0.125124351779511,0.0110502180294748 +0.0139411673873113,0.0109197318241436,0.102620636168443,0.0108544471849029 +-0.186877402705023,0.0128643241323319,0.0447031603118851,0.0129042491828048 +-0.013810139415223,0.0154127631312849,0.0784061333528651,0.0153742766367557 +0.0221733361217022,0.0119082445066603,0.141663563779083,0.0118083549856626 +0.182685032308923,0.0116034139716604,0.037832854413604,0.0116828437683794 +-0.0213064777732556,0.0147578162125581,-0.13140127252142,0.0146367853320548 +-0.011533146875483,0.0146797079874496,-0.121975474707107,0.0145116587433774 +-0.0243677812885191,0.0112056832048553,-0.115254831746395,0.0111202974257273 +-0.119241225594158,0.0116279884349559,-0.000740824187082355,0.0116032523234315 +-0.0164777822641256,0.0124583829288296,-0.115797063957398,0.0121990922468766 +-0.0158102190720918,0.0159035417872747,-0.0589031437558763,0.0159327141871427 +-0.0118598910074151,0.0146041283506151,-0.121834258411566,0.0145828413978447 +-0.0024206821500279,0.0108534164812643,-0.0732095330616358,0.0108402684770143 +-0.220434808834358,0.0118055811069642,-0.13850877426638,0.0118309220021828 +0.0424537552659161,0.0149811741861956,0.116408491949592,0.0149781136470833 +0.182818175190553,0.0118131692016912,0.12620841263996,0.011852762326126 +-0.00584646555851753,0.0141849661816113,-0.0887210684518239,0.0142226801971795 +0.00776448864482574,0.0121466380424745,0.127406165946569,0.0120523416758496 +0.0831064004011226,0.0109057357736715,-0.0289443074067376,0.0108793166373218 +-0.0053909984787343,0.0126622999479134,-0.0944657685314906,0.0126236171880516 +-0.0405769503788421,0.0141329493950779,-0.156840051353866,0.014117309154704 +0.00428566035366615,0.0108787917973687,0.108472716677728,0.0108718957792831 +-0.0144017396653374,0.0131461784945469,-0.103788492247166,0.0129916814043964 +0.00128860155614317,0.0126430599944252,-0.127543928723887,0.0125738589250248 +0.0212420565209482,0.0106514709328906,0.0852100833273098,0.0106486795506761 +-0.00826189968257333,0.0140794470699264,0.10108971775924,0.0139321296721437 +0.0119160529880304,0.0136748409043102,0.089720559617516,0.0135776846930382 +0.0245158746419179,0.015712981850263,0.120391917582693,0.0156311411286567 +0.189398106586775,0.0105975358139346,0.15361201638592,0.010586692354144 +-0.042626216158184,0.0153748570823988,-0.073211821096833,0.0152123778869796 +-0.0264954675775723,0.0131992817522359,-0.103869421151961,0.013041221635877 +-0.00792410746504859,0.0131457630057634,0.047115828251289,0.0131466870089349 +0.0349601269909582,0.014641775210839,0.0688808500564793,0.0146309042170802 +0.0150455974530028,0.0117448278380601,0.138721652313557,0.0116705722243316 +-0.0134340852513219,0.011833503498356,0.0893636557611689,0.0118054713616234 +0.00348125564853862,0.0111433256474996,0.0583776274207503,0.0111435804965972 +-0.010607185574668,0.0118893413565577,-0.0735954640608214,0.0117605502936075 +0.00399311458886166,0.0141754721725643,-0.104330225815754,0.0140654225561435 +-0.0952689091299737,0.0134360311897665,0.113131875361899,0.0134057266391175 +0.0107963206285331,0.010926468867701,-0.0905679868300182,0.0108792162981654 +0.00915047813266188,0.0113513129068159,0.0430589732867612,0.0113908025728297 +0.00288241299802842,0.0126243835007565,0.069171740147428,0.0125534998921918 +0.00660983593985391,0.0107593838455982,0.0329272186903996,0.0107083739961912 +-0.000759813075782525,0.0114539139659272,-0.105713030084821,0.0114975668662432 +0.00713214087591941,0.0110511423065109,0.119296146988136,0.011017467876 +0.0318610617336085,0.0116319825183277,0.130871155065549,0.0115619881437035 +-0.00877249197119308,0.0109009048659664,-0.0674621320391804,0.0108849644311397 +0.0218044859177851,0.0134239013350155,0.109282992918145,0.0132388426273149 +-0.00128215669182503,0.0124842703267286,-0.099595641917443,0.0124167187469893 +-0.0520825554150852,0.0149004424435908,-0.00229779737113445,0.0147979220767013 +0.0140078899759043,0.0130073229538798,0.107273849285835,0.0128582864362891 +0.0273991476685094,0.0129882830746506,0.168221551353969,0.0130630778028466 +0.0297749364952722,0.0150502306390699,0.149420799847288,0.014986569693246 +-0.0161599678259112,0.0106989793134091,-0.122908651139028,0.0106544669758475 +-0.177231295519656,0.0114873332026854,-0.124793399704655,0.011403929297861 +-0.0619036163140184,0.0127421923349701,0.0733093192709938,0.0126157019789692 +-0.00161546075898682,0.0116064810014865,-0.0420710729312974,0.011555446289398 +0.00164526353341824,0.0109949005886564,-0.103034486721794,0.0109452901031921 +-0.00790981379934308,0.0107969519029372,-0.149307212090104,0.010738151788737 +0.011318635966066,0.0132967305516419,-0.071483707686822,0.0132130591285397 +-0.0100693710057941,0.0147640662232915,-0.0587464175735657,0.0147462105573497 +0.00636620961490393,0.0106398285821091,0.0681283784380349,0.0106273833611186 +-0.0185649840401516,0.0143056451833536,0.0679096506976844,0.0142022663466599 +0.0213155041214599,0.013437777168558,0.0534884763967576,0.0135099826620856 +-0.0116939390310288,0.0125658963575775,-0.0386704641638245,0.0124777677531948 +0.00372266504434065,0.0132488404282495,-0.148855127761454,0.0132770328291238 +-0.177154262282308,0.0116952373444574,-0.18314254640764,0.0116977462246898 +-0.00617989880795895,0.0124523878432719,0.052341681578157,0.0123983527959119 +-0.0058695930922774,0.0132660696274781,-0.095784608789524,0.0131527557719403 +0.00200552391721693,0.0124508187865506,-0.123554893091923,0.0123337608697943 +-0.0161707430283726,0.0107881539174454,-0.0936973718407186,0.0107215752044414 +0.0916259169850288,0.0127764548926021,-0.0584146267233742,0.0127567408106748 +0.0135421835022622,0.0113005855182341,-0.094376665073897,0.0112703506319181 +0.033911895034426,0.0111044950931043,0.090063309683636,0.011027135337565 +0.00791291346555422,0.0112939680278009,0.0717367281685539,0.0112385834117796 +0.206744459425532,0.0149138227675741,-0.0803571499503058,0.0147578544226197 +-0.0290948612456052,0.0137393908295173,-0.0549248953115906,0.0136895052668477 +0.0112153285198079,0.011277636048503,0.0875362850789473,0.011269239769724 +-0.000302709817583401,0.0125831237355098,-0.11663628037531,0.0125122585758688 +0.00295359703167422,0.0115057677833743,0.079364724784708,0.0114410952812477 diff --git a/data_mv_ex.csv b/data_mv_ex.csv new file mode 100644 index 0000000..1139f78 --- /dev/null +++ b/data_mv_ex.csv @@ -0,0 +1,101 @@ +"betaY","betaYse","betaX1","betaX2","betaX1se","betaX2se" +0.00924627928474533,0.0119063568186078,-0.110502691469185,0.124825041107451,0.0112804934130151,0.0111997055151073 +-0.0173945540230192,0.011714930319213,-0.10777823155629,-0.103484188005007,0.0110269958512558,0.0109517939826113 +0.0132527215251317,0.0162187354464058,0.112880443712678,0.0622986309303554,0.0153255777423283,0.0152258174630911 +-0.025344150957234,0.0133937154976321,-0.0855982744075694,-0.151034834205626,0.0127584390244011,0.0126583324174071 +-0.0126974800276452,0.0128826034899661,-0.0929774129329275,0.0972461068973496,0.0122637522839707,0.0121785923819113 +0.0065477629938186,0.0120798411948023,0.0957425318321662,0.12594175996808,0.0115067388230372,0.0114215823951574 +0.0211795691760782,0.0157332375461551,0.150992217507014,0.0785481074768244,0.0149198045323391,0.0148281385450307 +0.0223148141378387,0.0135472354873698,0.0801772656296367,0.134437253692202,0.0129315731619758,0.0128334418654693 +0.0183383777480588,0.012498483682492,0.0746543269597766,0.0583614501063873,0.0117898990387492,0.0117105497592903 +-0.00892197504378791,0.011300064366088,0.106675096486378,-0.125004136707296,0.0107154156141269,0.0106375370124787 +0.0168336159657563,0.012726404522342,0.152197304969025,0.0750712930429479,0.0120700633979169,0.0120013502328115 +0.00851695506407064,0.0156722380603301,0.0845877979909607,-0.110964074789577,0.0149051139653154,0.0147989896951502 +-0.116558482092127,0.0168706619989911,-0.0765039218477974,-0.144560261616513,0.0160709454629387,0.0159508697519711 +0.0235888343609077,0.0119684029868034,0.111172942241765,0.076500478238649,0.0113715878349203,0.0112989422987928 +-0.00417791869406114,0.0142635468441325,-0.0687388886649015,-0.124619332852401,0.0135159073622116,0.0134147939006786 +0.0397286778602965,0.0112109129514062,0.158836114451988,0.0991729245185766,0.0106656965914741,0.0106064954130453 +0.185256655516104,0.0150671444559491,0.0994713922739805,0.120968641957408,0.0141713775912753,0.0140703899224917 +-0.00617082493566506,0.0124904624327792,-0.0705496262431792,-0.10058685340888,0.0118261001770124,0.0117402802195141 +-0.00290327183750775,0.0115151253458384,0.124566182101624,-0.114436878157649,0.0109897349633174,0.0109161296766524 +-0.00595594026547086,0.0130586759450308,0.105813068369461,0.0750408134364016,0.0124119442758889,0.0123309183639602 +-0.010338695930156,0.0123665359764308,-0.125371479138829,0.057820580408249,0.0117531079507543,0.0116826392580666 +0.000137193603372915,0.0126877035993403,0.0762054565417811,-0.0422637966378527,0.0121050939868039,0.0120250682672309 +0.00822093674920058,0.013702256850403,0.0759450418983443,0.121567923084164,0.0130222861457526,0.0129256392648185 +-0.0118797433265331,0.0136949384213514,-0.0772535502349687,-0.133130837914858,0.0130539035353462,0.0129549355038606 +-0.214565719121944,0.0129841347795901,-0.11352252077799,0.113661019245983,0.0123711341737896,0.0122858299233152 +-0.0163327057448909,0.0134405623460472,-0.125506111100045,-0.0545390768643776,0.0127257007838293,0.012648061635391 +-0.0587349364869039,0.0144906162801141,-0.119983411169013,-0.134754304555381,0.0137927324466016,0.0136949231283742 +-0.00305647366232925,0.0113128202236589,0.146496658167045,-0.060867101181095,0.0107160107087762,0.0106586623385506 +0.209386981092103,0.0164631763748755,-0.0291009760012114,-0.0737736148569505,0.0157324349317645,0.015621219400396 +0.0258619120883236,0.0139223003165797,0.0723851368874894,0.0887410855892699,0.0132249035799001,0.0131318319088013 +0.0135180217893672,0.015723726671021,0.0615790699594108,0.113998914453442,0.0149582467075776,0.0148490759705983 +-0.00218312629308151,0.01122773915475,0.110190041694364,0.0111212316378236,0.0106442131135291,0.0105821685530867 +0.101514819360623,0.011321348960681,0.019137559475108,0.0172040523576749,0.0107144199717922,0.0106407475846335 +-0.233486728104864,0.0129947062045211,0.0782392959859682,0.036550463210225,0.0123044159619659,0.0122235873434662 +0.00271877054129386,0.0119959051113301,0.148282264425503,-0.143126767451615,0.011414274025034,0.011336783392583 +-0.195111403036712,0.0119319525914922,0.0070493195146107,-0.245083754736829,0.0113624988231671,0.0112309908520139 +-0.025227898494799,0.0170139318326066,-0.0850389168741766,-0.0839004047454776,0.016231488013462,0.0161198451458229 +-0.0289348713504621,0.0157931644629006,-0.152647179032112,-0.116584839756741,0.0150074739722915,0.0149104954940924 +-0.00230572897860711,0.0136480453638626,0.0927793655391687,-0.0595800173813321,0.0130454769689702,0.0129595142797265 +0.0015159280578415,0.0112867303912831,0.0809327587989093,0.0595541438058678,0.0106800576698217,0.0106093071457293 +-0.00165093363413349,0.0154187818624756,0.0980558017971965,-0.112723910943571,0.0146489996812147,0.0145459731976137 +-0.0120752163764128,0.0122939825754899,-0.0726362126808637,-0.105881912466089,0.0116317735986321,0.0115465251677652 +0.106420799392933,0.015499625118458,0.0270455396872291,0.0146699701129579,0.0146606459088722,0.0145601030526261 +0.0112853679837976,0.0117904485939833,0.126673419135472,-0.0620668593384467,0.0111789937905827,0.011112843389064 +-0.0225964537486684,0.0135276493632579,-0.0901109924025123,-0.114525981958625,0.0127382235430446,0.0126465243342535 +-0.0240086616247194,0.0132679540499287,-0.129032972129104,0.0880004721092382,0.0126409676133144,0.0125608861114817 +-0.0133093008351743,0.0140659184131236,0.0424277429363551,-0.0829901562168664,0.0134761154939023,0.0133795562376961 +-0.0311257917579274,0.0134857300638035,-0.0759305225358139,-0.111196929703058,0.0128679711329713,0.0127741901037673 +-0.190866361387836,0.0156110637744762,-0.198276490251381,-0.0113000593276564,0.0149230124668666,0.0148463713241841 +0.023155423555758,0.0123678848681057,0.069301542718675,0.0952723752543362,0.0117394374261292,0.0116549265343189 +-0.00281833556285386,0.0115133474895871,0.130342189208603,-0.12761376263352,0.0110004537463985,0.010925182583482 +0.0211822719574756,0.0114426922003199,0.14897470298308,0.0743660634155276,0.0108482105707867,0.0107887302403816 +0.0208889749041394,0.0118556012269602,-0.0760076823561074,0.0674289106348845,0.0112333703870635,0.0111570973690151 +0.0175459195830187,0.0123626501123278,0.133782129563319,-0.110255448623361,0.0117778667180517,0.0117015125456101 +-0.0185937620211376,0.0143500541021751,-0.0459178767415023,0.104713266449019,0.0136209560633961,0.0135206500285943 +-0.027601544065693,0.0155654449647471,-0.115529945285843,-0.117295980301301,0.0149766367233942,0.014873172055095 +0.0308460038243798,0.0121186095593119,0.0720407261708892,0.108522390970013,0.011504707603407,0.0114197059632509 +0.0102661463544645,0.0113650292188988,0.097397705483819,0.105409164124851,0.0108700786258378,0.010793647920522 +0.00748477351550114,0.0115231641308421,-0.0453820511302895,0.160412838125997,0.0109532849874261,0.0108560965468113 +-0.00546184280559359,0.0130389489956177,0.0905839064062561,-0.0710236082888456,0.0123044781718425,0.012222296725185 +0.181814915401664,0.0114055060569615,0.128641740289087,0.179942323278139,0.0108680845924537,0.0107784052287884 +-0.00084437012480806,0.0148415992098785,-0.0867766267514798,0.134002211498378,0.0141642348386637,0.0140592726458394 +-0.00642182254245947,0.0115209251903345,-0.078416471229645,0.105458834296275,0.0108750823834614,0.0107955597572315 +0.0146131700741447,0.0118089199811473,0.115975070460788,-0.071180023653713,0.0111322865964181,0.0110630912820356 +0.0136445432189528,0.0122072331228785,-0.085543514230478,0.1413848915376,0.0116173751647726,0.0115263514356124 +0.000291426305649788,0.0112012042969935,-0.102350357573307,0.122666766294306,0.0106577705699607,0.0105799707254541 +0.00201578143247473,0.0120555913653548,-0.101592087854351,0.148918352105981,0.0114623626600799,0.0113729373072724 +0.00929393530724373,0.012271860006638,-0.0578703358165622,0.119558067297493,0.0116974324888642,0.0116074684605268 +0.113844023111097,0.0122611734772346,0.161231011099791,-0.0746340279802858,0.0115685726153573,0.0115064160685776 +-0.142476772207863,0.0134770736440159,-0.160087181627154,0.0512931066803448,0.0128484523778868,0.0127777683706093 +0.0192092343089671,0.0142324223684193,0.132486373120343,0.158466111257018,0.0135414142456502,0.0134424247163409 +-0.007061980543363,0.0114873103441751,-0.115678663314518,0.0847916690841225,0.0108681759786918,0.0107989496833311 +0.0477595897022624,0.0148160764108502,0.0912111456247244,0.194520777103869,0.0141210203484579,0.0140026961432043 +-0.0066331049001035,0.0152533244750828,-0.078516588768964,-0.112340095512658,0.0145964761571273,0.0144915147412935 +0.00582843436351111,0.0123579132385966,-0.140078127372405,0.128892830087002,0.011767234079057,0.0116885991630824 +-0.0133643402142309,0.0112792387239255,-0.0737167800264366,-0.048299992236294,0.0107300739936233,0.010659072643858 +-0.0104052138911115,0.0163162484964296,-0.0541684312626901,-0.0446267803482785,0.0154364774362311,0.0153308364931074 +0.0072670648768716,0.015570191210697,0.0240009972339798,-0.158357459839682,0.0149268723883846,0.0148076067322812 +-0.0284227712981167,0.0140305341096184,-0.137968533817533,0.0483338184520619,0.0133156975825473,0.0132364876802026 +0.0160321334439927,0.0126876568277983,-0.144197085483445,0.133802730343932,0.0120900805745745,0.0120090489585468 +-0.247657133855921,0.0166129781268358,-0.246665935272025,0.05367420721473,0.0159626936314603,0.0158888401463688 +0.04328294415116,0.0148351528688776,0.0667147668125716,0.113804172112073,0.0141515134525592,0.0140480331868618 +-0.0157297482013796,0.0126277680761548,0.135210942310231,-0.116728018625026,0.0120112777958016,0.0119323125264169 +-0.00715357971075442,0.0118250209246182,0.0880044667236179,-0.146678485769398,0.0112128281509394,0.0111231961771721 +-0.00437994069173586,0.0112495911928854,-0.141712436657852,0.132947503122865,0.0107233872457259,0.0106515936061097 +-0.00346502515358089,0.0112558903149624,-0.101845352583653,-0.0530970746450605,0.010646916193997,0.0105806538371843 +-0.276392555078126,0.0112658685634073,-0.206586023726764,0.00525031813214791,0.0107047831315706,0.0106706116310108 +-0.142958834844156,0.0114416268315227,-0.215060487622708,0.00672432652829504,0.0108678673429793,0.0108352198876355 +0.0204973490796488,0.0131173649025326,0.020209587636244,-0.00937925632149778,0.0124560628916557,0.0123705982091955 +0.00554830874344619,0.01584417255312,-0.118758450674226,0.0776151765079581,0.0149189801534118,0.0148216335919838 +-0.00500265633408868,0.0146531815655176,-0.108832405405855,-0.0363970805670929,0.0140430067376292,0.0139537914424523 +0.0332429960925117,0.0169572647608567,0.0445707939230509,-0.0839078949476788,0.0160194695663871,0.0159060336283486 +-0.00855173069355274,0.0120611694373485,0.0664039172675467,-0.128206276245623,0.0114580004867927,0.0113685214706437 +-0.0022224401162356,0.0157925017222495,0.100452386767699,-0.0643917396909967,0.0149440875616199,0.0148451581416919 +0.0385242272493397,0.0129165108779036,0.0567436497016171,0.101017728528115,0.0122380732200499,0.0121480692720824 +0.0144058211671587,0.0118806380511109,-0.107640862018775,0.119970549769862,0.0113144753260504,0.0112339728269136 +-0.0105890574338183,0.0125467862955318,0.123851093796906,-0.0736406719688915,0.0119762323874275,0.0119019730998755 +0.034260136823318,0.0158155958403819,0.071521961046372,0.118995071860443,0.0148465282822324,0.0147381752423602 +0.00152584141172025,0.0122165942211082,-0.0627629101872966,0.105491521225158,0.0115992622612221,0.0115131494456819 +-0.23617707540926,0.0142744117988266,-0.235136458486089,0.020938730247123,0.0136130181853412,0.0135592907977013 diff --git a/mr_horse.R b/mr_horse.R new file mode 100644 index 0000000..920933d --- /dev/null +++ b/mr_horse.R @@ -0,0 +1,113 @@ +library(R2jags) + +mr_horse_model = function() { + for (i in 1:N){ + by[i] ~ dnorm(mu[i], 1/(sy[i] * sy[i])) + mu[i] = theta * bx0[i] + alpha[i] + bx[i] ~ dnorm(bx0[i], 1 / (sx[i] * sx[i])) + + bx0[i] ~ dnorm(mx0 + (sqrt(vx0)/(tau * phi[i])) * rho[i] * alpha[i], 1 / ((1 - rho[i]^2) * vx0)) + rho[i] ~ dunif(-1, 1) + + alpha[i] ~ dnorm(0, 1 / (tau * tau * phi[i] * phi[i])) + phi[i] = a[i] / sqrt(b[i]) + a[i] ~ dnorm(0, 1);T(0, ) + b[i] ~ dgamma(0.5, 0.5) + } + + c ~ dnorm(0, 1);T(0, ) + d ~ dgamma(0.5, 0.5) + tau = c / sqrt(d) + + vx0 ~ dnorm(0, 1);T(0, ) + mx0 ~ dnorm(0, 1) + + theta ~ dunif(-10, 10) +} + +mvmr_horse_model = function() { + for (i in 1:N){ + by[i] ~ dnorm(mu[i], 1 / (sy[i] * sy[i])) + mu[i] = inprod(bx0[i, 1:K], theta) + alpha[i] + bx[i,1:K] ~ dmnorm(bx0[i,1:K], Tx[1:K, ((i-1)*K+1):(i*K)]) + + kappa[i] = (rho[i]^2 / (1 + K*rho[i]^2)) + bx0[i,1:K] ~ dmnorm(mx + sx0 * rho[i] * alpha[i] / (phi[i] * tau), A - kappa[i] * B) + rho[i] ~ dunif(-1, 1) + alpha[i] ~ dnorm(0, 1 / (tau * tau * phi[i] * phi[i])) + phi[i] = a[i] / sqrt(b[i]) + a[i] ~ dnorm(0, 1);T(0, ) + b[i] ~ dgamma(0.5, 0.5) + } + + c ~ dnorm(0, 1);T(0, ) + d ~ dgamma(0.5, 0.5) + tau = c / sqrt(d) + + mx ~ dmnorm(rep(0, K), R[,]) + + for (k in 1:K){ + vx0[k] ~ dnorm(0, 1);T(0, ) + sx0[k] = sqrt(vx0[k]) + theta[k] ~ dunif(-10, 10) + for (j in 1:K){ + A[j, k] = ifelse(j==k, 1/vx0[j], 0) + B[j, k] = 1 / (sx0[j] * sx0[k]) + } + } +} + +mr_horse = function(D, no_ini = 3, variable.names = "theta", n.iter = 10000, n.burnin = 10000){ + if("theta" %in% variable.names){ + variable.names = variable.names + } else{ + variable.names = c("theta", variable.names) + } + jags_fit = jags(data = list(by = D$betaY, bx = D$betaX, sy = D$betaYse, sx = D$betaXse, N = length(D$betaY)), + parameters.to.save = variable.names, + n.chains = no_ini, + n.iter = n.burnin + n.iter, + n.burnin = n.burnin, + model.file = mr_horse_model) + mr.coda = as.mcmc(jags_fit) + mr_estimate = data.frame("Estimate" = round(unname(summary(mr.coda[, "theta"])$statistics[1]), 3), + "SD" = round(unname(summary(mr.coda[, "theta"])$statistics[2]), 3), + "2.5% quantile" = round(unname(summary(mr.coda[, "theta"])$quantiles[1]), 3), + "97.5% quantile" = round(unname(summary(mr.coda[, "theta"])$quantiles[5]), 3), + "Rhat" = round(unname(gelman.diag(mr.coda)$psrf[1]), 3)) + names(mr_estimate) = c("Estimate", "SD", "2.5% quantile", "97.5% quantile", "Rhat") + return(list("MR_Estimate" = mr_estimate, "MR_Coda" = mr.coda)) +} + +mvmr_horse = function(D, no_ini = 3, variable.names = "theta", n.iter = 10000, n.burnin = 10000){ + if("theta" %in% variable.names){ + variable.names = variable.names + } else{ + variable.names = c("theta", variable.names) + } + + p = dim(D)[1] + K = sum(sapply(1:dim(D)[2], function(j){substr(names(D)[j], 1, 5)=="betaX"}))/2 + + Bx = D[, sprintf("betaX%i", 1:K)] + Sx = D[, sprintf("betaX%ise", 1:K)] + Tx = matrix(nrow = K, ncol = p*K) + for (j in 1:p){ + Tx[, ((j-1)*K+1):(j*K)] = diag(1 / Sx[j, ]^2) + } + jags_fit = jags(data = list(by = D$betaY, bx = Bx, sy = D$betaYse, Tx = Tx, N = p, K = K, R = diag(K)), + parameters.to.save = variable.names, + n.chains = no_ini, + n.iter = n.burnin + n.iter, + n.burnin = n.burnin, + model.file = mvmr_horse_model) + mr.coda = as.mcmc(jags_fit) + mr_estimate = data.frame("Parameter" = sprintf("theta[%i]", 1:K), + "Estimate" = round(unname(summary(mr.coda)$statistics[sprintf("theta[%i]", 1:K), 1]), 3), + "SD" = round(unname(summary(mr.coda)$statistics[sprintf("theta[%i]", 1:K), 2]), 3), + "2.5% quantile" = round(unname(summary(mr.coda)$quantiles[sprintf("theta[%i]", 1:K), 1]), 3), + "97.5% quantile" = round(unname(summary(mr.coda)$quantiles[sprintf("theta[%i]", 1:K), 5]), 3), + "Rhat" = round(unname(gelman.diag(mr.coda)$psrf[sprintf("theta[%i]", 1:K), 1]), 3)) + names(mr_estimate) = c("Parameter", "Estimate", "SD", "2.5% quantile", "97.5% quantile", "Rhat") + return(list("MR_Estimate" = mr_estimate, "MR_Coda" = mr.coda)) +}