Posterior summaries
Verification
Comparisons with R
- CmdStanR methods
- Posterior summaries
- LOO and PSIS
- Moment matching
- Model methods
- Stan functions
- Figures
- rvars and inits
- Metadata
On this page
Comparisons with other interfaces
Scope
Default summaries, summaries with measures, every named posterior measure, custom quantile probabilities, and per-chain sampler diagnostics. Identical draws in both implementations.
References
- Reference
- posterior 1.7.1 summarise_draws() on the same draws, and cmdstanr 0.99.0 (commit 0a54123) diagnostic_summary() on the same CSV files
- Versions
- PHP 8.5.10, CmdStan 2.40.0, R 4.6.1, cmdstanr 0.99.0 (commit 0a54123), posterior 1.7.1
Data
- shoe_latent model
- tests/fixtures/latent.stan, 60 observations in 12 groups, 4 chains of 1,000 warmup and 1,000 sampling iterations, seed 20260831. R reads CmdStanPHP's draws as binary doubles.
- Fixed draws
- Six variables (autoregressive, heavy-tailed, tied, constant, skewed, and shifted between chains), 4 chains × 101 draws, generated with seed 20240607.
Method
CmdStanPHP's draws are passed to R as binary doubles, so posterior summarizes the same values. Sampler diagnostics are compared with CmdStanR's diagnostic_summary() on the same CSV files.
- Check
- Comparison with a reference implementation
- Recorded
- 2026-11-02, PHP 8.5.10, macOS 27.0.1 (arm64), commit 4ec6712
Tolerances
|x − r| ≤ 1e-13 × max(|r|, 1)
Applies to: Draws passed to R
|x − r| ≤ 1e-12
Applies to: Sampler diagnostics
|x − r| ≤ 1e-8 × max(|r|, 1)
Applies to: Summary measures
R's NA must be NaN
exact equality
Applies to: Variable and column names
x: package value; r: reference value. Absolute error: |x − r|. Relative error: |x − r| / max(|r|, 1). Max errors are over the values a row compares.
Results
69 comparisons in 4 cases: 69 pass, 0 fail, 0 skipped.
By case
| Case | Comparisons | Largest abs. error | Largest rel. error | Status |
|---|---|---|---|---|
| shoe_latent model, 4 chains × 1,000 draws | 29 | 8.0e-11 | 7.3e-14 | pass |
| Fixed draws, default measures | 9 | 1.4e-12 | 6.3e-15 | pass |
| Fixed draws, every named measure | 22 | 1.4e-12 | 6.3e-15 | pass |
| Fixed draws, probabilities 0.025, 0.5, and 0.975 | 9 | 1.2e-12 | 1.0e-14 | pass |
All 69 comparisons
| Case | Quantity | Criterion | Values | Max abs. error | Max rel. error | Status |
|---|---|---|---|---|---|---|
| shoe_latent model, 4 chains × 1,000 draws | variable names | exact equality | 14 | pass | ||
| draws passed to R | |x − r| ≤ 1e-13 × max(|r|, 1) | 56,000 | 5.1e-15 | 5.0e-15 | pass | |
| mean, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 5.0e-16 | 5.0e-16 | pass | |
| mean, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 2.3e-15 | 2.3e-15 | pass | |
| median, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| median, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| sd, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.7e-16 | 4.7e-16 | pass | |
| sd, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 5.3e-16 | 5.3e-16 | pass | |
| mad, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| mad, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| rhat, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.9e-15 | 4.9e-15 | pass | |
| rhat, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.9e-15 | 4.9e-15 | pass | |
| ess_bulk, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 1.1e-11 | 2.6e-15 | pass | |
| ess_bulk, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 7.7e-12 | 3.2e-15 | pass | |
| ess_tail, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 5.8e-11 | 7.3e-14 | pass | |
| ess_tail, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 8.0e-11 | 3.1e-14 | pass | |
| q5, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q5, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q25, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 5.0e-16 | 5.0e-16 | pass | |
| q25, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 5.0e-16 | 5.0e-16 | pass | |
| q50, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q50, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q75, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q75, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.4e-16 | 4.4e-16 | pass | |
| q95, with measures | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.9e-15 | 4.5e-15 | pass | |
| q95, default summary | |x − r| ≤ 1e-8 × max(|r|, 1) | 14 | 4.9e-15 | 4.5e-15 | pass | |
| num_divergent per chain, against diagnostic_summary() | |x − r| ≤ 1e-12 | 4 | 0 | 0 | pass | |
| num_max_treedepth per chain, against diagnostic_summary() | |x − r| ≤ 1e-12 | 4 | 0 | 0 | pass | |
| ebfmi per chain, against diagnostic_summary() | |x − r| ≤ 1e-12 | 4 | 5.6e-16 | 5.6e-16 | pass | |
| Fixed draws, default measures | mean | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 6.7e-16 | 4.4e-16 | pass |
| median | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 2.0e-15 | 1.8e-15 | pass | |
| sd | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.4e-15 | 2.1e-15 | pass | |
| mad | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.0e-15 | 3.4e-15 | pass | |
| q5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.9e-15 | 1.8e-15 | pass | |
| q95 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.6e-15 | 1.7e-15 | pass | |
| rhat | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.8e-15 | 3.8e-15 | pass | |
| ess_bulk | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 2.8e-13 | 1.3e-15 | pass | |
| ess_tail | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.4e-12 | 6.3e-15 | pass | |
| Fixed draws, every named measure | mean | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 6.7e-16 | 4.4e-16 | pass |
| median | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 2.0e-15 | 1.8e-15 | pass | |
| sd | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.4e-15 | 2.1e-15 | pass | |
| mad | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.0e-15 | 3.4e-15 | pass | |
| q5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.9e-15 | 1.8e-15 | pass | |
| q95 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.6e-15 | 1.7e-15 | pass | |
| rhat | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.8e-15 | 3.8e-15 | pass | |
| ess_bulk | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 2.8e-13 | 1.3e-15 | pass | |
| ess_tail | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.4e-12 | 6.3e-15 | pass | |
| mcse_mean | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 5.0e-16 | 5.0e-16 | pass | |
| mcse_median | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.1e-16 | 1.1e-16 | pass | |
| mcse_sd | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.4e-16 | 4.4e-16 | pass | |
| mcse_q5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.2e-16 | 4.2e-16 | pass | |
| mcse_q95 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.3e-16 | 3.3e-16 | pass | |
| rhat_basic | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.6e-15 | 3.4e-15 | pass | |
| ess_basic | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.4e-13 | 1.8e-15 | pass | |
| ess_mean | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.4e-13 | 1.8e-15 | pass | |
| ess_sd | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.5e-13 | 2.5e-15 | pass | |
| ess_median | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 5.7e-13 | 1.9e-15 | pass | |
| ess_q5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.4e-12 | 6.3e-15 | pass | |
| ess_q95 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 5.1e-13 | 1.1e-15 | pass | |
| column names and order | exact equality | 22 | pass | |||
| Fixed draws, probabilities 0.025, 0.5, and 0.975 | q2.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.9e-15 | 1.6e-15 | pass |
| q50 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 2.0e-15 | 1.8e-15 | pass | |
| q97.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 3.6e-15 | 1.4e-15 | pass | |
| mcse_q2.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.4e-15 | 3.2e-15 | pass | |
| mcse_q50 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.1e-16 | 1.1e-16 | pass | |
| mcse_q97.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 4.9e-15 | 4.2e-15 | pass | |
| ess_q2.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 1.2e-12 | 1.0e-14 | pass | |
| ess_q50 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 5.7e-13 | 1.9e-15 | pass | |
| ess_q97.5 | |x − r| ≤ 1e-8 × max(|r|, 1) | 6 | 7.4e-13 | 2.3e-15 | pass |
Reproduction
php verification/compatibility/run.php
- Raw record
- site/verifications/posterior-summaries.json
- Full results
- verification/compatibility/results.json