def test_dlt_aggregated_with_regression(synthetic_data, estimator_type, regressor_signs): train_df, test_df, coef = synthetic_data dlt = DLTAggregated(response_col='response', date_col='week', regressor_col=train_df.columns.tolist()[2:], regressor_sign=regressor_signs, seasonality=52, num_warmup=50, verbose=False, estimator_type=estimator_type) dlt.fit(train_df) predict_df = dlt.predict(test_df) regression_out = dlt.get_regression_coefs() num_regressors = regression_out.shape[0] expected_columns = ['week', 'prediction_5', 'prediction', 'prediction_95'] expected_shape = (51, len(expected_columns)) expected_regression_shape = (6, 3) assert predict_df.shape == expected_shape assert predict_df.columns.tolist() == expected_columns assert regression_out.shape == expected_regression_shape assert num_regressors == len(train_df.columns.tolist()[2:]) predict_df = dlt.predict(test_df, decompose=True) assert any(predict_df['regression'].values)
def test_dlt_aggregated_univariate(synthetic_data, estimator_type): train_df, test_df, coef = synthetic_data dlt = DLTAggregated(response_col='response', date_col='week', seasonality=52, num_warmup=50, verbose=False, estimator_type=estimator_type) dlt.fit(train_df) predict_df = dlt.predict(test_df) expected_columns = ['week', 'prediction'] expected_shape = (51, len(expected_columns)) expected_num_parameters = 13 assert predict_df.shape == expected_shape assert predict_df.columns.tolist() == expected_columns assert len(dlt._posterior_samples) == expected_num_parameters
def test_dlt_aggregated_univariate(synthetic_data, estimator_type): train_df, test_df, coef = synthetic_data dlt = DLTAggregated(response_col='response', date_col='week', seasonality=52, num_warmup=50, verbose=False, estimator_type=estimator_type) dlt.fit(train_df) init_call = dlt.get_init_values() assert isinstance(init_call, DLTInitializer) assert init_call.s == 52 init_values = init_call() assert init_values['init_sea'].shape == (51, ) predict_df = dlt.predict(test_df) expected_columns = ['week', 'prediction_5', 'prediction', 'prediction_95'] expected_shape = (51, len(expected_columns)) expected_num_parameters = 12 assert predict_df.shape == expected_shape assert predict_df.columns.tolist() == expected_columns assert len(dlt._posterior_samples) == expected_num_parameters