PerturbationDSGE.state_space#

PerturbationDSGE.state_space(theta)[source]#

The solution at theta on the substrate its order calls for.

Parameters:

theta (ArrayLike) – Structural parameters in the model’s own space.

Return type:

_LinearGaussianStateSpace | _NonlinearStateSpace

Returns:

A linear-Gaussian system at first order; the pruned nonlinear system at second.

Example

>>> import numpy as np
>>> class Latent:
...     parameter_names, bounds = ("rho", "sigma"), ((0.0, 0.99), (0.01, 1.0))
...     n_states, n_controls = 1, 1
...     def equations(self, th, y_next, y, x_next, x):
...         return np.array([y[0] - x[0], x_next[0] - th[0] * x[0]])
...     def steady_state(self, th):
...         return np.zeros(1), np.zeros(1)
...     def shock_loading(self, th):
...         return np.array([[th[1]]])
...     def observation(self, th):
...         return np.array([[0.0, 1.0]]), np.zeros(1), np.array([[1e-4]])
...     def log_prior(self, th):
...         return 0.0
>>> first = PerturbationDSGE(Latent(), np.zeros(50), order=1).state_space([0.8, 0.5])
>>> second = PerturbationDSGE(Latent(), np.zeros(50), order=2).state_space([0.8, 0.5])
>>> type(first).__name__, type(second).__name__
('_LinearGaussianStateSpace', '_NonlinearStateSpace')