pypomp.functional.abc

pypomp.functional.abc(struct: PompStruct, thetas_array: Array, proposal: Any, dprior: Callable, probe_fn: Callable, obs_probes: Array, scale_arr: Array, epsilon: float, ydim: int, M: int, keys: Array) tuple[Array, Array, Array, Array][source]

Functional ABC-MCMC entry point.

Parameters:
  • struct (PompStruct) – Compiled POMP model (see PompStruct). Requires struct.rmeas_pf to be non-None.

  • thetas_array (jax.Array) – Starting parameter vectors, shape (n_chains, d).

  • proposal – Proposal object (see pypomp.proposals).

  • dprior (Callable) – Pure-JAX log-prior, dprior(theta_arr) -> scalar.

  • probe_fn (Callable) – Pure-JAX probe function, probe_fn(y_arr) -> (n_probes,) where y_arr has shape (n_obs, ydim).

  • obs_probes (jax.Array) – Observed probes, shape (n_probes,).

  • scale_arr (jax.Array) – Per-probe scale, shape (n_probes,).

  • epsilon (float) – ABC distance threshold (acceptance requires distance < epsilon**2).

  • ydim (int) – Observation dimensionality (static).

  • M (int) – Number of MCMC iterations per chain.

  • keys (jax.Array) – PRNG keys, shape (n_chains, ...).

Returns:

(distance_traces, log_prior_traces, theta_traces, accepts) with shapes (n_chains, M + 1), (n_chains, M + 1), (n_chains, M + 1, d), (n_chains,) respectively.

Return type:

tuple[jax.Array, jax.Array, jax.Array, jax.Array]