TuringModels

Varying intercepts Reedfrogs

On page 402 of Edition 2, this model is defined as

SiBinomial(Ni,pi)logit(pi)=αTANK[i]αTANK[i]Normal(0,1.5) \begin{aligned} S_i &\sim \text{Binomial}(N_i, p_i) \\ \text{logit}(p_i) &= \alpha_\text{TANK[i]} \\ \alpha_\text{TANK[i]} &\sim \text{Normal}(0, 1.5) \end{aligned}
  1. Data
  2. Model
  3. Output
  4. Original output (Edition 1)

Data

import CSV
import Random

using DataFrames
using TuringModels

Random.seed!(1)

data_path = joinpath(TuringModels.project_root, "data", "reedfrogs.csv")
df = CSV.read(data_path, DataFrame; delim=';');
df.tank_index = 1:nrow(df)
df
48×6 DataFrame
 Row │ density  pred     size     surv   propsurv  tank_index
     │ 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

Model

using Turing
using StatsFuns: logistic

@model function reedfrogs(Nᵢ, i, Sᵢ)
    αₜₐₙₖ ~ filldist(Normal(0, 1.5), length(i))
    pᵢ = logistic.(αₜₐₙₖ[i])
    Sᵢ .~ Binomial.(Nᵢ, pᵢ)
end;

Output

n = nrow(df)
model = reedfrogs(df.density, df.tank_index, df.surv)
chns = sample(model, NUTS(), 1000)
Chains MCMC chain (1000×60×1 Array{Float64, 3}):

Iterations        = 501:1:1500
Number of chains  = 1
Samples per chain = 1000
Wall duration     = 10.58 seconds
Compute duration  = 10.58 seconds
parameters        = αₜₐₙₖ[1], αₜₐₙₖ[2], αₜₐₙₖ[3], αₜₐₙₖ[4], αₜₐₙₖ[5], αₜₐₙₖ[6], αₜₐₙₖ[7], αₜₐₙₖ[8], αₜₐₙₖ[9], αₜₐₙₖ[10], αₜₐₙₖ[11], αₜₐₙₖ[12], αₜₐₙₖ[13], αₜₐₙₖ[14], αₜₐₙₖ[15], αₜₐₙₖ[16], αₜₐₙₖ[17], αₜₐₙₖ[18], αₜₐₙₖ[19], αₜₐₙₖ[20], αₜₐₙₖ[21], αₜₐₙₖ[22], αₜₐₙₖ[23], αₜₐₙₖ[24], αₜₐₙₖ[25], αₜₐₙₖ[26], αₜₐₙₖ[27], αₜₐₙₖ[28], αₜₐₙₖ[29], αₜₐₙₖ[30], αₜₐₙₖ[31], αₜₐₙₖ[32], αₜₐₙₖ[33], αₜₐₙₖ[34], αₜₐₙₖ[35], αₜₐₙₖ[36], αₜₐₙₖ[37], αₜₐₙₖ[38], αₜₐₙₖ[39], αₜₐₙₖ[40], αₜₐₙₖ[41], αₜₐₙₖ[42], αₜₐₙₖ[43], αₜₐₙₖ[44], αₜₐₙₖ[45], αₜₐₙₖ[46], αₜₐₙₖ[47], αₜₐₙₖ[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]    1.7229    0.7901     0.0250    0.0189   2166.8347    0.9992      204.7080
    αₜₐₙₖ[2]    2.3683    0.8793     0.0278    0.0155   3474.3077    0.9991      328.2294
    αₜₐₙₖ[3]    0.7592    0.6329     0.0200    0.0171   2318.5009    0.9992      219.0365
    αₜₐₙₖ[4]    2.3891    0.8672     0.0274    0.0220   1524.3635    1.0003      144.0117
    αₜₐₙₖ[5]    1.7203    0.7516     0.0238    0.0167   2288.5157    0.9995      216.2037
    αₜₐₙₖ[6]    1.7297    0.7582     0.0240    0.0198   2039.3706    0.9997      192.6661
    αₜₐₙₖ[7]    2.4373    0.9359     0.0296    0.0254   1468.2320    0.9994      138.7087
    αₜₐₙₖ[8]    1.7234    0.7248     0.0229    0.0176   2097.4599    0.9995      198.1540
    αₜₐₙₖ[9]   -0.3681    0.6044     0.0191    0.0091   2523.0377    0.9995      238.3597
   αₜₐₙₖ[10]    1.7100    0.7156     0.0226    0.0152   2080.2889    0.9990      196.5318
   αₜₐₙₖ[11]    0.7669    0.5918     0.0187    0.0135   2169.1890    1.0003      204.9305
   αₜₐₙₖ[12]    0.3854    0.6110     0.0193    0.0121   2145.4342    0.9991      202.6863
   αₜₐₙₖ[13]    0.7479    0.6045     0.0191    0.0124   2822.1076    1.0010      266.6139
   αₜₐₙₖ[14]   -0.0188    0.6088     0.0193    0.0131   1994.8192    0.9991      188.4572
   αₜₐₙₖ[15]    1.7090    0.7719     0.0244    0.0176   2672.3908    0.9990      252.4696
   αₜₐₙₖ[16]    1.7389    0.7834     0.0248    0.0229   1294.4368    0.9999      122.2897
   αₜₐₙₖ[17]    2.5499    0.7103     0.0225    0.0150   1647.7655    0.9995      155.6699
   αₜₐₙₖ[18]    2.1288    0.6120     0.0194    0.0125   1838.6002    0.9990      173.6987
   αₜₐₙₖ[19]    1.7993    0.5081     0.0161    0.0134   1883.4448    0.9996      177.9353
   αₜₐₙₖ[20]    3.1104    0.7907     0.0250    0.0194   1690.5006    0.9994      159.7072
   αₜₐₙₖ[21]    2.1414    0.5777     0.0183    0.0155   1510.4187    1.0023      142.6943
   αₜₐₙₖ[22]    2.1357    0.6106     0.0193    0.0167   1261.9047    0.9992      119.2163
   αₜₐₙₖ[23]    2.1274    0.5808     0.0184    0.0140   1941.2564    0.9999      183.3969
   αₜₐₙₖ[24]    1.5339    0.5158     0.0163    0.0115   2286.6835    0.9990      216.0306
   αₜₐₙₖ[25]   -1.0805    0.4390     0.0139    0.0094   2024.5796    0.9992      191.2687
   αₜₐₙₖ[26]    0.0832    0.3629     0.0115    0.0080   1750.0518    0.9993      165.3332
   αₜₐₙₖ[27]   -1.5309    0.5042     0.0159    0.0111   1942.8943    0.9994      183.5517
   αₜₐₙₖ[28]   -0.5571    0.4091     0.0129    0.0086   1858.2189    0.9994      175.5521
   αₜₐₙₖ[29]    0.0632    0.4102     0.0130    0.0081   2271.2495    0.9993      214.5725
   αₜₐₙₖ[30]    1.3092    0.5099     0.0161    0.0127   2413.3840    0.9990      228.0004
   αₜₐₙₖ[31]   -0.7203    0.4111     0.0130    0.0089   2302.6227    0.9994      217.5364
   αₜₐₙₖ[32]   -0.3995    0.3983     0.0126    0.0089   2693.6089    0.9990      254.4742
   αₜₐₙₖ[33]    2.8696    0.6896     0.0218    0.0167   2689.3440    0.9990      254.0712
   αₜₐₙₖ[34]    2.4641    0.5767     0.0182    0.0116   2500.3126    0.9991      236.2128
   αₜₐₙₖ[35]    2.4447    0.5816     0.0184    0.0136   1683.6415    0.9995      159.0592
   αₜₐₙₖ[36]    1.9135    0.4762     0.0151    0.0116   2080.6826    0.9991      196.5690
   αₜₐₙₖ[37]    1.9033    0.4558     0.0144    0.0092   2302.9987    0.9992      217.5719
   αₜₐₙₖ[38]    3.3542    0.7766     0.0246    0.0164   1607.4831    0.9992      151.8642
   αₜₐₙₖ[39]    2.4588    0.5769     0.0182    0.0129   1974.8799    0.9991      186.5734
   αₜₐₙₖ[40]    2.1430    0.4772     0.0151    0.0091   2766.6474    0.9990      261.3743
   αₜₐₙₖ[41]   -1.8847    0.4483     0.0142    0.0089   2434.1114    0.9990      229.9586
   αₜₐₙₖ[42]   -0.6303    0.3664     0.0116    0.0073   2572.9245    1.0001      243.0727
   αₜₐₙₖ[43]   -0.5097    0.3514     0.0111    0.0083   1448.6123    0.9990      136.8552
   αₜₐₙₖ[44]   -0.4010    0.3324     0.0105    0.0075   1748.1515    0.9990      165.1537
   αₜₐₙₖ[45]    0.5286    0.3448     0.0109    0.0071   2304.6582    0.9991      217.7287
   αₜₐₙₖ[46]   -0.6270    0.3522     0.0111    0.0072   3049.0375    0.9990      288.0527
   αₜₐₙₖ[47]    1.8937    0.4472     0.0141    0.0074   2543.0911    0.9993      240.2542
   αₜₐₙₖ[48]   -0.0593    0.3297     0.0104    0.0078   2095.9310    0.9990      198.0095

Quantiles
  parameters      2.5%     25.0%     50.0%     75.0%     97.5%
      Symbol   Float64   Float64   Float64   Float64   Float64

    αₜₐₙₖ[1]    0.3000    1.1793    1.6990    2.2306    3.3273
    αₜₐₙₖ[2]    0.7700    1.7536    2.3219    2.9148    4.2020
    αₜₐₙₖ[3]   -0.4034    0.3516    0.7251    1.1226    2.1456
    αₜₐₙₖ[4]    0.8297    1.7941    2.3418    2.9343    4.2390
    αₜₐₙₖ[5]    0.3881    1.1867    1.6986    2.2248    3.2685
    αₜₐₙₖ[6]    0.3062    1.2200    1.7010    2.1816    3.2926
    αₜₐₙₖ[7]    0.8586    1.8209    2.3379    2.9885    4.4081
    αₜₐₙₖ[8]    0.4119    1.2251    1.6942    2.1741    3.2624
    αₜₐₙₖ[9]   -1.5193   -0.7835   -0.3696    0.0463    0.8606
   αₜₐₙₖ[10]    0.3637    1.2251    1.6686    2.1722    3.2088
   αₜₐₙₖ[11]   -0.3592    0.3640    0.7381    1.1629    1.9542
   αₜₐₙₖ[12]   -0.8058   -0.0316    0.3826    0.7918    1.6462
   αₜₐₙₖ[13]   -0.3819    0.3161    0.7502    1.1445    1.9435
   αₜₐₙₖ[14]   -1.2250   -0.4258    0.0036    0.3691    1.2020
   αₜₐₙₖ[15]    0.3195    1.1885    1.6524    2.1759    3.3185
   αₜₐₙₖ[16]    0.3429    1.2027    1.6645    2.1993    3.5038
   αₜₐₙₖ[17]    1.3188    2.0554    2.4950    2.9991    4.0607
   αₜₐₙₖ[18]    1.1038    1.6867    2.0737    2.5578    3.4183
   αₜₐₙₖ[19]    0.8708    1.4282    1.7837    2.1301    2.8436
   αₜₐₙₖ[20]    1.7292    2.5630    3.0597    3.5783    4.8551
   αₜₐₙₖ[21]    1.0920    1.7244    2.1055    2.5413    3.3856
   αₜₐₙₖ[22]    1.0258    1.7001    2.0898    2.5453    3.4101
   αₜₐₙₖ[23]    1.0658    1.7083    2.0963    2.5205    3.2872
   αₜₐₙₖ[24]    0.5771    1.1967    1.5172    1.8489    2.6601
   αₜₐₙₖ[25]   -2.0057   -1.3495   -1.0643   -0.7986   -0.2599
   αₜₐₙₖ[26]   -0.5988   -0.1772    0.0846    0.3527    0.7293
   αₜₐₙₖ[27]   -2.5762   -1.8516   -1.5231   -1.1953   -0.5995
   αₜₐₙₖ[28]   -1.3741   -0.8391   -0.5515   -0.2652    0.2358
   αₜₐₙₖ[29]   -0.7438   -0.2159    0.0616    0.3331    0.8807
   αₜₐₙₖ[30]    0.3808    0.9635    1.2768    1.6266    2.3754
   αₜₐₙₖ[31]   -1.5841   -0.9792   -0.7214   -0.4396    0.0414
   αₜₐₙₖ[32]   -1.2139   -0.6509   -0.3912   -0.1285    0.3692
   αₜₐₙₖ[33]    1.6474    2.4218    2.8114    3.2554    4.4025
   αₜₐₙₖ[34]    1.4145    2.0737    2.4344    2.8059    3.6922
   αₜₐₙₖ[35]    1.4193    2.0549    2.4200    2.7844    3.7112
   αₜₐₙₖ[36]    1.0651    1.5647    1.8914    2.2285    2.9160
   αₜₐₙₖ[37]    1.1017    1.5741    1.8816    2.1900    2.8664
   αₜₐₙₖ[38]    2.0619    2.7923    3.2908    3.8543    5.0812
   αₜₐₙₖ[39]    1.4354    2.0556    2.4267    2.8395    3.7202
   αₜₐₙₖ[40]    1.2587    1.8349    2.1284    2.4548    3.1228
   αₜₐₙₖ[41]   -2.8292   -2.1910   -1.8595   -1.5841   -1.0640
   αₜₐₙₖ[42]   -1.3634   -0.8787   -0.6226   -0.3825    0.0706
   αₜₐₙₖ[43]   -1.2219   -0.7380   -0.5147   -0.2634    0.1545
   αₜₐₙₖ[44]   -1.0664   -0.6212   -0.3877   -0.1615    0.2092
   αₜₐₙₖ[45]   -0.1136    0.3063    0.5326    0.7618    1.1834
   αₜₐₙₖ[46]   -1.3531   -0.8462   -0.6223   -0.3933    0.0624
   αₜₐₙₖ[47]    1.0840    1.5682    1.8801    2.1857    2.8745
   αₜₐₙₖ[48]   -0.6802   -0.2842   -0.0647    0.1559    0.5869

using StatsPlots

StatsPlots.plot(chns)
"/home/runner/work/TuringModels.jl/TuringModels.jl/__site/assets/models/varying-intercepts-reedfrogs/code/output/chns.svg"

Original output (Edition 1)

"""
             mean   sd  5.5% 94.5% n_eff Rhat
a_tank[1]   2.49 1.16  0.85  4.53  1079    1
a_tank[2]   5.69 2.75  2.22 10.89  1055    1
a_tank[3]   0.89 0.75 -0.23  2.16  1891    1
a_tank[4]   5.71 2.70  2.21 10.85   684    1
a_tank[5]   2.52 1.14  0.92  4.42  1640    1
a_tank[6]   2.49 1.13  0.94  4.52  1164    1
a_tank[7]   5.74 2.71  2.25 10.86   777    1
a_tank[8]   2.52 1.19  0.95  4.42  1000    1
a_tank[9]  -0.46 0.69 -1.62  0.55  2673    1
a_tank[10]  2.53 1.19  0.93  4.59  1430    1
a_tank[11]  0.93 0.72 -0.17  2.11  1387    1
a_tank[12]  0.47 0.74 -0.63  1.70  1346    1
a_tank[13]  0.91 0.76 -0.25  2.30  1559    1
a_tank[14]  0.00 0.66 -1.04  1.06  2085    1
a_tank[15]  2.50 1.19  0.95  4.40  1317    1
a_tank[16]  2.50 1.14  0.98  4.31  1412    1
a_tank[17]  3.49 1.12  1.94  5.49   945    1
a_tank[18]  2.59 0.75  1.50  3.81  1561    1
a_tank[19]  2.11 0.64  1.15  3.15  1712    1
a_tank[20]  6.40 2.57  3.11 11.04   996    1
a_tank[21]  2.59 0.74  1.54  3.93  1233    1
a_tank[22]  2.63 0.79  1.49  4.01  1184    1
a_tank[23]  2.64 0.83  1.45  4.13  1379    1
a_tank[24]  1.74 0.59  0.85  2.72  1736    1
a_tank[25] -1.19 0.45 -1.90 -0.50  2145    1
a_tank[26]  0.09 0.41 -0.53  0.78  2167    1
a_tank[27] -1.75 0.56 -2.65 -0.88  1666    1
a_tank[28] -0.58 0.43 -1.25  0.08  1567    1
a_tank[29]  0.08 0.39 -0.54  0.71  3053    1
a_tank[30]  1.43 0.49  0.66  2.24  2754    1
a_tank[31] -0.79 0.44 -1.50 -0.12  1299    1
a_tank[32] -0.42 0.41 -1.12  0.23  1661    1
a_tank[33]  3.84 1.08  2.31  5.70   808    1
a_tank[34]  3.00 0.85  1.83  4.36  1038    1
a_tank[35]  2.96 0.82  1.82  4.25  1578    1
a_tank[36]  2.14 0.55  1.31  3.08  1734    1
a_tank[37]  2.12 0.56  1.31  3.04  1131    1
a_tank[38]  6.72 2.62  3.45 11.44   706    1
a_tank[39]  2.95 0.73  1.85  4.08  1509    1
a_tank[40]  2.48 0.65  1.53  3.61  1731    1
a_tank[41] -2.15 0.57 -3.11 -1.29  1231    1
a_tank[42] -0.67 0.35 -1.22 -0.14  1444    1
a_tank[43] -0.54 0.35 -1.12  0.03  1776    1
a_tank[44] -0.43 0.34 -1.00  0.10  1735    1
a_tank[45]  0.54 0.36 -0.04  1.14  1376    1
a_tank[46] -0.67 0.34 -1.25 -0.15  1619    1
a_tank[47]  2.14 0.55  1.31  3.04  1916    1
a_tank[48] -0.06 0.35 -0.61  0.50  1932    1
""";