using StatisticalRethinking
using Turing
Turing.setadbackend(:reverse_diff)
d = CSV.read(joinpath(dirname(Base.pathof(StatisticalRethinking)), "..", "data",
"reedfrogs.csv"), delim=';')
size(d) # Should be 48x5(48, 5)Set number of tanks
d[:tank] = 1:size(d,1)1:48Thanks to Kai Xu!
@model m12_2(density, tank, surv) = beginSeparate priors on α and σ for each tank
σ ~ Truncated(Cauchy(0, 1), 0, Inf)
α ~ Normal(0, 1)Number of unique tanks in the data set
N_tank = length(tank)vector for the priors for each tank
a_tank = Vector{Real}(undef, N_tank)For each tank [1,..,48] set a prior. Note the [] around Normal().
a_tank ~ [Normal(α, σ)]Observation
logitp = [a_tank[tank[i]] for i = 1:N_tank]
surv ~ VecBinomialLogit(density, logitp)
end
posterior = sample(m12_2(Vector{Int64}(d[:density]), Vector{Int64}(d[:tank]),
Vector{Int64}(d[:surv])), Turing.NUTS(4000, 1000, 0.8))
describe(posterior) Mean SD Naive SE MCSE ESS
σ 1.6165979235 0.254350155 0.0040216291 0.0056943516 1995.14955
α 1.2953176604 0.246773278 0.0039018281 0.0042788414 3326.16566atank[33] 3.1850173180 0.768681132 0.0121539159 0.0130009524 3495.76401 atank[2] 3.0295132611 1.097786749 0.0173575326 0.0255811814 1841.59774 atank[41] -1.8040414452 0.488303695 0.0077207593 0.0051973681 4000.00000 atank[44] -0.3348510394 0.346054656 0.0054716045 0.0046467452 4000.00000 atank[40] 2.3463288839 0.573923956 0.0090745345 0.0101900002 3172.19822 atank[42] -0.5694094170 0.358234605 0.0056641864 0.0046935532 4000.00000 atank[11] 1.0007489783 0.663737508 0.0104946115 0.0117422973 3195.11562 atank[16] 2.1088413933 0.872132839 0.0137896310 0.0168742768 2671.25251 atank[46] -0.5794564306 0.362646534 0.0057339452 0.0050212654 4000.00000 atank[8] 2.0875919106 0.883745348 0.0139732409 0.0162842279 2945.23491 atank[14] 0.1964596710 0.617296433 0.0097603136 0.0075173911 4000.00000 atank[47] 2.0547681207 0.509187915 0.0080509678 0.0071101438 4000.00000 atank[43] -0.4487646777 0.339582585 0.0053692721 0.0049577724 4000.00000 atank[24] 1.6974144465 0.541970319 0.0085693032 0.0061834892 4000.00000 atank[34] 2.6936725440 0.628597382 0.0099389973 0.0087708320 4000.00000 atank[9] -0.1874117115 0.633287204 0.0100131499 0.0079473202 4000.00000 atank[28] -0.4681636985 0.416090181 0.0065789634 0.0057151179 4000.00000 atank[31] -0.6356923902 0.433795689 0.0068589121 0.0041842682 4000.00000 atank[29] 0.1624613393 0.401316555 0.0063453719 0.0046974312 4000.00000 atank[18] 2.3913830070 0.671420136 0.0106160845 0.0111601737 3619.48527 atank[1] 2.1144841871 0.873765594 0.0138154471 0.0134103108 4000.00000 atank[38] 3.8893717797 0.978631940 0.0154735296 0.0231402831 1788.55144 atank[37] 2.0558293650 0.514694473 0.0081380342 0.0071845468 4000.00000 atank[30] 1.4416152688 0.479794721 0.0075862206 0.0059017454 4000.00000 atank[35] 2.6925880675 0.651873334 0.0103070224 0.0085287006 4000.00000 atank[20] 3.6134226610 0.970193501 0.0153401062 0.0238161118 1659.49138 atank[15] 2.1272566988 0.876804950 0.0138635035 0.0199621939 1929.25417 atank[26] 0.1630585993 0.405131249 0.0064056875 0.0045865339 4000.00000 atank[45] 0.5823296893 0.349822119 0.0055311734 0.0046059843 4000.00000 atank[21] 2.3968425342 0.661596555 0.0104607600 0.0104431077 4000.00000 atank[48] 0.0030622025 0.331573461 0.0052426367 0.0038034443 4000.00000 atank[10] 2.1097053742 0.872430009 0.0137943296 0.0190694321 2093.07926 atank[3] 0.9966593638 0.662195640 0.0104702324 0.0082308854 4000.00000 atank[7] 3.0314959227 1.071425974 0.0169407321 0.0228591199 2196.87491 atank[6] 2.1263090050 0.875040776 0.0138356095 0.0138610403 3985.33589 atank[25] -1.0097610188 0.451706567 0.0071421079 0.0056360736 4000.00000 atank[32] -0.3105658507 0.393426518 0.0062206195 0.0047667754 4000.00000 atank[5] 2.1067240289 0.847313335 0.0133972002 0.0174789494 2349.94357 atank[13] 0.9934721312 0.673907169 0.0106554079 0.0087754899 4000.00000 atank[19] 2.0027362510 0.581472256 0.0091938836 0.0085476353 4000.00000 atank[12] 0.5757662524 0.635809034 0.0100530235 0.0078502186 4000.00000 atank[4] 3.0344422538 1.075560077 0.0170060980 0.0278349168 1493.10205 atank[17] 2.8901636458 0.786143265 0.0124300164 0.0154722829 2581.63357 atank[27] -1.4285276117 0.504504387 0.0079769148 0.0047850541 4000.00000 atank[22] 2.3972696703 0.660728612 0.0104470366 0.0092144017 4000.00000 atank[23] 2.3939166498 0.653360543 0.0103305372 0.0085971078 4000.00000 atank[36] 2.0544595646 0.536312030 0.0084798378 0.0062225461 4000.00000 atank[39] 2.6940908508 0.641144454 0.0101373839 0.0089230656 4000.00000
#Rethinking mean sd 5.5% 94.5% n_eff Rhata 1.30 0.25 0.90 1.70 11662 1 sigma 1.62 0.22 1.30 1.99 6556 1 atank[1] 2.12 0.88 0.84 3.60 16091 1 atank[2] 3.05 1.10 1.52 4.92 10962 1 atank[3] 1.00 0.66 -0.02 2.10 18175 1 atank[4] 3.05 1.11 1.47 4.96 10181 1 atank[5] 2.13 0.87 0.85 3.62 13720 1 atank[6] 2.12 0.86 0.86 3.59 11628 1 atank[7] 3.07 1.13 1.47 5.03 10315 1 atank[8] 2.13 0.87 0.86 3.60 13754 1 atank[9] -0.18 0.60 -1.14 0.76 18218 1 atank[10] 2.11 0.86 0.83 3.58 15121 1 atank[11] 1.00 0.67 -0.04 2.09 17390 1 atank[12] 0.58 0.62 -0.41 1.60 17209 1 atank[13] 0.99 0.66 -0.04 2.09 15225 1 atank[14] 0.19 0.62 -0.79 1.20 18293 1 atank[15] 2.13 0.89 0.83 3.63 12445 1 atank[16] 2.11 0.87 0.87 3.61 12385 1 atank[17] 2.89 0.80 1.76 4.29 12583 1 atank[18] 2.38 0.66 1.43 3.49 14437 1 atank[19] 2.00 0.58 1.12 2.99 13959 1 atank[20] 3.67 1.03 2.20 5.44 10629 1 atank[21] 2.38 0.65 1.42 3.47 15309 1 atank[22] 2.39 0.66 1.42 3.49 13614 1 atank[23] 2.40 0.67 1.41 3.53 11868 1 atank[24] 1.69 0.52 0.90 2.55 18468 1 atank[25] -1.00 0.45 -1.74 -0.30 18153 1 atank[26] 0.16 0.40 -0.47 0.81 21895 1 atank[27] -1.44 0.50 -2.28 -0.69 16718 1 atank[28] -0.47 0.41 -1.15 0.17 20160 1 atank[29] 0.15 0.40 -0.48 0.80 19401 1 atank[30] 1.44 0.49 0.70 2.24 15407 1 atank[31] -0.64 0.42 -1.33 -0.01 15356 1 atank[32] -0.31 0.40 -0.95 0.32 19130 1 atank[33] 3.18 0.78 2.06 4.55 10894 1 atank[34] 2.70 0.66 1.75 3.84 13573 1 atank[35] 2.69 0.64 1.74 3.78 13876 1 atank[36] 2.06 0.53 1.26 2.92 16329 1 atank[37] 2.06 0.51 1.29 2.91 14672 1 atank[38] 3.88 0.97 2.52 5.57 9349 1 atank[39] 2.70 0.64 1.77 3.78 13444 1 atank[40] 2.34 0.56 1.49 3.31 14966 1 atank[41] -1.82 0.48 -2.61 -1.10 14214 1 atank[42] -0.58 0.36 -1.16 -0.02 17203 1 atank[43] -0.46 0.35 -1.02 0.08 17762 1 atank[44] -0.34 0.34 -0.90 0.20 16740 1 atank[45] 0.58 0.35 0.02 1.14 18946 1 atank[46] -0.57 0.34 -1.13 -0.03 19761 1 atank[47] 2.05 0.51 1.30 2.90 15122 1 atank[48] 0.00 0.33 -0.53 0.53 18236 1
This page was generated using Literate.jl.