Impulso¶
Bayesian Vector Autoregression in Python.
import pandas as pd
from impulso import VAR, VARData
from impulso.identification import Cholesky
# Load data
df = pd.read_csv("macro_data.csv", index_col="date", parse_dates=True)
data = VARData.from_df(df, endog=["gdp", "inflation", "rate"])
# Estimate
fitted = VAR(lags="bic", prior="minnesota").fit(data)
# Forecast
forecast = fitted.forecast(steps=8)
forecast.median() # point forecasts
forecast.hdi() # credible intervals
# Structural analysis
identified = fitted.set_identification_strategy(Cholesky(ordering=["gdp", "inflation", "rate"]))
irf = identified.impulse_response(horizon=20)
irf.plot()
We currently have some availability for consulting on how Bayesian modelling, vector autoregressions, and impulso can be integrated into your team's macroeconomic and financial forecasting work. If this sounds relevant, book an introductory call. These calls are for consulting inquiries only. For technical usage questions and free community support, please use GitHub Discussions and the documentation below.
Features¶
- Validated data containers —
VARDatacatches shape mismatches, missing values, and type errors at construction time - Immutable pipeline —
VARData->VAR->FittedVAR->IdentifiedVAR, each stage frozen after creation - Economist-friendly API — think in variables and lags, not tensors and MCMC chains
- Minnesota prior — smart defaults with tunable hyperparameters for shrinkage
- Automatic lag selection — AIC, BIC, and Hannan-Quinn criteria
- PyMC backend — full Bayesian estimation with NUTS sampling
- Probabilistic forecasts — posterior median, HDI credible intervals, tidy DataFrames
- Structural identification — Cholesky and sign restriction schemes
- Built-in plotting — IRF, FEVD, forecast, and historical decomposition plots
Installation¶
Learn more¶
- Quickstart tutorial — fit your first Bayesian VAR
- Forecasting tutorial — produce probabilistic forecasts
- Structural analysis tutorial — impulse responses and variance decompositions
- API Reference — complete module documentation