import CSV
import Random
using DataFrames
using TuringModels: project_root
Random.seed!(1)
path = joinpath(project_root, "data", "reedfrogs.csv")
df = CSV.read(path, DataFrame; delim=';')
df.tank = 1:nrow(df)
df
48×6 DataFrame
Row │ density pred size surv propsurv tank
│ Int64 String7 String7 Int64 Float64 Int64
─────┼───────────────────────────────────────────────────
1 │ 10 no big 9 0.9 1
2 │ 10 no big 10 1.0 2
3 │ 10 no big 7 0.7 3
4 │ 10 no big 10 1.0 4
5 │ 10 no small 9 0.9 5
6 │ 10 no small 9 0.9 6
7 │ 10 no small 10 1.0 7
8 │ 10 no small 9 0.9 8
9 │ 10 pred big 4 0.4 9
10 │ 10 pred big 9 0.9 10
11 │ 10 pred big 7 0.7 11
12 │ 10 pred big 6 0.6 12
13 │ 10 pred small 7 0.7 13
14 │ 10 pred small 5 0.5 14
15 │ 10 pred small 9 0.9 15
16 │ 10 pred small 9 0.9 16
17 │ 25 no big 24 0.96 17
18 │ 25 no big 23 0.92 18
19 │ 25 no big 22 0.88 19
20 │ 25 no big 25 1.0 20
21 │ 25 no small 23 0.92 21
22 │ 25 no small 23 0.92 22
23 │ 25 no small 23 0.92 23
24 │ 25 no small 21 0.84 24
25 │ 25 pred big 6 0.24 25
26 │ 25 pred big 13 0.52 26
27 │ 25 pred big 4 0.16 27
28 │ 25 pred big 9 0.36 28
29 │ 25 pred small 13 0.52 29
30 │ 25 pred small 20 0.8 30
31 │ 25 pred small 8 0.32 31
32 │ 25 pred small 10 0.4 32
33 │ 35 no big 34 0.971429 33
34 │ 35 no big 33 0.942857 34
35 │ 35 no big 33 0.942857 35
36 │ 35 no big 31 0.885714 36
37 │ 35 no small 31 0.885714 37
38 │ 35 no small 35 1.0 38
39 │ 35 no small 33 0.942857 39
40 │ 35 no small 32 0.914286 40
41 │ 35 pred big 4 0.114286 41
42 │ 35 pred big 12 0.342857 42
43 │ 35 pred big 13 0.371429 43
44 │ 35 pred big 14 0.4 44
45 │ 35 pred small 22 0.628571 45
46 │ 35 pred small 12 0.342857 46
47 │ 35 pred small 31 0.885714 47
48 │ 35 pred small 17 0.485714 48
using Turing
# Thanks to Kai Xu!
@model function m12_2(density, tank, surv)
σ ~ truncated(Cauchy(0, 1), 0, Inf)
α ~ Normal(0, 1)
N_tank = length(tank)
α_tank ~ filldist(Normal(α, σ), N_tank)
logitp = α_tank[tank]
surv .~ BinomialLogit.(density, logitp)
end;
chns = sample(
m12_2(df.density, df.tank, df.surv),
NUTS(),
1000
)
Chains MCMC chain (1000×62×1 Array{Float64, 3}):
Iterations = 501:1:1500
Number of chains = 1
Samples per chain = 1000
Wall duration = 12.85 seconds
Compute duration = 12.85 seconds
parameters = σ, α, α_tank[1], α_tank[2], α_tank[3], α_tank[4], α_tank[5], α_tank[6], α_tank[7], α_tank[8], α_tank[9], α_tank[10], α_tank[11], α_tank[12], α_tank[13], α_tank[14], α_tank[15], α_tank[16], α_tank[17], α_tank[18], α_tank[19], α_tank[20], α_tank[21], α_tank[22], α_tank[23], α_tank[24], α_tank[25], α_tank[26], α_tank[27], α_tank[28], α_tank[29], α_tank[30], α_tank[31], α_tank[32], α_tank[33], α_tank[34], α_tank[35], α_tank[36], α_tank[37], α_tank[38], α_tank[39], α_tank[40], α_tank[41], α_tank[42], α_tank[43], α_tank[44], α_tank[45], α_tank[46], α_tank[47], α_tank[48]
internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size
Summary Statistics
parameters mean std naive_se mcse ess rhat ess_per_sec
Symbol Float64 Float64 Float64 Float64 Float64 Float64 Float64
σ 1.6122 0.2198 0.0069 0.0080 760.6539 1.0043 59.1995
α 1.2890 0.2449 0.0077 0.0090 820.5486 1.0013 63.8609
α_tank[1] 2.1374 0.9389 0.0297 0.0205 1378.4423 0.9993 107.2801
α_tank[2] 3.0100 1.0832 0.0343 0.0356 1180.7350 1.0024 91.8931
α_tank[3] 0.9687 0.6331 0.0200 0.0126 2346.4011 0.9990 182.6135
α_tank[4] 3.0852 1.1295 0.0357 0.0357 1012.3046 1.0014 78.7847
α_tank[5] 2.1267 0.9077 0.0287 0.0219 1727.1441 0.9997 134.4186
α_tank[6] 2.0958 0.8283 0.0262 0.0203 1813.2894 0.9990 141.1230
α_tank[7] 3.0384 1.0697 0.0338 0.0310 1094.9079 0.9993 85.2135
α_tank[8] 2.1301 0.9136 0.0289 0.0251 1545.7918 1.0006 120.3044
α_tank[9] -0.1926 0.6081 0.0192 0.0212 871.7524 0.9991 67.8459
α_tank[10] 2.1004 0.8153 0.0258 0.0225 1839.2644 0.9991 143.1446
α_tank[11] 0.9863 0.6973 0.0221 0.0213 1577.5891 1.0001 122.7791
α_tank[12] 0.5829 0.6679 0.0211 0.0150 2273.6036 1.0000 176.9479
α_tank[13] 0.9690 0.6507 0.0206 0.0175 1714.3621 1.0012 133.4238
α_tank[14] 0.1927 0.6280 0.0199 0.0119 2112.1485 0.9990 164.3823
α_tank[15] 2.1279 0.8835 0.0279 0.0214 1688.0641 0.9999 131.3771
α_tank[16] 2.1133 0.8390 0.0265 0.0204 1282.8151 0.9991 99.8377
α_tank[17] 2.8845 0.7727 0.0244 0.0163 1758.7494 0.9990 136.8783
α_tank[18] 2.3677 0.6768 0.0214 0.0181 1219.9761 0.9992 94.9472
α_tank[19] 1.9789 0.5726 0.0181 0.0139 2006.3134 0.9993 156.1455
α_tank[20] 3.6485 1.0348 0.0327 0.0299 1414.4293 1.0017 110.0809
α_tank[21] 2.3915 0.6787 0.0215 0.0199 1499.0173 0.9996 116.6641
α_tank[22] 2.3652 0.6218 0.0197 0.0168 1497.3989 0.9992 116.5382
α_tank[23] 2.3783 0.6646 0.0210 0.0161 1757.3910 1.0002 136.7726
α_tank[24] 1.6842 0.5271 0.0167 0.0103 2530.7961 0.9997 196.9644
α_tank[25] -0.9978 0.4650 0.0147 0.0094 1702.3765 0.9999 132.4910
α_tank[26] 0.1576 0.4060 0.0128 0.0077 1864.6188 0.9991 145.1178
α_tank[27] -1.4448 0.4930 0.0156 0.0119 1287.7446 0.9997 100.2214
α_tank[28] -0.4783 0.3928 0.0124 0.0109 1690.5976 0.9990 131.5743
α_tank[29] 0.1558 0.3858 0.0122 0.0082 1758.7905 0.9996 136.8815
α_tank[30] 1.4399 0.4855 0.0154 0.0142 1447.7423 0.9993 112.6735
α_tank[31] -0.6438 0.3961 0.0125 0.0089 1986.9955 1.0004 154.6420
α_tank[32] -0.3030 0.3904 0.0123 0.0087 2404.2467 0.9990 187.1155
α_tank[33] 3.1665 0.7435 0.0235 0.0191 2469.8098 0.9990 192.2181
α_tank[34] 2.6877 0.6237 0.0197 0.0159 1845.9603 1.0025 143.6657
α_tank[35] 2.6908 0.6171 0.0195 0.0130 1505.5490 0.9997 117.1725
α_tank[36] 2.0563 0.5311 0.0168 0.0106 2478.8011 0.9990 192.9178
α_tank[37] 2.0732 0.5022 0.0159 0.0121 1810.3625 0.9990 140.8952
α_tank[38] 3.8654 0.9712 0.0307 0.0267 1478.5528 1.0048 115.0714
α_tank[39] 2.7100 0.6089 0.0193 0.0171 1498.3252 1.0016 116.6103
α_tank[40] 2.3138 0.5041 0.0159 0.0088 2623.4033 0.9990 204.1718
α_tank[41] -1.8144 0.4683 0.0148 0.0119 2102.8820 1.0008 163.6611
α_tank[42] -0.5827 0.3288 0.0104 0.0072 2200.8701 1.0008 171.2873
α_tank[43] -0.4574 0.3464 0.0110 0.0075 2108.7538 1.0007 164.1181
α_tank[44] -0.3386 0.3565 0.0113 0.0084 1567.3859 0.9990 121.9850
α_tank[45] 0.5821 0.3525 0.0111 0.0067 2762.9992 0.9990 215.0361
α_tank[46] -0.5720 0.3342 0.0106 0.0060 2353.1916 0.9990 183.1420
α_tank[47] 2.0400 0.5069 0.0160 0.0098 2448.9585 0.9990 190.5953
α_tank[48] 0.0005 0.3217 0.0102 0.0086 2234.2914 0.9991 173.8883
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
σ 1.2406 1.4578 1.5905 1.7425 2.1165
α 0.8200 1.1291 1.2895 1.4499 1.7819
α_tank[1] 0.5523 1.4632 2.0607 2.6956 4.1606
α_tank[2] 1.1175 2.2856 2.9054 3.5978 5.4404
α_tank[3] -0.2197 0.5122 0.9481 1.3899 2.2986
α_tank[4] 1.2100 2.2787 2.9453 3.8028 5.5958
α_tank[5] 0.6082 1.4827 2.0319 2.6388 4.2060
α_tank[6] 0.6248 1.5010 2.0382 2.6051 3.9449
α_tank[7] 1.1976 2.2528 2.9491 3.7046 5.3124
α_tank[8] 0.5727 1.4707 2.0567 2.6895 4.1193
α_tank[9] -1.4907 -0.5618 -0.1760 0.2022 0.9445
α_tank[10] 0.6549 1.5446 2.0091 2.6149 3.8604
α_tank[11] -0.3294 0.5114 0.9596 1.4190 2.4334
α_tank[12] -0.6942 0.1728 0.5588 1.0142 1.9200
α_tank[13] -0.1841 0.5314 0.9396 1.3947 2.4027
α_tank[14] -1.0156 -0.2437 0.1660 0.6097 1.5269
α_tank[15] 0.5590 1.4669 2.0768 2.7023 3.9519
α_tank[16] 0.6655 1.5537 2.0207 2.6575 3.9569
α_tank[17] 1.5438 2.3333 2.8411 3.3784 4.5548
α_tank[18] 1.2400 1.8657 2.3136 2.8092 3.8092
α_tank[19] 0.8910 1.6089 1.9257 2.3192 3.1897
α_tank[20] 1.9446 2.8788 3.5636 4.2666 6.0463
α_tank[21] 1.1053 1.9371 2.3424 2.7964 3.8878
α_tank[22] 1.2825 1.9354 2.3139 2.7652 3.7217
α_tank[23] 1.2354 1.9199 2.3363 2.8059 3.8189
α_tank[24] 0.7211 1.3206 1.6708 2.0142 2.8276
α_tank[25] -1.8783 -1.3179 -0.9882 -0.6865 -0.1090
α_tank[26] -0.6593 -0.1051 0.1574 0.4247 0.9860
α_tank[27] -2.4864 -1.7545 -1.4130 -1.1155 -0.5388
α_tank[28] -1.2546 -0.7483 -0.4663 -0.2040 0.3074
α_tank[29] -0.5945 -0.1068 0.1583 0.4154 0.9220
α_tank[30] 0.5658 1.1026 1.4144 1.7472 2.4485
α_tank[31] -1.4702 -0.9045 -0.6408 -0.3754 0.1192
α_tank[32] -1.1111 -0.5678 -0.3081 -0.0270 0.4390
α_tank[33] 1.8884 2.6507 3.1097 3.6334 4.8023
α_tank[34] 1.6605 2.2419 2.6371 3.0689 4.0367
α_tank[35] 1.6524 2.2591 2.6456 3.0495 3.9632
α_tank[36] 1.1537 1.6782 2.0249 2.4004 3.2031
α_tank[37] 1.1543 1.7108 2.0605 2.4145 3.1263
α_tank[38] 2.2486 3.1677 3.7805 4.4203 5.9944
α_tank[39] 1.6538 2.2856 2.6435 3.0914 4.0489
α_tank[40] 1.4077 1.9575 2.2923 2.6403 3.3486
α_tank[41] -2.8395 -2.0888 -1.7962 -1.4999 -0.9712
α_tank[42] -1.2646 -0.7923 -0.5911 -0.3547 0.0455
α_tank[43] -1.1654 -0.6821 -0.4571 -0.2306 0.2268
α_tank[44] -1.0441 -0.5784 -0.3317 -0.0797 0.2828
α_tank[45] -0.0804 0.3340 0.5867 0.8078 1.2674
α_tank[46] -1.2332 -0.7967 -0.5660 -0.3454 0.0880
α_tank[47] 1.1439 1.6989 2.0093 2.3306 3.1101
α_tank[48] -0.6311 -0.2095 0.0009 0.2180 0.6099
using StatsPlots
StatsPlots.plot(chns)
"/home/runner/work/TuringModels.jl/TuringModels.jl/__site/assets/models/multilevel-reedfrogs/code/output/chns.svg"
m122rethinking = "
mean sd 5.5% 94.5% n_eff Rhat
a 1.30 0.25 0.90 1.70 11662 1
sigma 1.62 0.22 1.30 1.99 6556 1
a_tank[1] 2.12 0.88 0.84 3.60 16091 1
a_tank[2] 3.05 1.10 1.52 4.92 10962 1
a_tank[3] 1.00 0.66 -0.02 2.10 18175 1
a_tank[4] 3.05 1.11 1.47 4.96 10181 1
a_tank[5] 2.13 0.87 0.85 3.62 13720 1
a_tank[6] 2.12 0.86 0.86 3.59 11628 1
a_tank[7] 3.07 1.13 1.47 5.03 10315 1
a_tank[8] 2.13 0.87 0.86 3.60 13754 1
a_tank[9] -0.18 0.60 -1.14 0.76 18218 1
a_tank[10] 2.11 0.86 0.83 3.58 15121 1
a_tank[11] 1.00 0.67 -0.04 2.09 17390 1
a_tank[12] 0.58 0.62 -0.41 1.60 17209 1
a_tank[13] 0.99 0.66 -0.04 2.09 15225 1
a_tank[14] 0.19 0.62 -0.79 1.20 18293 1
a_tank[15] 2.13 0.89 0.83 3.63 12445 1
a_tank[16] 2.11 0.87 0.87 3.61 12385 1
a_tank[17] 2.89 0.80 1.76 4.29 12583 1
a_tank[18] 2.38 0.66 1.43 3.49 14437 1
a_tank[19] 2.00 0.58 1.12 2.99 13959 1
a_tank[20] 3.67 1.03 2.20 5.44 10629 1
a_tank[21] 2.38 0.65 1.42 3.47 15309 1
a_tank[22] 2.39 0.66 1.42 3.49 13614 1
a_tank[23] 2.40 0.67 1.41 3.53 11868 1
a_tank[24] 1.69 0.52 0.90 2.55 18468 1
a_tank[25] -1.00 0.45 -1.74 -0.30 18153 1
a_tank[26] 0.16 0.40 -0.47 0.81 21895 1
a_tank[27] -1.44 0.50 -2.28 -0.69 16718 1
a_tank[28] -0.47 0.41 -1.15 0.17 20160 1
a_tank[29] 0.15 0.40 -0.48 0.80 19401 1
a_tank[30] 1.44 0.49 0.70 2.24 15407 1
a_tank[31] -0.64 0.42 -1.33 -0.01 15356 1
a_tank[32] -0.31 0.40 -0.95 0.32 19130 1
a_tank[33] 3.18 0.78 2.06 4.55 10894 1
a_tank[34] 2.70 0.66 1.75 3.84 13573 1
a_tank[35] 2.69 0.64 1.74 3.78 13876 1
a_tank[36] 2.06 0.53 1.26 2.92 16329 1
a_tank[37] 2.06 0.51 1.29 2.91 14672 1
a_tank[38] 3.88 0.97 2.52 5.57 9349 1
a_tank[39] 2.70 0.64 1.77 3.78 13444 1
a_tank[40] 2.34 0.56 1.49 3.31 14966 1
a_tank[41] -1.82 0.48 -2.61 -1.10 14214 1
a_tank[42] -0.58 0.36 -1.16 -0.02 17203 1
a_tank[43] -0.46 0.35 -1.02 0.08 17762 1
a_tank[44] -0.34 0.34 -0.90 0.20 16740 1
a_tank[45] 0.58 0.35 0.02 1.14 18946 1
a_tank[46] -0.57 0.34 -1.13 -0.03 19761 1
a_tank[47] 2.05 0.51 1.30 2.90 15122 1
a_tank[48] 0.00 0.33 -0.53 0.53 18236 1
";