Rangkaian Waktu - Pemulusan Eksponensial

Dalam bab ini, kita akan membahas tentang teknik yang terlibat dalam pemulusan eksponensial deret waktu.

Pemulusan Eksponensial Sederhana

Exponential Smoothing adalah teknik untuk menghaluskan deret waktu univariat dengan menetapkan bobot yang menurun secara eksponensial pada data selama periode waktu tertentu.

Secara matematis, nilai variabel pada waktu 't + 1' nilai yang diberikan pada waktu t, y_ (t + 1 | t) didefinisikan sebagai -

$$ y_ {t + 1 | t} \: = \: \ alpha y_ {t} \: + \: \ alpha \ lgroup1 - \ alpha \ rgroup y_ {t-1} \: + \ alpha \ lgroup1- \ alpha \ rgroup ^ {2} \: y_ {t-2} \: + \: ... + y_ {1} $$

di mana, $ 0 \ leq \ alpha \ leq1 $ adalah parameter penghalusan, dan

$ y_ {1}, ...., y_ {t} $ adalah nilai lalu lintas jaringan sebelumnya pada waktu 1, 2, 3,…, t.

Ini adalah metode sederhana untuk membuat model deret waktu tanpa tren atau kemusiman yang jelas. Tetapi pemulusan eksponensial juga dapat digunakan untuk deret waktu dengan tren dan kemusiman.

Pemulusan Eksponensial Tiga Kali Lipat

Triple Exponential Smoothing (TES) atau metode Holt's Winter, menerapkan pemulusan eksponensial tiga kali - pemulusan level $ l_ {t} $, pemulusan tren $ b_ {t} $, dan pemulusan musiman $ S_ {t} $, dengan $ \ alpha $ , $ \ beta ^ {*} $ dan $ \ gamma $ sebagai parameter penghalusan dengan 'm' sebagai frekuensi kemusiman, yaitu jumlah musim dalam satu tahun.

Menurut sifat komponen musiman, TES memiliki dua kategori -

  • Holt-Winter's Additive Method - Ketika musim bersifat aditif.

  • Holt-Winter’s Multiplicative Method - Ketika musim bersifat multiplikatif.

Untuk deret waktu non-musiman, kami hanya memiliki penghalusan tren dan penghalusan level, yang disebut Metode Tren Linear Holt.

Mari coba terapkan pemulusan eksponensial tiga kali lipat pada data kita.

Dalam [316]:

from statsmodels.tsa.holtwinters import ExponentialSmoothing

model = ExponentialSmoothing(train.values, trend= )
model_fit = model.fit()

Dalam [322]:

predictions_ = model_fit.predict(len(test))

Dalam [325]:

plt.plot(test.values)
plt.plot(predictions_[1:1871])

Keluar [325]:

[<matplotlib.lines.Line2D at 0x1eab00f1cf8>]

Di sini, kami telah melatih model satu kali dengan set pelatihan dan kemudian kami terus membuat prediksi. Pendekatan yang lebih realistis adalah melatih kembali model setelah satu atau beberapa langkah waktu. Karena kita mendapatkan prediksi waktu 't + 1' dari data latih 'til time' t ', maka prediksi waktu' t + 2 'selanjutnya dapat dibuat dengan menggunakan data latih' til time 't + 1' sebagai nilai pada 't + 1' akan diketahui kemudian. Metodologi dalam membuat prediksi untuk satu atau beberapa langkah di masa mendatang dan kemudian melatih kembali model ini disebut perkiraan bergulir atau validasi berjalan ke depan.