Skip to content

Choosing Lag Order

Impulso provides two ways to set the lag order for your VAR model.

Fixed lag order

If you know the lag order you want, pass an integer:

from impulso import VAR

spec = VAR(lags=4, prior="minnesota")

Automatic selection via information criteria

Pass a criterion name ("aic", "bic", or "hq") and Impulso selects the optimal lag via OLS:

spec = VAR(lags="bic", prior="minnesota")

You can cap the search range:

spec = VAR(lags="aic", max_lags=12, prior="minnesota")

Inspecting the criteria table

Use select_lag_order directly to see all criteria values:

from impulso import select_lag_order

ic = select_lag_order(data, max_lags=8)
print(f"AIC selects {ic.aic} lags, BIC selects {ic.bic} lags")
ic.summary()  # Returns a DataFrame with all criteria by lag