Tutorial : Forecasting Data Musiman dengan Seasonal ARIMA (SARIMA) menggunakan SAS University Edition



Data deret waktu yang ditemukan di lapangan sering sekali membentuk sebuah pola musiman. Pola musiman adalah sebuah pola deret waktu yang berulang pada pola tertentu. Pola yang dimaksud dapat berupa pola berulang musiman mingguan, bulanan, tahunan, hari libur dan lain sebagainya.


Perhatikan contoh berikut :
Kepala bagian promosi sebuah kolam renang melakukan rekapitulasi jumlah pengunjung harian kolam renang tersebut. Hasil rekapitulasi akan disajikan secara visual kepada atasannya. Berdasarkan hasil yang diperoleh, diketahui bahwa pengunjung kolam renang selalu melonjak setiap hari minggu seperti pada grafik berikut :
Berdasarkan grafik visualisasi pengunjung kolam renang, terlihat bahwa jumlah pengunjung selalu melonjak disetiap waktu kelipatan 7 (hari minggu).

Berdasarkan ilustrasi diatas, jika kepala bagian promosi ingin memprediksi berapa jumlah pengunjung kolam renang pada periode yang akan datang. Maka dibutuhkan sebuah metode khusus yang dapat menangani pola musiman dari data deret waktu.

Pada artikel sebelumnya, telah dibahas beberapa metode yang dapat digunakan untuk melakukan forecasting antara lain :
  1. Tutorial : Forecasting dengan ARIMA menggunakan SAS University Edition (free)
  2. Tutorial : Metode Forecasting Exponential Smoothing menggunakan R
Selain Seasonal Autoregressive Integrated Moving Average (SARIMA), metode Exponential Smoothing yang telah dibahas juga dapat digunakan untuk memodelkan dan meramalakan data deret waktu dengan pola musiman.

Sumber buku yang digunakan pada tutorial ini adalah :
Time Series Analysis with Application in R oleh J.D. Cryer, (2008)
Time Series Analysis Univariate and Multivariate Methods dari William W.S. Wei, (2006).

Berdasarkan kasus pada ilustrasi, ingin dilakukan pemodelan serta forecasting jumlah pengunjung kolam renang untuk 7 hari ke depan. Data yang digunakan pada artikel ini dapat di download pada menu Download Contoh Data kemudian pilih dan klik data dengan nomor urut 35.

Tahapan Analisis :

1. Siapkan SAS University Edition

Tutorial mengenai SAS University Edition beserta tahapan instalasinya dapat dilihat pada artikel berikut:
Tutorial : Download dan Instal Software SAS University Edition Gratis
Setelah SAS University Edition telah siap, tahap selanjutnya adalah pendefinisian data.

2. Pendefinisian Data

Data yang digunakan pada tutoril ini dapat didownload pada menu Download Contoh Data kemudian pilih dan klik data dengan nomor urut 35. Setelah data siap, silahkan buka SAS University Edition kemudian copy-paste kode berikut ke dalam lembar code :
data pengunjung;
input y @;
datalines;
[copy-paste data disini]
;
run;
Setelah itu jalankan kode yang telah diinput sebelumnya dengan cara Run. Setelah data terdefinisi dan terbaca oleh SAS University Edition, selanjutnya adalah melakukan identifikasi model SARIMA yang mungkin terbentuk.

3. Identifikasi Model

Pada tahap identifikasi model, terdapat beberapa sub-tahapan analisis seperti uji kestasioneritasan, identifikasi orde p serta identifikasi orde q. Tahap identifikasi model merupakan salah satu tahapan yang membutuhkan ketelitian dan ketepatan.

a. Uji Stasioneritas

Identifikasi yang pertama adalah melakukan uji stasioneritas untuk menentukan data deret waktu yang digunakan telah stasioner atau belum. Untuk melakukan uji stasioneritas, copy-paste kode berikut ke dalam lembar code :
proc arima data=pengunjung;
identify var=y stationarity=(adf=7) nlag=24;
run;
Penjelasan :
- proc arima digunakan untuk memanggil prosedur pengujian ARIMA.
- identify digunakan untuk melakukan tahap identifikasi uji stasioneritas dengan lag 7.
- Catatan : digunakan lag sampai 7 karena diduga bahwa data memiliki pola musiman 7.

Setelah Run hasil yang muncul adalah sebagai berikut:


Berdasarkan tabel di atas, digunakan Type Single Mean karena data yang digunakan tidak mengandung trend ataupun zero mean. Berdasarkan Type Single Mean, diperoleh hasil bahwa nilai P-Value Tau Test Statistics untuk lag 1 sampai 5 kurang dari 0.05 (alpha=5%). Sedangkan nilai P-Value Tau Test Statistics untuk lag 6 dan 7 lebih dari 0.05. Data dikatakan stasioner jika nilai P-Value Tau Test Statistics kurang dari nilai alpha yang diputuskan.

Untuk mengatasi hal tersebut, dapat dilakukan differencing 1 dan 7 agar data stasioner sampai lag ke 7. Untuk melakukan differencing dan uji stasioneritas, copy-paste kode berikut ke dalam lembar code :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
run;
Setelah Run hasil yang muncul adalah sebagai berikut:


Berdasarkan Type Single Mean, kita akan fokus pada lag ke 7 karena data memiliki pola musiman 7 dan  diperoleh hasil bahwa nilai P-Value Tau Test Statistics untuk lag 7 kurang dari 0.05 (alpha=5%). Hal ini menunjukan bahwa data telah stasioner secara musiman sepanjang 7.

b. Identifikasi Model

Setelah data stasioner, tahap selanjutnya adalah menentukan model yang sesuai. Pada tahap ini dibutuhkan beberapa pengetahuan tentang karakteristik maupun sifat dari istilah cut-off dan tail-off. Istilah tersebut dapat dipahami pada buku yang telah dijelaskan di depan. Untuk melakukan identifikasi model, kode yang digunakan sama persis pada tahap sebelumnya yaitu :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
run;
Namun, fokus output yang dibahas adalah sebagai berikut :


Berdasarkan output di atas, fokus pembahasan mengerucut pada plot ACF dan PACF.

  • ACF : diagram batang yang melewati batas adalah diagram ke-7
  • PACF : diagram batang yang melewati batas adalah diagram ke-2

Dari hasil di atas, dan beberapa percobaan estimasi, dapat disimpulkan bahwa kemungkinan model yang terbentuk adalah :

  • SARIMA (0,1,2)(0,1,1)7

Penjelasan model di atas, dapat ditemukan pada buku :
Time Series Analysis with Application in R oleh J.D. Cryer, (2008)
Time Series Analysis Univariate and Multivariate Methods dari William W.S. Wei, (2006).
Atau ditanyakan langsung pada kolom komentar maupun kolom pertanyaan disini.

4. Estimasi Model dan Pemilihan Model

Berdasarkan tahap identifikasi, diperoleh model yang mungkin terjadi yaitu SARIMA (0,1,2)(0,1,1)7 dengan tahapan estimasi sebagai berikut:

a. SARIMA (0,1,2)(0,1,1)7

Pada model pertama, copy-paste kode berikut ke dalam lembar code kemudian Run :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
estimate q=(1,2)(7) noint method=cls;
forecast printall;
run;
Maka diperolehlah hasil sebagai berikut :



Berdasarkan tabel Conditional Least Square Estimation, nilai P-Value t untuk MA1,1; MA1,2 dan MA2,1 kurang dari 0.05 (alpha 5%) artinya ketiga parameter ini signifikan terhadap model. Dengan nilai AIC sebesar 460.3048. Serta pada tabel Autocorrelation Check of Residuals, nilai P-Value Chi-Square untuk semua lag menunjukan hasil di atas 0.05 (alpha 5%) artinya asumsi white noise residual terpenuhi.

b. Model Akhir

Berdasarkan kriteria signifikansi parameter, nilai AIC (Akaike Information Criterion) dan kesimpulan asumsi white noise residual. Maka dapat disimpulkan bahwa model terbaik yang diperoleh adalah SARIMA (0,1,2)(0,1,1)7 dengan persamaan sebagai berikut :


5. Forecasting

Untuk melakukan forecasting beberapa periode ke depan, copy-paste kode berikut ke dalam lembar code kemudian Run :
proc arima data=pengunjung;
identify var=y(1,7) stationarity=(adf=7) nlag=24;
estimate q=(1,2)(7) noint method=cls;
forecast printall;
run;
Maka diperolehlah hasil sebagai berikut :


Kotak merah merupakan hasil prediksi beberapa periode ke depan dengan plot berikut :


***

Demikian artikel tentang Tutorial : Forecasting Data Musiman menggunakan Seasonal ARIMA (SARIMA) dengan SAS. Semoga dapat bermanfaat. Jika terdapat pertanyaan, kritik maupun saran. Jangan sungkan untuk mengunjungi kolom komentar maupun bertanya melalui kolom pertanyaan disini.


1 Response to "Tutorial : Forecasting Data Musiman dengan Seasonal ARIMA (SARIMA) menggunakan SAS University Edition"

  1. Maaf nanya pak, apakah bisa digunakan untuk menentukan pergerakan harga Trading saham, crypto dan forex ?

    ReplyDelete