Probabilistic programming for latent Gaussian models in Julia.
# Disease mapping with a Besag ICAR prior @latte function disease(y, E, W) β ~ MvNormal(zeros(1), 100.0 * I(1)) τ ~ PCPrior.Precision(1.0, α = 0.01) u ~ BesagModel(W; normalize_var = Val{true}())(τ = τ) for i in eachindex(y) y[i] ~ Poisson(E[i] * exp(β[1] + u[i])) end end # Choose your inference engine fit = inla(disease(y, E, W), y) fit = tmb(disease(y, E, W), y) fit = hmc_laplace(disease(y, E, W), y)See the full disease-mapping tutorial →
366-day binomial · RW2 smoothing · warm fit

The simplest end-to-end Bayesian analysis you can write: hospital-by-hospital mortality rates, an IID random effect, and inla() in a handful of lines.

Continuous-domain spatial smoothing the SPDE way. Build a triangulated mesh, define a Matérn precision, and fit it to earthquake intensity.

When the hyperparameter posterior is a curved, skewed ridge, INLA's grid design is biased. hmc_laplace samples it instead, validated against gold-standard NUTS.