Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
118 changes: 61 additions & 57 deletions docs/tutorials/gentle_intro/00_index.ipynb
Original file line number Diff line number Diff line change
@@ -1,60 +1,64 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# A Gentle Introduction to Dynestyx\n",
"\n",
"This multi-part tutorial is a conceptual complement to the [Quickstart](../../quickstart.ipynb). We start from basic Bayesian inference in NumPyro, then show how **dynestyx** extends it to sample and infer **dynamical systems**—with a clear separation between *what* the model is (parameters + dynamics + observations) and *how* we simulate or compute likelihoods (simulators and filters)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Contents\n",
"\n",
"1. **[Part 1: NumPyro and the Bayesian workflow](../01_numpyro_bayesian_workflow/)** — Linear regression with NUTS and ArviZ; generating data with `Predictive`; prior and posterior predictive (Bayesian workflow).\n",
"\n",
"2. **[Part 2: Dynestyx — discrete-time dynamical systems](../02_dynestyx_discrete_intro/)** — What dynestyx is; separation of concerns; a first model (discrete-time stochastic volatility); context and handlers; generating data with `DiscreteTimeSimulator`; NUTS + simulator for $p(x, \\theta \\mid \\text{data})$.\n",
"\n",
"3. **[Part 3: Filtering and the marginal log-likelihood](../03_filtering_mll/)** — Computing MLL with the particle filter at $\\theta_{\\text{mean}}$ and $\\theta_{\\text{true}}$; switching to Taylor KF; canonical reference placeholder.\n",
"\n",
"4. **[Part 4: Filtering + NUTS — pseudomarginal inference](../04_filtering_nuts_pseudomarginal/)** — Using the filter’s MLL inside NUTS to sample only parameters; when this is “overkill” vs. valuable (with links to be filled).\n",
"\n",
"5. **[Part 5: SVI and warming up NUTS](../05_svi/)** — SVI as a fast alternative; using SVI to initialize NUTS; execution times; rapid prototyping.\n",
"\n",
"6. **[Part 6a: Continuous-time dynamical systems (SDEs)](../06_continuous_time/)** — `ContinuousTimeStateEvolution` (drift, diffusion coefficient, diffusion covariance); `SDESimulator`; Lorenz 63 with partial observations; `LinearGaussianObservation` and $H$; NUTS + EnKF; full-observations deep dive link.\n",
"\n",
"7. **[Part 6b: Continuous-time dynamical systems (ODEs)](../06b_odes/)** - `ContinuousTimeStateEvolution` (drift and no diffusions); `ODESimulator`. Probabilistic numerics coming soon!\n",
"\n",
"8. **[Part 7: Hidden Markov Models (HMMs)](../07_hmm/)** — Working with categorical state spaces models (filtering and Bayesian parameter estimation).\n",
"\n",
"9. **[Part 8: Hierarchical / mixed-effect inference](../08_hierarchical_inference/)** — `plate` for trajectory-level parameters; hierarchical dynamical models and inference.\n",
"\n",
"10. **[Part 9: Discrete-time smoothing](../09_discrete_smoothing/)** — `Smoother` for discrete-time models; smoothed state summaries and future-only posterior rollout.\n",
"\n",
"11. **[Part 10: Continuous-time smoothing](../10_continuous_smoothing/)** — Continuous-discrete smoothing; smoothed state summaries and future-only posterior rollout."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.12.0"
}
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# A Gentle Introduction to Dynestyx\n",
"\n",
"This multi-part tutorial is a conceptual complement to the [Quickstart](../../quickstart.ipynb). We start from basic Bayesian inference in NumPyro, then show how **dynestyx** extends it to sample and infer **dynamical systems**—with a clear separation between *what* the model is (parameters + dynamics + observations) and *how* we simulate or compute likelihoods (simulators and filters)."
]
},
"nbformat": 4,
"nbformat_minor": 4
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Contents\n",
"\n",
"1. **[Part 1: NumPyro and the Bayesian workflow](../01_numpyro_bayesian_workflow/)** — Linear regression with NUTS and ArviZ; generating data with `Predictive`; prior and posterior predictive (Bayesian workflow).\n",
"\n",
"2. **[Part 2: Dynestyx — discrete-time dynamical systems](../02_dynestyx_discrete_intro/)** — What dynestyx is; separation of concerns; a first model (discrete-time stochastic volatility); context and handlers; generating data with `DiscreteTimeSimulator`; NUTS + simulator for $p(x, \\theta \\mid \\text{data})$.\n",
"\n",
"3. **[Part 3: Filtering and the marginal log-likelihood](../03_filtering_mll/)** — Computing MLL with the particle filter at $\\theta_{\\text{mean}}$ and $\\theta_{\\text{true}}$; switching to Taylor KF; canonical reference placeholder.\n",
"\n",
"4. **[Part 4: Filtering + NUTS — pseudomarginal inference](../04_filtering_nuts_pseudomarginal/)** — Using the filter’s MLL inside NUTS to sample only parameters; when this is “overkill” vs. valuable (with links to be filled).\n",
"\n",
"5. **[Part 5: SVI and warming up NUTS](../05_svi/)** — SVI as a fast alternative; using SVI to initialize NUTS; execution times; rapid prototyping.\n",
"\n",
"6. **[Part 6a: Continuous-time dynamical systems (SDEs)](../06_continuous_time/)** — `ContinuousTimeStateEvolution` (drift, diffusion coefficient, diffusion covariance); `SDESimulator`; Lorenz 63 with partial observations; `LinearGaussianObservation` and $H$; NUTS + EnKF; full-observations deep dive link.\n",
"\n",
"7. **[Part 6b: Continuous-time dynamical systems (ODEs)](../06b_odes/)** - `ContinuousTimeStateEvolution` (drift and no diffusions); `ODESimulator`. Probabilistic numerics coming soon!\n",
"\n",
"8. **[Part 7: Hidden Markov Models (HMMs)](../07_hmm/)** — Working with categorical state spaces models (filtering and Bayesian parameter estimation).\n",
"\n",
"9. **[Part 8: Hierarchical / mixed-effect inference](../08_hierarchical_inference/)** — `plate` for trajectory-level parameters; hierarchical dynamical models and inference.\n",
"\n",
"10. **[Part 9: Discrete-time smoothing](../09_discrete_smoothing/)** — `Smoother` for discrete-time models; smoothed state summaries and future-only posterior rollout.\n",
"\n",
"11. **[Part 10: Continuous-time smoothing](../10_continuous_smoothing/)** — Continuous-discrete smoothing; smoothed state summaries and future-only posterior rollout.\n",
"\n",
"12. **[Part 11: Missing observations with Filters and Smoothers](../11_missing_observations/)** — Whole-row and partial missingness with the cuthbert Kalman filter/smoother path.\n",
"\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."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.12.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Loading
Loading