def test_to_relative(freq: str): """Test conversion to relative. Fixes bug in https://github.com/alan-turing-institute/sktime/issues/1935#issue-1114814142 """ freq = "2H" t = pd.date_range(start="2021-01-01", freq=freq, periods=5) fh_abs = ForecastingHorizon(t, is_relative=False) fh_rel = fh_abs.to_relative(cutoff=t.min()) assert_array_equal(fh_rel, np.arange(5))
def test_VAR_against_statsmodels(): """Compares Sktime's and Statsmodel's VAR.""" train, test = temporal_train_test_split(df) sktime_model = VAR() fh = ForecastingHorizon([1, 3, 4, 5, 7, 9]) sktime_model.fit(train) y_pred = sktime_model.predict(fh=fh) stats = _VAR(train) stats_fit = stats.fit() fh_int = fh.to_relative(train.index[-1]) lagged = stats_fit.k_ar y_pred_stats = stats_fit.forecast(train.values[-lagged:], steps=fh_int[-1]) new_arr = [] for i in fh_int: new_arr.append(y_pred_stats[i - 1]) assert_allclose(y_pred, new_arr)