def __init__(self, *args, **kwargs): # Dummy data endog = np.arange(10) k_states = 1 self.model = KalmanSmoother(k_endog=1, k_states=k_states, *args, **kwargs) self.model.bind(endog)
class Options(object): def __init__(self, *args, **kwargs): # Dummy data endog = np.arange(10) k_states = 1 self.model = KalmanSmoother(k_endog=1, k_states=k_states, *args, **kwargs) self.model.bind(endog)
def model_local_linear_trend(endog=None, params=None, direct=False): if endog is None: y1 = 10.2394 y2 = 4.2039 y3 = 6.123123 endog = np.r_[y1, y2, y3, [1] * 7] if params is None: params = [1.993, 8.253, 2.334] sigma2_y, sigma2_mu, sigma2_beta = params if direct: mod = None # Construct the basic representation ssm = KalmanSmoother(k_endog=1, k_states=2, k_posdef=2) ssm.bind(endog) init = Initialization(ssm.k_states, initialization_type='diffuse') ssm.initialize(init) # ssm.filter_univariate = True # should not be required # Fill in the system matrices for a local level model ssm['design', 0, 0] = 1 ssm['obs_cov', 0, 0] = sigma2_y ssm['transition'] = np.array([[1, 1], [0, 1]]) ssm['selection'] = np.eye(2) ssm['state_cov'] = np.diag([sigma2_mu, sigma2_beta]) else: mod = UnobservedComponents(endog, 'lltrend') mod.update(params) ssm = mod.ssm ssm.initialize(Initialization(ssm.k_states, 'diffuse')) return mod, ssm
def model_local_level(endog=None, params=None, direct=False): if endog is None: y1 = 10.2394 endog = np.r_[y1, [1] * 9] if params is None: params = [1.993, 8.253] sigma2_y, sigma2_mu = params if direct: mod = None # Construct the basic representation ssm = KalmanSmoother(k_endog=1, k_states=1, k_posdef=1) ssm.bind(endog) init = Initialization(ssm.k_states, initialization_type='diffuse') ssm.initialize(init) # ssm.filter_univariate = True # should not be required # Fill in the system matrices for a local level model ssm['design', :] = 1 ssm['obs_cov', :] = sigma2_y ssm['transition', :] = 1 ssm['selection', :] = 1 ssm['state_cov', :] = sigma2_mu else: mod = UnobservedComponents(endog, 'llevel') mod.update(params) ssm = mod.ssm ssm.initialize(Initialization(ssm.k_states, 'diffuse')) return mod, ssm
def model_common_level(endog=None, params=None, restricted=False): if endog is None: y11 = 10.2394 y21 = 8.2304 endog = np.column_stack([np.r_[y11, [1] * 9], np.r_[y21, [1] * 9]]) if params is None: params = [0.1111, 3.2324] theta, sigma2_mu = params # sigma2_1 = 1 # sigma_12 = 0 # sigma2_2 = 1 if not restricted: # Construct the basic representation ssm = KalmanSmoother(k_endog=2, k_states=2, k_posdef=1) ssm.bind(endog.T) init = Initialization(ssm.k_states, initialization_type='diffuse') ssm.initialize(init) # ssm.filter_univariate = True # should not be required # Fill in the system matrices for a common trend model ssm['design'] = np.array([[1, 0], [theta, 1]]) ssm['obs_cov'] = np.eye(2) ssm['transition'] = np.eye(2) ssm['selection', 0, 0] = 1 ssm['state_cov', 0, 0] = sigma2_mu else: # Construct the basic representation ssm = KalmanSmoother(k_endog=2, k_states=1, k_posdef=1) ssm.bind(endog.T) init = Initialization(ssm.k_states, initialization_type='diffuse') ssm.initialize(init) # ssm.filter_univariate = True # should not be required # Fill in the system matrices for a local level model ssm['design'] = np.array([[1, theta]]).T ssm['obs_cov'] = np.eye(2) ssm['transition', :] = 1 ssm['selection', :] = 1 ssm['state_cov', :] = sigma2_mu return ssm
def setup_class(cls, *args, **kwargs): # Dummy data endog = np.arange(10) k_states = 1 cls.model = KalmanSmoother(k_endog=1, k_states=k_states, *args, **kwargs) cls.model.bind(endog)