FactorAugmentedSVAR.identify#
- FactorAugmentedSVAR.identify()[source]#
Identify the factor system and bind the panel map to it.
- Return type:
- 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 ...