This is the third Chimpanzees model (m10.3
) in Statistical Rethinking Edition 1.
import CSV
import Random
import TuringModels
using DataFrames
Random.seed!(1)
file_path = joinpath(TuringModels.project_root, "data", "chimpanzees.csv")
df = CSV.read(file_path, DataFrame; delim=';');
using StatsFuns
using Turing
@model function m10_3(y, x₁, x₂)
α ~ Normal(0, 10)
βp ~ Normal(0, 10)
βpC ~ Normal(0, 10)
logits = α .+ (βp .+ βpC * x₁) .* x₂
y .~ BinomialLogit.(1, logits)
end
m10_3 (generic function with 2 methods)
model = m10_3(df.pulled_left, df.condition, df.prosoc_left)
chns = sample(model, NUTS(), 2000)
Chains MCMC chain (2000×15×1 Array{Float64, 3}):
Iterations = 1001:1:3000
Number of chains = 1
Samples per chain = 2000
Wall duration = 8.85 seconds
Compute duration = 8.85 seconds
parameters = α, βp, βpC
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
α 0.0443 0.1225 0.0027 0.0036 1292.8804 1.0025 146.0717
βp 0.6157 0.2170 0.0049 0.0066 1024.1444 1.0068 115.7095
βpC -0.0970 0.2625 0.0059 0.0073 1123.0485 1.0025 126.8838
Quantiles
parameters 2.5% 25.0% 50.0% 75.0% 97.5%
Symbol Float64 Float64 Float64 Float64 Float64
α -0.2058 -0.0384 0.0432 0.1289 0.2768
βp 0.1981 0.4748 0.6065 0.7651 1.0451
βpC -0.5995 -0.2755 -0.1015 0.0834 0.4159
using StatsPlots
StatsPlots.plot(chns)
"/home/runner/work/TuringModels.jl/TuringModels.jl/__site/assets/models/chimpanzees/code/output/chns.svg"
"""
Mean StdDev lower 0.89 upper 0.89 n_eff Rhat
a 0.05 0.13 -0.15 0.25 3284 1
bp 0.62 0.22 0.28 0.98 3032 1
bpC -0.11 0.26 -0.53 0.29 3184 1
""";