pypomp.Pomp.pmcmc

Pomp.pmcmc(J: int, M: int, proposal: Proposal, dprior: Callable | None = None, key: Array | None = None, theta: PompParameters | None = None, thresh: float = 0.0, track_time: bool = True) None

Particle Markov chain Monte Carlo (PMMH) for Bayesian parameter inference.

Runs one independent PMCMC chain for each parameter replicate in theta. Each chain uses a bootstrap particle filter likelihood estimate inside a Metropolis-Hastings update. Results are stored in Pomp.results_history.

Parameters:
  • J (int) – Number of particles per particle-filter likelihood evaluation.

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

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

  • dprior (Callable, optional) – Pure-JAX log-prior function with signature dprior(theta_arr) -> scalar. If None, a flat improper prior is used.

  • key (jax.Array, optional) – JAX PRNG key. Defaults to fresh_key.

  • theta (PompParameters, optional) – Starting parameter values. Defaults to theta.

  • thresh (float, default 0.0) – Adaptive resampling threshold passed to the particle filter.

  • track_time (bool, default True) – Whether to record execution time.

Returns:

Updates Pomp.results_history with a Result.

Return type:

None