MCMC Setup
This page documents the sampler configuration of the final Protocol 1b run: 96 walkers × 100,000 steps per model with emcee, burn-in 20,000, giving 7,680,000 retained samples per model.
Final run
python src/xi_protocol1b_bao_run.py --nsteps 100000 --burn-in 20000 --nwalkers 96
| Setting | Value |
|---|---|
| Sampler | emcee.EnsembleSampler (default stretch move) |
| Walkers | 96 |
| Steps per walker | 100,000 |
| Burn-in discarded | 20,000 steps per walker |
| Retained samples | 7,680,000 per model (= walkers × (steps − burn-in)) |
| Thinning | none |
| Models | ΛCDM, CPL, Ξosc — each run separately |
Run modes
| Mode | Flag | Steps | Burn-in | Walkers | Use |
|---|---|---|---|---|---|
| Quick | --quick | 500 | 100 | 32 | smoke test only |
| Default | (none) | 5,000 | 1,000 | 32 | medium check |
| Custom | --nsteps N | N | --burn-in, else max(1000, N/5) | --nwalkers | final run |
A quick run is far too short for the Ξosc chain (see Convergence Diagnostics). Its outputs are written to the same default folder as any other run and must not be mistaken for the curated final results (Outputs).
Initialisation
Each walker starts from a small Gaussian ball around a fixed centre (relative width 0.01, or absolute when the centre is 0), redrawn until it falls inside the prior.
| Model | Centre |
|---|---|
| ΛCDM | H₀ = 70, Ωₘ = 0.3 |
| CPL | + w₀ = -1, wₐ = 0 |
| Ξosc | + w₀,mean = -1, ε = 0.1, T = 2.8 Gyr, φ₀ = 0 |
The starting point is fixed, not randomised across the prior, and the Ξosc posterior is multi-featured in T and φ₀ (Corner Plots). The convergence criterion does not test whether other starting regions would give the same answer.
Priors
| Parameter | First used in | Prior (uniform, open interval) | Unit |
|---|---|---|---|
| H₀ | ΛCDM | 50 < x < 100 | km/s/Mpc |
| Ωₘ | ΛCDM | 0.1 < x < 0.5 | — |
| w₀ | CPL | −2 < x < 0 | — |
| wₐ | CPL | −3 < x < 2 | — |
| w₀,mean | Ξosc | −1.5 < x < −0.5 | — |
| ε | Ξosc | 0 < x < 0.3 | — |
| T | Ξosc | 1 < x < 10 | Gyr |
| φ₀ | Ξosc | −π < x < π | rad |
What is stored
run_mcmc discards the burn-in, flattens the walkers into one array of shape (samples, parameters) and saves it as chains_<MODEL>_combined.npy (float64). The unflattened chain is not kept, so walker-by-walker trace plots cannot be made from the saved files. Chain sizes in the final run: ΛCDM 122.9 MB, CPL 245.8 MB, Ξosc 368.6 MB — they are excluded from Git.
Parameters are summarised as the median and the 16th–84th percentile interval of the retained samples.