Почему мои прогнозы прогнозируются как NaN? - PullRequest
0 голосов
/ 29 мая 2019

Моя проблема довольно проста, и я знаю, что упускаю что-то очень очевидное, я просто не могу понять, что это такое ...

Мои тестовые прогнозы для Холт-Уинтерса выходяткак NaN, и я не могу понять, почему.Может ли кто-нибудь помочь в этом?

Я использую Блокнот Jupyter и пытаюсь прогнозировать продажи одной SKU, используя метод Холт-Винтерса.Я даже дошел до использования

Вот код, который я использовал:

Импорт библиотек, необходимых для выполнения Holt-Winters

Импорт панд в виде pd Импорт numpy в виде np%Встроенный matplotlib

df = pd.read_csv ('../ Data / M1045_White.csv', index_col = 'Month', parse_dates = True)

Установить столбец месяца в качестве столбца индекса

df.index.freq = 'MS' df.index

df.head ()

df.info () DatetimeIndex: 48 записей, 2015-05-01 to2019-04-01 Freq: MS Столбцы данных (всего 7 столбцов): Продажи 48 ненулевое int64 EWMA12 48 ненулевое float64 SES12 47 ненулевое float64 DESadd12 47 ненулевое float64 DESmul12 47 ненулевое float64 TESadd12 48 ненасыщенноеnull float64 TESmul12 12 ненулевых типов float64: float64 (6), int64 (1) использование памяти: 3,0 КБ

из statsmodels.tsa.holtwinters import SimpleExpSmoothing

Train Test Split

train_data = df.iloc [: 36] # Подходит, но не включает 36 test_data = df.iloc [12:]

Подходит для модели

fit_model = exponentialSmoothing (train_data ['Sales'], тренд = 'mul', сезонный = 'mul', сезонные_периоды = 12) .fit ()

test_predictions = fit_model.forecast (12) .rename ('HW M1045 White Forecast ')

test_predictions

Вот вывод моих прогнозов:

2018-05-01 NaN 2018-06-01 NaN 2018-07-01NaN 2018-08-01 NaN 2018-09-01 NaN 2018-10-01 NaN 2018-11-01 NaN 2018-12-01 NaN 2019-01-01 NaN 2019-02-01 NaN 2019-03-01 NaN 2019-04-01 NaN Freq: MS, имя: HW M1045 White Forecast, dtype: float64

Может кто-нибудь указать, что я пропустил?Кажется, это простая проблема с простым решением, но это пинает мою задницу.

Спасибо!

1 Ответ

0 голосов
/ 29 мая 2019

Ответ связан с тем, что для переменной seasonal_periods установлено значение 12. Если это значение обновляется до 6, то прогнозы дают фактические значения. Я не эксперт в области экспоненциального сглаживания, чтобы понять, почему это так.

...