Model Exponential Smoothing

11.2. Model Exponential Smoothing

Prinsip dari metode Exponential Smoothing adalah menggunakan nilai peng‐ halusan secara eksponensial sebagai ramalan dari kejadian di satu waktu yang akan datang, Y ˆ t + k . Secara umum ada tiga macam model eksponensial, yaitu eksponensial sederhana (untuk data dengan pola stasioner), eksponensial ganda yang dikenal dengan model Holt (untuk data dengan pola tren), dan model Holt‐Winters (untuk data dengan pola musiman dengan atau tanpa tren).

R menyediakan fasilitas untuk ketiga model tersebut dengan satu perintah yaitu HoltWinters. Penggunaan dari perintah ini adalah seperti berikut.

HoltWinters(x, alpha = NULL, beta = NULL, gamma = NULL, seasonal = c("additive", "multiplicative"), start.periods = 3, l.start = NULL, b.start = NULL, s.start = NULL, optim.start = c(alpha = 0.3, beta = 0.1, gamma = 0.1), optim.control = list())

Perintah HoltWinters ini memiliki beberapa argumen yang dapat digunakan untuk menentukan pemilihan metode eksponensial smoothing mana yang akan dipilih. Berikut ini adalah argumen yang dapat dipilih pada perintah HoltWinters.

Argumen Keterangan

x An object of class ts alpha

alpha parameter of Holt‐Winters Filter. beta

beta parameter of Holt‐Winters Filter. If set to 0, the function will do exponential smoothing.

gamma gamma parameter used for the seasonal component. If set to

0, an non‐seasonal model is fitted. seasonal

Character string to select an "additive" (the default) or "multiplicative" seasonal model. The first few characters are sufficient. (Only takes effect if gamma is non‐ zero).

start.periods Start periods used in the autodetection of start values. Must

be at least 3.

l.start Start value for level (a[0]). b.start

Start value for trend (b[0]). s.start

Vector of start values for the seasonal component (s_1[0]...s_p[0])

optim.start Vector with named components alpha, beta, and gamma containing the starting values for the optimizer. Only the values needed must be specified. Ignored in the one‐ parameter case.

optim.control Optional list with additional control parameters passed to optim if this is used. Ignored in the one‐parameter case.

Model Holt‐Winters yang disediakan di R terdiri dari dua pilihan, yaitu model aditif dan multiplikatif. Model aditif digunakan pada data runtun waktu dengan pola seasonal dengan variasi musiman konstan. Sedangkan model multiplikatif digunakan untuk data dengan pola seasonal yang mengandung variasi tidak konstan.

Fungsi prediksi pada model Holt‐Winters aditif (untuk runtun waktu dengan panjang periode p) adalah

Yhat[t+h] = a[t] + h * b[t] + s[t + 1 + (h ‐ 1) mod p],

dengan a[t], b[t] dan s[t] adalah

a[t] = α (Y[t] ‐ s[t‐p]) + (1‐α) (a[t‐1] + b[t‐1]) b[t] = β (a[t] ‐ a[t‐1]) + (1‐β) b[t‐1] s[t] = gamma (Y[t] ‐ a[t]) + (1‐gamma) s[t‐p].

Sedangkan fungsi prediksi pada model Holt‐Winters multiplikatif (untuk runtun waktu dengan panjang periode p) adalah

Yhat[t+h] = (a[t] + h * b[t]) * s[t + 1 + (h ‐ 1) mod p],

dengan a[t], b[t] dan s[t] adalah

a[t] = α (Y[t] / s[t‐p]) + (1‐α) (a[t‐1] + b[t‐1]) b[t] = β (a[t] ‐ a[t‐1]) + (1‐β) b[t‐1] s[t] = gamma (Y[t] / a[t]) + (1‐gamma) s[t‐p].

Fungsi ini bekerja untuk mendapatkan nilai‐nilai optimal dari α dan/atau β dan/atau gamma dengan meminimalkan kuadrat dari error prediksi satu‐tahap.

11.2.1. Model Holt‐Winters Aditif

Sebagai contoh kasus, misalkan akan dilakukan peramalan CO 2 pada data co2 yang sudah tersedia di R. Dengan menulis langsung nama data tersebut pada R‐Console, maka akan diperoleh tampilan data runtun waktu mulai Januari 1959 sampai dengan Desember 1997. Sebagai tahap awal, identifikasi pola data dapat dilakukan dengan menampilkan plot time series dengan menggunakan perintah plot(x). Output dari plot tersebut dapat dilihat pada Gambar 11.2. Dari gambar tersebut dapat dilihat bahwa data mengandung pola tren dan seasonal dengan variasi relatif konstan. Dengan demikian model Holt‐Winters aditif adalah sesuai untuk diterapkan guna peramalan pada data.

Gambar

11.2. Output model tren linear pada data AirPassengers

Berikut adalah script R yang digunakan untuk menerapkan model Holt‐Winters aditif pada data CO 2 yang sudah tersedia di R.

> # Seasonal Additive Holt‐Winters

> co2 > plot(co2) # menampilkan plot time series dari data > model1 <‐ HoltWinters(co2) # menerapkan Holt‐Winters aditif (default) > fore1 <‐ predict(model1, 50, prediction.interval = TRUE) > plot(model1,fore1) > plot(fitted(model1))

Script di atas menghasilan koefisien‐koefisien yang optimal pada model Holt‐Winters aditif (model1), nilai ramalan 50 periode yang akan datang, dan grafik antara nilai aktual, prediksi dan ramalan 50 periode yang akan datang. Perintah terakhir menghasilkan plot tiap ‐tiap komponen data, yaitu level, trend, dan seasonal, serta nilai ramalan. Berikut ini adalah output lengkap pada masing‐masing perintah diatas.

> model1

Holt ‐Winters exponential smoothing with trend and additive seasonal component.

Call: HoltWinters(x = co2)

Smoothing parameters: alpha: 0.4907075 beta : 0.01197529 gamma: 0.4536582

Coefficients: [,1] a 364.6866567 b 0.1268701 s1 0.2812220 s2 1.0173743 s3 1.6642371 s4 2.9411121 s5 3.3487805 s6 2.5064789 s7 0.9613233 s8 -1.3122489 s9 -3.3464772 s10 -3.1988220 s11 -1.8558114 s12 -0.5254438

> fore1 fit upr lwr Jan 1998 365.0947 365.6900 364.4995 Feb 1998 365.9578 366.6224 365.2931 Mar 1998 366.7315 367.4603 366.0027 Apr 1998 368.1352 368.9244 367.3461 May 1998 368.6698 369.5162 367.8234 …… …… Oct 2001 367.3239 369.9810 364.6667 Nov 2001 368.7937 371.4892 366.0983 Dec 2001 370.2510 372.9848 367.5171 Jan 2002 371.1845 373.9829 368.3861 Feb 2002 372.0475 374.8841 369.2110

Output diatas menunjukkan bahwa nilai parameter smoothing yang optimal adalah alpha=0.49, beta=0.01, dan gamma=0.45. Koefisien‐koefisien a dan b, serta koefisien seasonal (s1,s2,…,s12) juga diberikan. Selanjutnya juga diberikan nilai‐nilai ramalan 50 periode kedepan beserta taksiran batas atas dan bawah. Pada akhirnya plot komponen data, serta perbandingan antara nilai aktual dan ramalan ditampilkan seperti pada Gambar 11.3 dan 11.4

Gambar

11.3. Nilai aktual dan ramalan pada data CO 2

Gambar

11.4. Nilai‐nilai komponen level, trend, dan seasonal pada data CO 2

11.2.2. Model Holt‐Winters Multiplikatif

Misalkan akan dilakukan peramalan jumlah penumpang pesawat udara pada data AirPassengers yang sudah tersedia di R. Sebagai tahap awal, identifikasi pola data dapat dilakukan dengan menampilkan plot time series (lihat Gambar 11.1) menunjukkan bahwa data mengandung pola tren dan seasonal dengan variasi yang cenderung meningkat. Dengan demikian salah satu model yang sesuai untuk peramalan pada data AirPassengers ini adalah model Holt‐Winters multiplikatif.

Berikut adalah script R yang digunakan untuk menerapkan model Holt‐Winters multiplikatif pada data AirPassengers yang sudah tersedia di R.

> # Seasonal Multiplicative Holt‐Winters

> AirPassengers > plot(AirPassengers) # menampilkan plot time series dari data > model2 <‐ HoltWinters(AirPassengers, seasonal=”mult”) > fore2 <‐ predict(model2, 24, prediction.interval = TRUE) > plot(model2,fore2) > plot(fitted(model2))

Script di atas menghasilan koefisien‐koefisien yang optimal pada model Holt‐Winters multiplikatif (model2), nilai ramalan 24 periode yang akan datang, dan grafik antara nilai aktual dan ramalan 24 periode yang akan datang. Perintah terakhir menghasilkan plot tiap ‐tiap komponen data, yaitu level, trend, dan seasonal, serta nilai ramalan. Berikut ini adalah sebagian output pada perintah‐perintah diatas.

> model2

Holt ‐Winters exponential smoothing with trend and multiplicative seasonal component.

Call:

HoltWinters(x = AirPassengers, seasonal = "mult")

Smoothing parameters: alpha: 0.274855 beta : 0.01745283 gamma: 0.8766261

Coefficients:

[,1] a 475.6200718 … dan seterusnya.

Plot komponen data, serta perbandingan antara nilai aktual dan ramalan ditampilkan seperti pada Gambar 11.5 dan 11.6 berikut ini.

Gambar

11.5. Nilai aktual dan ramalan pada data AirPassengers

Gambar

11.6. Nilai komponen level, trend, dan seasonal pada AirPassengers

11.2.3. Model Holt‐Winters Non‐seasonal atau Model Eksponensial Ganda

Misalkan akan dilakukan peramalan jumlah populasi penduduk United States (dalam juta jiwa) pada data uspop yang sudah tersedia di R (ditambah suatu error). Tahap awal identifikasi pola data menunjukkan bahwa data mengandung pola tren yang cenderung meningkat. Dengan demikian salah satu model yang sesuai untuk peramalan pada data uspop ini adalah model eksponensial ganda atau Holt‐Winters non‐seasonal.

Berikut adalah script R yang digunakan untuk menerapkan model Holt‐Winters non ‐seasonal pada data uspop yang sudah tersedia di R, serta beberapa output dari perintah ‐perintah tersebut.

> # Non‐Seasonal Holt‐Winters

> uspop

Time Series: Start = 1790 End = 1970 Frequency = 0.1 [1] 3.93 5.31 7.24 9.64 12.90 17.10 23.20 31.40 39.80 50.20 [11]

> x <‐ uspop + rnorm(uspop, sd = 5) # error N(0,5) ditambahkan ke data uspop > model3 <‐ HoltWinters(x, gamma = 0) # gamma=0 untuk eksponensial ganda > model3

Holt ‐Winters exponential smoothing with trend and without seasonal component.

Call:

HoltWinters(x = x, gamma = 0)

Smoothing parameters: alpha: 0.5747944 beta : 1 gamma: 0

Coefficients:

[,1] a 201.89779 b 29.71546

> model3$SSE # nilai SSE dari model Holt‐Winters non‐seasonal

> fore3 <‐ predict(model3, 5, prediction.interval = TRUE) # ramalan 5 tahun kedepan

> plot(model3,fore3)

Plot perbandingan antara nilai aktual dan ramalan dari model Holt‐Winter non‐seasonal pada data uspop adalah sebagai berikut.

Gambar

11.7. Nilai aktual dan ramalan pada data uspop

11.2.4. Model Eksponensial Smoothing Sederhana

Misalkan saja akan dilakukan penerapan model eksponensial smoothing sederhana untuk peramalan jumlah populasi penduduk United States (dalam juta jiwa) pada data uspop yang sudah tersedia di R, seperti pada bagian sebelumnya. Berikut adalah script R yang digunakan untuk menerapkan model eksponensial smoothing sederhana pada data uspop (plus suatu error), serta beberapa output dari perintah‐ perintah tersebut.

> # Exponential Smoothing

> uspop > x <‐ uspop + rnorm(uspop, sd = 5) > model4 <‐ HoltWinters(x, gamma = 0, beta = 0) > fore4 <‐ predict(model4, 5, prediction.interval = TRUE) # ramalan 5 tahun kedepan

> model4

Holt ‐Winters exponential smoothing without trend and without seasonal component.

Call:

HoltWinters(x = x, beta = 0, gamma = 0)

Smoothing parameters: alpha: 0.9999216 beta : 0 gamma: 0

Coefficients:

[,1] a 208.6348