Skip to content

feat: inflate_cloud — fold surrogate error budget into predictive nulls - #84

Merged
jeliason merged 1 commit into
mainfrom
feature/vpc-null-inflation
Jul 24, 2026
Merged

feat: inflate_cloud — fold surrogate error budget into predictive nulls#84
jeliason merged 1 commit into
mainfrom
feature/vpc-null-inflation

Conversation

@jeliason

Copy link
Copy Markdown
Member

The qsp-inference half of redesign step 3c (VPC null inflation).

inflate_cloud(cloud, noise_sd, *, asinh_scale=None) convolves each observable's predictive with independent N(0, noise_sd_j), widening the null by a known per-observable error budget. A deterministic GBM surrogate standing in for the QSP ODE produces an artificially tight, biased null; without this a real conflict cannot be told apart from surrogate approximation error, yielding false structural/over-dispersion labels. Folding the budget in makes any downstream discrepancy check (quantile_vpc, prediction_discrepancy) conservative wrt that error.

  • Widening only — an error magnitude (a held-out residual SD) never licenses narrowing a null.
  • Noise is injected in the space it was measured (asinh(obs/scale) for GBM surrogates) and mapped back, so raw-space spread tracks each observable's magnitude.

pdac consumes this in _vpop_observable_cloud to flip the emulator VPC verdict from descriptive-only to a real gate.

A deterministic surrogate (GBM emulator) produces an artificially tight,
biased predictive null; scoring an observation against it charges the
surrogate's approximation error as model misspecification. inflate_cloud
convolves each observable's predictive with independent N(0, noise_sd),
widening the null so a real conflict must exceed the surrogate error to be
flagged. Widening-only: an error magnitude never licenses narrowing a null.

Noise is injected in the space the error was measured (asinh(obs/scale) for
GBM surrogates) and mapped back, so raw-space spread tracks each observable's
magnitude. This is the qsp-inference half of redesign step 3c.
@jeliason
jeliason merged commit cd9b41b into main Jul 24, 2026
1 check passed
@jeliason
jeliason deleted the feature/vpc-null-inflation branch July 24, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant