gEconpy.model.model.check_bk_condition#

gEconpy.model.model.check_bk_condition(model, *, A=None, B=None, C=None, D=None, tol=1e-08, on_failure='ignore', return_value='dataframe', **linearize_model_kwargs)#

Compute the generalized eigenvalues of system in the form presented in [1].

Per [2], the number of unstable eigenvalues (\(|v| > 1\)) should not be greater than the number of forward-looking variables. Failing this test suggests timing problems in the definition of the model.

Parameters:
model: Model

DSGE model

A: np.ndarray

Jacobian matrix of the DSGE system, evaluated at the steady state, taken with respect to past variables values that are known when decision-making: those with t-1 subscripts.

B: np.ndarray

Jacobian matrix of the DSGE system, evaluated at the steady state, taken with respect to variables that are observed when decision-making: those with t subscripts.

C: np.ndarray

Jacobian matrix of the DSGE system, evaluated at the steady state, taken with respect to variables that enter in expectation when decision-making: those with t+1 subscripts.

D: np.ndarray

Jacobian matrix of the DSGE system, evaluated at the steady state, taken with respect to exogenous shocks.

verbose: bool, default: True

Flag to print the results of the test, otherwise the eigenvalues are returned without comment.

on_failure: str, default: ‘ignore’

Action to take if the Blanchard-Kahn condition is not satisfied. Valid values are ‘ignore’ and ‘raise’.

return_value: string, default: ‘dataframe’

Controls what is returned by the function. Valid values are ‘dataframe’, ‘bool’, and ‘none’. If df, a dataframe containing eigenvalues is returned. If ‘bool’, a boolean indicating whether the BK condition is satisfied. If None, nothing is returned.

tol: float, 1e-8

Tolerance below which numerical values are considered zero

Returns:
bk_result, bool or pd.DataFrame, optional.

Return value requested. Datatype corresponds to what was requested in the return_value argument:

  • None, If return_value is ‘none’

  • condition_satisfied, bool; if return_value is ‘bool’, returns True if the Blanchard-Kahn condition is satisfied, False otherwise.

  • Eigenvalues, pd.DataFrame, if return_value is ‘df’, returns a dataframe containing the real and imaginary components of the system’s eigenvalues, along with their modulus.