FactorAugmentedSVAR.identify#

FactorAugmentedSVAR.identify()[source]#

Identify the factor system and bind the panel map to it.

Return type:

FactorAugmentedSVARResult

Returns:

The panel-scale structural result. When no identification was supplied, the factor VAR is factorized recursively with the observed block last – the Bernanke-Boivin-Eliasz convention – or in the declared ordering.

Raises:
  • SpecificationError – If a declared ordering is not a permutation of the factor-system names.

  • NumericalError – If the factor VAR’s innovation covariance is not positive definite.

Example

Ordering the observed block first lets its shock move the factor on impact; a name outside the factor system is refused:

>>> import numpy as np
>>> from cultivars.multivariate.large_dim.factor_augmented import FAVAR
>>> rng = np.random.default_rng(0)
>>> panel, policy = rng.standard_normal((120, 5)), rng.standard_normal((120, 1))
>>> res = FAVAR(panel, policy, n_factors=1, order=1, observed_names=("r",)).fit()
>>> default = FactorAugmentedSVAR(res).identify()
>>> first = FactorAugmentedSVAR(res, order=("r", "f1")).identify()
>>> default.shock_names, first.shock_names
(('f1', 'r'), ('r', 'f1'))
>>> float(default.factor_irf(0)[0][0, 1]), bool(first.factor_irf(0)[0][0, 0] != 0.0)
(0.0, True)
>>> FactorAugmentedSVAR(res, order=("r", "z")).identify()
Traceback (most recent call last):
cultivars.exceptions.SpecificationError: order must be a permutation of the variable ...