# Posterior region probabilities for the three fitted estimands (3373)

Generated 2026-10-01T01:38:11 by `07_analysis_code/3373_posterior_regions.py`. Read-only post-processing: nothing was refitted and no existing file was modified. Each posterior CDF comes from the analysis's own summary code (imported read-only), after its published headline was reproduced. The quantity is the individual-scale autism rate ratio (RR) for a vaccinated versus an unvaccinated child, as each model defines it. All values are model-conditional.

## Region probabilities

| Region | (1) Primary shared mean | (2) 3350 A1 common effect | (3) 3370 V1 calibrated common | 3370 V2 variance-only common |
|---|---:|---:|---:|---:|
| Median (95% CrI) | 0.957 (0.599-1.517) | 0.964 (0.637-1.455) | 0.871 (0.741-1.020) | 0.946 (0.806-1.111) |
| P(RR < 0.90) | 0.396 | 0.372 | 0.657 | 0.270 |
| P(RR < 0.95) | 0.487 | 0.472 | 0.859 | 0.518 |
| P(0.95 <= RR <= 1.05) | 0.168 | 0.185 | 0.131 | 0.379 |
| P(RR > 1.05) | 0.345 | 0.343 | 0.010 | 0.102 |
| P(RR < 1) | 0.575 | 0.569 | 0.957 | 0.749 |
| P(RR > 1) | 0.425 | 0.431 | 0.043 | 0.251 |
| P(0.90 <= RR <= 1.10) | 0.330 | 0.363 | 0.341 | 0.697 |
| P(RR > 1.10) | 0.275 | 0.265 | 0.002 | 0.033 |
| P(RR > 1.25) | 0.126 | 0.108 | 4.6e-06 | 3.7e-04 |

P(RR < t) and P(RR > t) are complements. The CDFs are continuous, so it makes no difference whether an interval endpoint is included.

## Reproduction of each headline (done before computing regions)

| Estimand | Reproduced | Target | Max abs diff | Target source |
|---|---|---|---:|---|
| (1) Primary shared mean | 0.957 (0.599-1.517); P(>1) 0.425 | 0.957 (0.599-1.517) | 1.1e-13 | project_results/global_integration/hierarchy/hierarchy_final_p18.json headline |
| (2) 3350 A1 common effect | 0.964 (0.637-1.455); P(>1.05) 0.343 | 0.964 (0.637-1.455) | 0.0e+00 | 3350_generalized_claim_tests.json A.rows.A1 |
| (3) 3370 V1 calibrated common | 0.871 (0.741-1.020); P(>1.05) 0.010 | 0.871 (0.741-1.020) | 0.0e+00 | 3370_calibrated_synthesis.json summative.row |
| 3370 V2 variance-only common | 0.946 (0.806-1.111); P(>1.05) 0.102 | 0.946 (0.806-1.111) | 0.0e+00 | 3370_calibrated_synthesis.json variants[V2, common effect] |

Setting each script's `THRESHOLDS` constant in memory to the region cut-points changes no quantile or log marginal likelihood: max abs diff A1 0.0e+00, V1 0.0e+00, V2 0.0e+00.

## Machinery and CDF grid

- **(1) Primary shared mean.** project_results/global_integration/hierarchy/hierarchy_final_grid_p18.npz key reference (6 x 241); international_hierarchy.summarize (headline) and global_hierarchy.exceedance (P(RR > t)); prior N(0, log 2^2), shared SD 0.15. CDF: Normal mixture over the 241-point latent grid (trapezoid weights) evaluated on the 2401-point x-grid linspace(-6, 6) and linearly interpolated (international_hierarchy.density_summary / global_hierarchy.exceedance).
- **(2) 3350 A1 common effect.** project_results/generalized_claim_3350/fits/A1_p18.npz (both scrambles, tag matches 3350 spec_tag of the A1 spec in 3350_generalized_claim_tests.json); 3350_generalized_claim_tests.summarize_theta(quad="simpson38", shared SD 0.15). CDF: exact Normal-mixture CDF theta | a ~ N(lam a, lam 0.15^2) over the 1201-point a-grid (spacing 0.005) with amendment-1 knot-aligned Simpson 3/8 weights; prior N(0, log 2^2 + 0.15^2) on a.
- **(3) 3370 V1 calibrated common.** 420 nodes and weights recorded in 3370_calibrated_synthesis.json nodes.V1; cached fits project_results/calibrated_synthesis_3370/fits/common/p20 by 3370 spec_tag/fit_path; 3370 summarize_common (mixture_logvalues + 3350 summarize_theta, shared SD 0, trapezoid). CDF: 3350 summarize_theta shared_sd=0 branch: trapezoid-cumulative posterior of theta on the 1201-point grid (spacing 0.005), linearly interpolated; prior N(0, log 2^2); calibrated bias (incl. shared mu_b) integrated over the node mixture; p20 centres restricted to log -0.935 to 0.575 (p18 mass outside 0.0e+00), likelihood zero outside.
- **3370 V2 variance-only common.** 420 nodes and weights recorded in 3370_calibrated_synthesis.json nodes.V2; cached fits project_results/calibrated_synthesis_3370/fits/common/p18 by 3370 spec_tag/fit_path; 3370 summarize_common (mixture_logvalues + 3350 summarize_theta, shared SD 0, trapezoid). CDF: 3350 summarize_theta shared_sd=0 branch: trapezoid-cumulative posterior of theta on the 1201-point grid (spacing 0.005), linearly interpolated; prior N(0, log 2^2); calibrated bias (incl. shared mu_b) integrated over the node mixture.

## Numerical checks

- (1) Exact Normal-mixture CDF (`current_mean_probabilities.mu_cdf`) against the interpolated 2401-point x-grid: largest region difference 1.3e-05.
- (2) Documented trapezoid weights against amendment-1 Simpson 3/8: largest region difference 3.9e-06. Gap between the two independent scrambles: 0.006.
- (3) V1 (p20): gap between the two scrambles is 0.0056 at most (P(RR > 1.05) 0.011 vs 0.009). Minimum relevant core ESS 16.4 (below 50, flagged in 3370 as its rule prescribes). V2 (p18) scramble gap: 0.0156; ESS 10.3 (flagged).
- 3370 node lists rebuilt live from the NC error model (NC and frozen inputs unchanged since the 3370 report): V1 cache keys identical True (weights max abs diff 0.0e+00); V2 True (0.0e+00).

## Point-null Bayes factors (restated from saved files)

| Comparison | BF | log BF | Posterior P(null) at prior 0.2 | 0.5 | 0.8 | Source |
|---|---:|---:|---:|---:|---:|---|
| Shared-mean point null mu = 0 vs continuous N(0, log 2^2) (heterogeneity and shared bias kept) | 2.932 | 1.076 | 0.423 | 0.746 | 0.921 | `project_results/global_integration/mean_pointnull_probabilities.csv` |
| 3350 all-null H0 (every context delta = 0, bias terms kept) vs heterogeneous primary, assumed floors | 15.06 | 2.712 | 0.790 | 0.938 | 0.984 | `3350_generalized_claim_tests.json` C.null.floors |
| (same, doubled floors) | 5.41 | 1.689 | 0.575 | 0.844 | 0.956 | `3350_generalized_claim_tests.json` C.null.doubled |

Posterior P(null) = BF p / (BF p + 1 - p). The shared-mean conversions match the CSV's saved posteriors to 0.0e+00. BF01 recomputed from the saved grid with `current_mean_probabilities.point_null_rows`: 2.9321 (diff 0.0e+00). The 3350 log BF ranges from 2.38 to 2.70 across the untied U.S. rotavirus 2006 prior sensitivity. Neither null says every vaccine effect is exactly zero: both keep every bias term, and the shared-mean null keeps the product and context heterogeneity.

Inputs, their SHA-256 hashes, and the code hashes of the imported scripts (compared with the hashes recorded by 3350 and 3370) are in `3373_posterior_regions.json`.
