Tutorial R : Metode Forecasting Exponential Smoothing menggunakan R


Salah satu metode yang dapat digunakan untuk meramalkan data ke depan adalah Exponential Smoothing. Exponential Smoothing merupakan salah satu metode deret waktu yang sering digunakan untuk meramalkan data-data masa lampu pada ranah ekonomi, sosial maupun lainnya. Konsep perhitungan dari Exponential Smoothing adalah dengan memberikan pembobot pada perhitungan prediksi untuk setiap t.

Exponential Smoothing sendiri terbagi ke dalam beberapa jenis. Jenis dari metode ini yang sering digunakan adalah Single Exponential Smoothing, Double Exponential Smoothing Holt dan Triple Exponential Smoothing Holt-Winters. Jika diamati dari nama jenis metode yaitu Single, Double dan Triple, hal ini berkaitan dengan banyaknya pembobot yang digunakan pada metode tersebut. Single Exponential Smoothing hanya memberikan satu pembobot yaitu alpha (level). Double Exponential Smoothing Holt memberikan dua pembobot yaitu alpha (level) dan beta (tren). Sedangkan Triple Exponential Smoothing Holt-Winters memberikan tiga pembobot yaitu alpha (level), beta (tren), dan gamma (musiman).

Ketika data memiliki pola yang acak, kemungkinan Single Exponential Smoothing dapat digunakan. Ketika data memiliki pola yang acak serta membentuk tren naik atau turun, kemungkinan Double Exponential Smoothing Holt dapat digunakan. Ketika data memiliki pola yang acak serta membentuk tren naik atau turun dan terjadi pola musiman, kemungkinan Triple Exponential Smoothing Holt-Winters dapat digunakan. Kemungkinan-kemungkinan tersebut dapat dipastikan dengan cara membandingkan ketiga metode, kemudian melihat nilai kesalahan yang dihasilkan.

Exponential Smoothing telah dibahas pada beberapa artikel pada laman ini, berikut beberapa artikel yang membahas tentang Exponential Smoothing
Tutorial : Single Exponential Smoothing dan Peramalan
Tutorial : Double Exponential Smoothing Holt dan Peramalan
Tutorial : Triple Exponential Smoothing Winter dan Peramalan
Pada artikel ini akan dijelaskan tentang cara melakukan peramalan dengan Exponential Smoothing menggunakan alat bantu R. Beberapa artikel pendahuluan tentang R yang dapat digunakan adalah sebagai berikut:
Tutorial & Video : Download dan Install "R"
Tutorial R : RStudio sebagai IDE yang Memudahkan
Tutorial & Video : Rcmdr untuk Statistika Dasar
Tutorial R : Rcmdr pada RStudio

Berikut contoh kasus yang akan dibahas :

Seorang General Manager (GM) meminta laporan hasil penjualan perbulan selama 5 tahun dengan data sebagai berikut beserta dengan analisis proyeksi 6 bulan ke depan :
Salah satu metode yang dapat digunakan untuk menyelesaikan permasalahan di atas adalah Exponential Smoothing. Berikut tahapan analisis beserta code untuk R.

1. Jalankan RStudio

Tahap pertama silahkan buka dan jalankan RStudio, cara instalasi RStudio dan pengertian lainnya telah dibahas pada artikel :
Tutorial R : RStudio sebagai IDE yang Memudahkan
Sesuaikan layout RStudio agar mudah dibaca.

2. Siapkan Data

Data pada tutorial ini dapat diunduh melalui link berikut :
Download Contoh Data
Kemudian Pilih dan Klik Data Pada Nomor Urut 34.

Data yang telah disiapkan berekstensi *.txt.
Setela data diunduh, selanjutnya adalah memasukan data ke RStudio dengan cara :
Klik File - Import Dataset - From Text (base) - Pilih data yang telah diunduh - Klik Import

3. Definisikan Data

Setelah data berhasil diimport, selanjutnya adalah mendefinisikan variabel untuk data tersebut agar dapat dilakukan analisis menggunakan RStudio. Berdasarkan kasus, data tersebut memiliki struktur data bulanan dan rentang selama 5 tahun mulai dari tahun 2015 - 2019.
Copy-paste code berikut pada RStudio Console kemudian tekan enter.
lap = Data.Laporan.Bulanan
lap = ts(lap, start=c(2015,1), end=c(2019,12), frequency=12)
lap
Hasil :

4. Plot Deret Waktu

Setelah data berhasil didefinisikan dengan nama Lap, tahap selanjutnya adalah melakukan pengamatan terhadap plot deret waktu. Hal ini dilakukan untuk menduga dan menentukan kira-kira metode Exponential Smoothing apa yang sesuai dengan data tersebut.
Copy-paste code berikut pada RStudio Console kemudian tekan enter.
ts.plot(lap)
Hasil :
Berdasarkan plot deret waktu yang dihasilkan, terlihat  bahwa data hasil penjualan mengalami tren dan kemungkinan terdapat faktor musiman.

5. Fungsi Exponential Smoothing

Tahap selanjutnya adalah pemanggilan fungsi Exponential Smoothing pada RStudio berdasarkan kriteria dan ketentuan berikut :


Copy-paste code berikut untuk Single Exponential Smoothing

lapfore1 = HoltWinters(lap, beta=FALSE, gamma=FALSE)
lapfore1
lapfore1$SSE
plot(lapfore1)

Hasil :


Copy-paste code berikut untuk Double Exponential Smoothing

lapfore2 = HoltWinters(lap, gamma=FALSE)
lapfore2
lapfore2$SSE
plot(lapfore2)

Hasil :



Copy-paste code Triple Exponential Smoothing

lapfore3 = HoltWinters(lap)
lapfore3
lapfore3$SSE
plot(lapfore3)
Hasil :


6. Model Terbaik

Berdasarkan hasil analisis yang dilakukan, perhatikan nilai Sum Square Error (SSE) yang dihasilkan. Nilai SSE terkecil menunjukan bahwa metode tersebut cocok digunakan untuk data laporan hasil penjualan bulanan pada kasus ini.
Berdasarkan tabel diatas, model terbaik adalah Triple Exponential Smoothing karena menghasilkan nilai SSE terkecil 549275,0.

7. Forecast

Setelah model terbaik ditentukan yaitu Triple Exponential Smoothing dengan nilai SSE terkecil. Tahap selanjutnya adalah melakukan prediksi ke depan. Pada kasus diketahui bahwa data deret waktu terkahir berada pada bulan Desember 2019 dan ingin diproyeksi untuk 6 bulan ke depan dengan cara sebagai berikut:
Copy-paste code berikut pada RStudio Console kemudian enter untuk Forecast ke depan.
predict(lapfore3, n.ahead = 6)
Hasil :
Berdasarkana hasil prediksi untuk 6 bulan ke depan, diperoleh hasil sebagai berikut :

***

Demikian artikel tentang Tutorial : Metode Peramalan Exponential Smoothing menggunakan R. Semoga dapat bermanfaat. Jika terdapat pertanyaan, kritik maupun saran. Jangan sungkan untuk mengunjungi kolom komentar.

5 Responses to "Tutorial R : Metode Forecasting Exponential Smoothing menggunakan R"

  1. gan code yang ini predict(lapfore, n.ahead = 6) kenapa ga bisa dijalankan yah pas saya coba

    ReplyDelete
  2. Pemilihan nilai parameter alpha dan beta pada package holtwinters ini menggunakan apa ya ? Trial error atau optimasi ?

    ReplyDelete
  3. buatin tutor Perhitungan untuk optimasi parameter dengan golden section pak.

    ReplyDelete
  4. gan kok hasil perhitungan di R dan Excel terjadi perbedaan ya? padahal parameternya udah sama

    ReplyDelete