Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/api_reference/developer/inference/filter_configs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

The single `Filter()` handler is directed to the appropriate filtering algorithm via the provided `FilterConfig`.

Several shared fields on `BaseFilterConfig` now control predicted-observation recordings (`record_predicted_observations_mean`, `record_predicted_observations_cov`, and `record_predicted_observations_ensemble`). These backend summaries are distinct from the scoring path documented on the companion [Scoring](scoring.md) page: scoring can run without recording them into the trace.

::: dynestyx.inference.filter_configs
options:
filters: []

5 changes: 3 additions & 2 deletions docs/api_reference/developer/inference/filters.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Filters

One of the principal functions of a dynamical systems inference engine is *filtering*, i.e., computation of the distribution \(p(x_t \mid y_{1:T}, \theta)\). In the computation of a filtering distribution, we also obtain estimates of the marginal likelihood, \(p(y_{1:T} | \theta)\), used for parameter inference/system identification. To tell `dynestyx` that a dynamical system should be processed via a filtering algorithm, we use the `Filter` class.
One of the principal functions of a dynamical systems inference engine is *filtering*, i.e., computation of the distribution \(p(x_t \mid y_{1:t}, \theta)\). In the computation of a filtering distribution, we also obtain estimates of the marginal likelihood, \(p(y_{1:T} | \theta)\), used for parameter inference/system identification. To tell `dynestyx` that a dynamical system should be processed via a filtering algorithm, we use the `Filter` class.

This module also hosts the public handler entry point for predicted-observation scoring via `scoring_config`. The scoring surface is documented on the [Scoring](scoring.md) page, while backend translation of predictive summaries currently lives in `dynestyx.inference.observation_predictions`.

::: dynestyx.inference.filters
options:
filters: []

15 changes: 15 additions & 0 deletions docs/api_reference/developer/inference/scoring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Scoring

`dynestyx.inference.scoring` defines the public scoring-rule configuration objects consumed by `Filter(..., scoring_config=...)`.

From the developer perspective, this module is intentionally narrow: it defines score objects and configuration policy for the predictive observation distribution, while backend-specific predictive summary extraction remains in `dynestyx.inference.observation_predictions`.

::: dynestyx.inference.scoring
options:
members:
- BaseObservationScore
- GaussianLogProbScore
- DawidSebastianiScore
- ObservationWiseCRPSScore
- EnergyScore
- ObservationScoringConfig
2 changes: 2 additions & 0 deletions docs/api_reference/public/inference/filter_configs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

The single `Filter()` handler is directed to the appropriate filtering algorithm via the provided `FilterConfig`. We provide a summary below, as well as an exhaustive list of classes.

The shared `record_predicted_observations_*` fields on filter configs control whether backend predictive observation means, covariances, or ensembles are recorded to the NumPyro trace. Those recordings are optional and separate from observation scoring: `scoring_config` can score the predictive observation distribution without enabling these trace sites.

## Available filter configurations

| Config class | Time domain | When it fits best |
Expand Down
5 changes: 3 additions & 2 deletions docs/api_reference/public/inference/filters.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Filters

One of the principal functions of a dynamical systems inference engine is *filtering*, i.e., computation of the distribution \(p(x_t \mid y_{1:T}, \theta)\). In the computation of a filtering distribution, we also obtain estimates of the marginal likelihood, \(p(y_{1:T} | \theta)\), used for parameter inference/system identification. To tell `dynestyx` that a dynamical system should be processed via a filtering algorithm, we use the `Filter` class.
One of the principal functions of a dynamical systems inference engine is *filtering*, i.e., computation of the distribution \(p(x_t \mid y_{1:t}, \theta)\). In the computation of a filtering distribution, we also obtain estimates of the marginal likelihood, \(p(y_{1:T} | \theta)\), used for parameter inference/system identification. To tell `dynestyx` that a dynamical system should be processed via a filtering algorithm, we use the `Filter` class.

`Filter` can also expose one-step-ahead predictive observation diagnostics through `scoring_config` and the `record_predicted_observations_*` fields on the chosen filter config. Scoring always refers to the predictive observation distribution, while the `record_predicted_observations_*` flags only control whether backend predictive summaries are also written into the trace. That scoring path currently supports only the continuous-time CD-Dynamax Gaussian filters (`ContinuousTimeKFConfig`, `ContinuousTimeEKFConfig`, `ContinuousTimeUKFConfig`, and `ContinuousTimeEnKFConfig`). See the [Scoring](scoring.md) page for the score definitions and configuration surface.

::: dynestyx.inference.filters
options:
members:
- Filter

15 changes: 15 additions & 0 deletions docs/api_reference/public/inference/scoring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Scoring

`dynestyx.inference.scoring` defines the proper scoring-rule surface used by `Filter(..., scoring_config=...)`.

These scores operate on the one-step-ahead predictive observation distributions produced by the filter. Recording predicted observation means, covariances, or ensembles into the trace is a separate concern controlled by the filter config. At the moment, Dynestyx supports scoring only for the continuous-time CD-Dynamax Gaussian filters (`ContinuousTimeKFConfig`, `ContinuousTimeEKFConfig`, `ContinuousTimeUKFConfig`, and `ContinuousTimeEnKFConfig`).

::: dynestyx.inference.scoring
options:
members:
- BaseObservationScore
- GaussianLogProbScore
- DawidSebastianiScore
- ObservationWiseCRPSScore
- EnergyScore
- ObservationScoringConfig
4 changes: 3 additions & 1 deletion docs/tutorials/gentle_intro/00_index.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@
"\n",
"13. **[Part 11b: Missing observations with `Simulator` + MCMC](../11b_missing_observations_simulator_mcmc/)** — Joint posterior inference over parameters and latent states under Gaussian missing-data simulator conditioning.\n",
"\n",
"14. **[Part 11c: Missing observations in HMMs](../11c_missing_observations_hmms/)** — Exact HMM missingness handling for `MultivariateNormal` and `Independent(..., 1)` observation families."
"14. **[Part 11c: Missing observations in HMMs](../11c_missing_observations_hmms/)** — Exact HMM missingness handling for `MultivariateNormal` and `Independent(..., 1)` observation families.\n",
"\n",
"15. **[Part 12: Observation scoring with filters](../12_observation_scoring_with_filters/)** — Use filter-predicted observation distributions to compute Gaussian log-probs, Dawid-Sebastiani scores, CRPS, and energy scores."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@
"source": [
"**Previous:** [Part 11b — Missing observations with `Simulator` + MCMC](../11b_missing_observations_simulator_mcmc/)\n",
"\n",
"**Next:** [Part 12 — Hierarchical modeling patterns](../12_hierarchical_modeling_patterns/)\n"
"**Next:** [Part 12 — Observation scoring with filters](../12_observation_scoring_with_filters/)\n"
]
}
],
Expand Down
Loading
Loading