osmose.calibration.uq.posterior

Compose prior + per-target likelihood into log_posterior(theta).

The posterior takes INJECTED emulators (duck-typed predict(X)->(mean,var)), so synthetic tests inject an analytic emulator and recovery is exact. fit_emulators is the production path that builds real GPs from a DesignResult. Cross-target independence (the log-likelihoods are summed) is a documented overconfidence source: trophically-coupled species are treated as conditionally independent.

Functions

fit_emulators(design[, min_points])

Fit one GP per key with at least min_points valid (uncensored) points.

make_log_posterior(emulators, targets, ...)

Return log_post(theta) -> float = log_prior + sum of per-target log-likelihoods.