statsmodels.tsa.statespace.kalman_filter.KalmanFilter.impulse_responses

KalmanFilter.impulse_responses(steps=10, impulse=0, orthogonalized=False, cumulative=False, direct=False)[source]

Impulse response function

Parameters

steps : int, optional

The number of steps for which impulse responses are calculated. Default is 10. Note that the initial impulse is not counted as a step, so if steps=1, the output will have 2 entries.

impulse : int or array_like

If an integer, the state innovation to pulse; must be between 0 and k_posdef-1 where k_posdef is the same as in the state space model. Alternatively, a custom impulse vector may be provided; must be a column vector with shape (k_posdef, 1).

orthogonalized : bool, optional

Whether or not to perform impulse using orthogonalized innovations. Note that this will also affect custum impulse vectors. Default is False.

cumulative : bool, optional

Whether or not to return cumulative impulse responses. Default is False.

Returns

impulse_responses : ndarray

Responses for each endogenous variable due to the impulse given by the impulse argument. A (steps + 1 x k_endog) array.

Notes

Intercepts in the measurement and state equation are ignored when calculating impulse responses.

TODO: add note about how for time-varying systems this is - perhaps counter-intuitively - returning the impulse response within the given model (i.e. starting at period 0 defined by the model) and it is not doing impulse responses after the end of the model. To compute impulse responses from arbitrary time points, it is necessary to clone a new model with the appropriate system matrices.