Include predictions for missing y (NaN) dates in the history (#2530)

Co-authored-by: Imad Rahmouni <rahmim00@futurmaster.com>
This commit is contained in:
iMad 2024-05-18 13:56:55 +02:00 committed by GitHub
parent 7e83e2c27c
commit b4ee8f1b0a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 1 deletions

View file

@ -1130,7 +1130,7 @@ class Prophet(object):
history = df[df['y'].notnull()].copy()
if history.shape[0] < 2:
raise ValueError('Dataframe has less than 2 non-NaN rows.')
self.history_dates = pd.to_datetime(pd.Series(history['ds'].unique(), name='ds')).sort_values()
self.history_dates = pd.to_datetime(pd.Series(df['ds'].unique(), name='ds')).sort_values()
self.history = self.setup_dataframe(history, initialize_scales=True)
self.set_auto_seasonalities()

View file

@ -244,6 +244,16 @@ class TestProphetDataPrep:
assert len(future) == 3
assert np.all(future["ds"].values == correct.values)
def test_make_future_dataframe_include_history(self, daily_univariate_ts, backend):
train = daily_univariate_ts.head(468 // 2).copy()
#cover history with NAs
train.loc[train.sample(10).index, "y"] = np.nan
forecaster = Prophet(stan_backend=backend)
forecaster.fit(train)
future = forecaster.make_future_dataframe(periods=3, freq="D", include_history=True)
assert len(future) == train.shape[0] + 3
class TestProphetTrendComponent:
def test_invalid_growth_input(self, backend):