Skip to content

v0.1.0

Choose a tag to compare

@thomaspinder thomaspinder released this 28 Sep 07:13
· 49 commits to main since this release
4b282ce

Highlights

Impulso 0.1.0 makes a VAR embeddable in a PyMC model you already own, alongside the standalone VAR.fit workflow.

  • VAR.build_in_model: registers a VAR into the active PyMC model and returns handles to its variables. fit and prior_predictive now go through the same code path. Namespacing works through a nested named pm.Model.
  • Symbolic data: the observed block can be a PyTensor tensor, e.g. pm.Data. Its likelihood is then a pm.Potential.
  • Latent endogenous series: latent_names generates unobserved series inside the model from standard-normal innovations (non-centred). The observed likelihood is conditional on the innovations, and a stationarity constraint on the latent block keeps sampling stable.
  • MinnesotaPrior(own_lag_mean=...): the textbook per-variable own-lag mean. Use 0 for stationary series.
  • FittedVAR.from_posterior: validated construction of a FittedVAR from a posterior you produced elsewhere.
  • VAR specs round-trip through model_dump and model_validate, in python and JSON mode.

The design and its evidence are recorded in ADR-0016.

Upgrading from 0.0.14

There are no breaking changes to released APIs. The breaking changes of this development cycle (Minnesota cross-lag scaling in ADR-0015, the required sigma argument to Prior.build_priors, ErrorDistribution.logp, and rejection of constant endogenous columns) shipped in 0.0.14.

Known limits:

  • Latent series support Gaussian errors only.
  • A ConjugateVolatility subclass (e.g. PandemicBreak) does not round-trip through model_dump.
  • The latent stationarity constraint's eig is untested on the JAX backend.

What's Changed

🚀 Features

  • feat: accept a symbolic observed endog in build_in_model by @thomaspinder in #342
  • feat: generate latent series non-centred in build_in_model by @thomaspinder in #344
  • feat: latent own-lag mean, stationary init and stationarity constraint by @thomaspinder in #346
  • feat: reject embedded-path options build_in_model can't support by @thomaspinder in #348

🐛 Bug Fixes

  • fix: name the actual source in endog_scales validation errors by @thomaspinder in #340
  • fix: make VAR specs round-trip through model_dump/model_validate by @thomaspinder in #354

💥 Breaking Changes

📖 Documentation

Full Changelog: v0.0.14...v0.1.0