def _build_sts(self, observed_time_series=None): max_timesteps = 100 num_features = 3 return DynamicLinearRegression( design_matrix=tf.random.normal([max_timesteps, num_features]), observed_time_series=observed_time_series)
def _build_sts(self, observed_time_series=None): max_timesteps = 100 num_features = 3 return DynamicLinearRegression( design_matrix=np.random.randn(max_timesteps, num_features).astype(np.float32), observed_time_series=observed_time_series)
def test_matrices_from_component(self): num_timesteps = 4 num_features = 3 drift_scale = 1.23 design_matrix = self._build_placeholder( np.random.randn(num_timesteps, num_features)) component = DynamicLinearRegression(design_matrix=design_matrix) ssm = component.make_state_space_model(num_timesteps, [drift_scale]) for t in range(num_timesteps): observation_matrix = self.evaluate( ssm.get_observation_matrix_for_timestep(t).to_dense()) self.assertAllClose(self.evaluate(design_matrix[tf.newaxis, t]), observation_matrix) observation_noise_mean = self.evaluate( ssm.get_observation_noise_for_timestep(t).mean()) observation_noise_covariance = self.evaluate( ssm.get_observation_noise_for_timestep(t).covariance()) self.assertAllClose([0.0], observation_noise_mean) self.assertAllClose([[0.0]], observation_noise_covariance) transition_matrix = self.evaluate( ssm.get_transition_matrix_for_timestep(t).to_dense()) self.assertAllClose(np.eye(num_features), transition_matrix) transition_noise_mean = self.evaluate( ssm.get_transition_noise_for_timestep(t).mean()) transition_noise_covariance = self.evaluate( ssm.get_transition_noise_for_timestep(t).covariance()) self.assertAllClose(np.zeros([num_features]), transition_noise_mean) self.assertAllClose( np.square(drift_scale) * np.eye(num_features), transition_noise_covariance)
def _build_sts(self, observed_time_series=None): max_timesteps = 100 num_features = 3 dtype = np.float32 if observed_time_series is not None: observed_time_series_tensor, _ = ( sts_util.canonicalize_observed_time_series_with_mask( observed_time_series)) dtype = dtype_util.as_numpy_dtype(observed_time_series_tensor.dtype) return DynamicLinearRegression( design_matrix=np.random.randn( max_timesteps, num_features).astype(dtype), observed_time_series=observed_time_series)