Я работаю над прогнозом некоторых временных рядов, и мне нужно сравнить разные методы с использованием python.Практически мне нужно сгенерировать некоторые прогнозы с использованием тройного экспоненциального сглаживания, и я использую эту библиотеку и соответствующие функции, такие как this .Мой временной ряд имеет такой формат, как объект pd.Series:
Date Close
2016-04-11 01:17:04 -10.523793
2016-04-11 07:25:13 -5.352295
2016-04-11 22:40:11 92.556003
2016-04-13 05:06:31 -1.769866
2016-04-13 05:17:50 -2.330789
2016-04-14 08:43:09 17.636638
2016-04-17 21:15:12 -0.454655
2016-04-19 06:10:04 -0.026375
2016-04-19 06:10:04 -0.175647
...
Я написал следующие строки на python:
from statsmodels.tsa.holtwinters import ExponentialSmoothing
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
train_size = int(len(myTimeSeries) * 0.66)
train, test = myTimeSeries[1:train_size], myTimeSeries[train_size:]
model = ExponentialSmoothing(train)
model_fit = model.fit()
dict=model.params
params=np.array(list(dict.items()))
dates=test.index.astype(str)
pred = model.predict(params,start=dates[2], end=dates[-1])
plt.plot(train, label='Train')
plt.plot(test, label='Test')
plt.plot(pred, label='Holt-Winters')
plt.legend(loc='best')
У меня была проблема с функцией model.predict
, поэтому япо мере необходимости добавлял значения параметров, получая их из класса model
после его fit
.Я не уверен, что у меня все хорошо, но я не нашел столько вокруг .Кроме того, у меня возникла проблема с установкой даты начала (и, возможно, также конца).Он возвращает это: KeyError: 'The
start argument could not be matched to a location related to the index of the data.'
Как я обнаружил здесь , я также перенес дату начала прогноза в третье значение, то есть индекс [2] набора тестовых данных.Я получил то же самое, если я установил [0], [1] и т. Д. Что с этим не так?
Как вы можете видеть, myTimeSeries не имеет фиксированной частоты, но набор значенийслучайным образом.Я нашел разные учебники, такие как , , , этот или , по теории , но они не в тех же условиях: я незнать любые новости (тренд, сезонность и т. д.) о моем наборе данных.Я не нашел никаких нарушенных гипотез для этого: предупредите меня, если я ошибаюсь.Я имел обыкновение рассматривать мое руководство по теории, что я нашел здесь .Более того, этот пост охватывает аналогичную проблему, но не совсем то же самое.