pypomp.functional.panel_mif¶
- pypomp.functional.panel_mif(struct: PanelPompStruct, shared_array: Array, unit_array: Array, sigmas_array: Array, sigmas_init_array: Array, M: int, cooling_fn: Callable | float, J: int, keys: Array, thresh: float = 0.0, n_monitors: int = 0, block: bool = True) tuple[Array, Array, Array, Array][source]¶
Estimate panel POMP parameters using Panel Iterated Filtering.
A pure functional implementation of the (Marginal) Panel Iterated Filtering (PIF/MPIF) algorithm (Bretó et al. 2020 [1]; Wheeler et al. 2025 [2]), intended for composition within custom JAX loops.
This function estimates parameters for a Panel POMP model by introducing random perturbations to the parameters and sequentially filtering them across all units. The perturbation variance is decayed according to a given cooling schedule.
- Parameters:
struct (PanelPompStruct) – Compiled structural representation of the Panel POMP model.
shared_array (jax.Array) – Swarm of initial shared parameters of shape
(n_reps, J, n_shared)on the natural scale.unit_array (jax.Array) – Swarm of initial unit-specific parameters of shape
(n_reps, J, U, n_spec)on the natural scale.sigmas_array (jax.Array) – Random walk standard deviations of shape
(n_params,).sigmas_init_array (jax.Array) – Initial random walk standard deviations of shape
(n_params,).M (int) – Number of iterated filtering iterations.
cooling_fn (callable or float) – Cooling schedule function or constant decay factor.
J (int) – Number of particles.
keys (jax.Array) – Random keys of shape
(n_reps, ...).thresh (float, optional) – Resampling threshold. Defaults to
0.0.n_monitors (int, optional) – Number of monitor runs to perform at each iteration. Defaults to
0.block (bool, optional) – Whether to use block updates (MPIF). Defaults to
True.
- Returns:
shared_traces (jax.Array) – Shared parameter history trace of shape
(n_reps, M + 1, n_shared + 1).unit_traces (jax.Array) – Unit-specific parameter history trace of shape
(n_reps, M + 1, U, n_spec + 1).final_shared_swarm (jax.Array) – Final swarm of shared parameters of shape
(n_reps, J, n_shared).final_unit_swarm (jax.Array) – Final swarm of unit-specific parameters of shape
(n_reps, J, U, n_spec).
Notes
To align and stack input parameter arrays into the correct canonical ordering, use
pypomp.functional.align_params().See also
pypomp.PanelPomp.mifObject-oriented interface.
align_paramsParameter alignment utility.
References