Szeregi czasowe - wygładzanie wykładnicze
W tym rozdziale omówimy techniki związane z wykładniczym wygładzaniem szeregów czasowych.
Proste wygładzanie wykładnicze
Wygładzanie wykładnicze to technika wygładzania jednowymiarowych szeregów czasowych poprzez przypisywanie wykładniczo malejących wag do danych w okresie czasu.
Matematycznie, wartość zmiennej w czasie „t + 1” podana wartość w czasie t, y_ (t + 1 | t) jest zdefiniowana jako -
$$ y_ {t + 1 | t} \: = \: \ alpha y_ {t} \: + \: \ alpha \ lgroup1 - \ alpha \ rgroup y_ {t-1} \: + \ alpha \ lgroup1- \ alpha \ rgroup ^ {2} \: y_ {t-2} \: + \: ... + y_ {1} $$
gdzie $ 0 \ leq \ alpha \ leq1 $ jest parametrem wygładzania, a
$ y_ {1}, ...., y_ {t} $ są poprzednimi wartościami ruchu sieciowego w czasach 1, 2, 3,…, t.
Jest to prosta metoda modelowania szeregu czasowego bez wyraźnego trendu lub sezonowości. Jednak wygładzanie wykładnicze może być również stosowane w przypadku szeregów czasowych z trendem i sezonowością.
Potrójne wygładzanie wykładnicze
Potrójne wygładzanie wykładnicze (TES) lub metoda Holta Wintera, trzykrotnie stosuje wygładzanie wykładnicze - wygładzanie poziomu $ l_ {t} $, wygładzanie trendu $ b_ {t} $ i wygładzanie sezonowe $ S_ {t} $, z $ \ alpha $ , $ \ beta ^ {*} $ i $ \ gamma $ jako parametry wygładzania z „m” jako częstotliwością sezonowości, tj. liczbą sezonów w roku.
Ze względu na charakter składnika sezonowego TES ma dwie kategorie -
Holt-Winter's Additive Method - Kiedy sezonowość ma charakter addytywny.
Holt-Winter’s Multiplicative Method - Kiedy sezonowość ma charakter multiplikatywny.
W przypadku niesezonowych szeregów czasowych mamy tylko wygładzanie trendu i wygładzanie poziomu, które nazywa się Linear Trend Method Holta.
Spróbujmy zastosować potrójne wygładzanie wykładnicze na naszych danych.
W [316]:
from statsmodels.tsa.holtwinters import ExponentialSmoothing
model = ExponentialSmoothing(train.values, trend= )
model_fit = model.fit()
W [322]:
predictions_ = model_fit.predict(len(test))
W [325]:
plt.plot(test.values)
plt.plot(predictions_[1:1871])
Z [325]:
[<matplotlib.lines.Line2D at 0x1eab00f1cf8>]
Tutaj wytrenowaliśmy model raz z zestawem uczącym, a następnie kontynuujemy przewidywanie. Bardziej realistycznym podejściem jest ponowne trenowanie modelu po jednym lub kilku krokach czasowych. Gdy otrzymujemy prognozę dla czasu „t + 1” z danych uczących „do czasu„ t ”, następną prognozę dla czasu„ t + 2 ”można wykonać przy użyciu danych uczących„ do czasu t + 1 ”jako rzeczywistego będzie wtedy znana wartość „t + 1”. Ta metodologia tworzenia prognoz dla jednego lub większej liczby przyszłych kroków, a następnie ponownego uczenia modelu jest nazywana prognozą kroczącą lub walidacją krok naprzód.