ExponentialSmoothing
- это не инструмент для сглаживания данных временных рядов, это метод прогнозирования временных рядов .
Fit () Функция вернет экземпляр класса HoltWintersResults, который содержит изученные коэффициенты. Функция прогнозирования () или прогнозирования () на результирующем объекте может быть вызвана для создания прогноза.
Таким образом, вызывая predict
, класс будет делать прогноз, используя изученный коэффициенты.
Однако, чтобы сгладить временной ряд, вы можете использовать атрибут fittedvalues
, так как @ smar ie указывает на
Однако я бы go с более подходящим инструментом, таким как savgol_filter
:
from scipy.signal import savgol_filter
savgol_filter(oildata, 5, 3)
array([444.87816 , 461.58666 , 444.99296 , 441.70785143,
442.40769143, 438.36852857, 441.50125714, 472.05622571,
512.20891429, 521.74822857, 517.63141429, 493.37037143])
Как упоминалось в комментариях, фильтр savgol выполняет локальное приближение Тейлора к заданному polyorder
для данного размера окна (window_length
) и приводит к сглаживанию временного ряда.
Вот как это выглядело бы с вышеприведенной настройкой:
plt.plot(oildata)
plt.plot(pd.Series(savgol_filter(oildata, 5, 3), index=oildata.index))
plt.show()