Custom Search

ARIMA SARIMA : Si Kembar dari Time Series

Melanjutkan pembahasan time series sebelumnya, disini saya akan membahas salah satu metode analisis time series yang cukup terkenal di era 1990 hingga kini, yakni Arima dan Sarima. Arima sebenarnya singkatan dari Autoregressive integrated Moving Average.  Sedangkan Sarima sama dengan Arima hanya ditambah awalnya dengan kata Seasonal. Berdasarkan asal namanya, Arima sebenarnya merupakan gabungan antara autoregressive dan moving average. Model yang dibangun nantipun berdasarkan kedua kriteria ini. Apakah modelnya autoregressive murni, moving average murni, atau gabungan keduanya. Nanti kita tentukan berdasarkan pola data ACF dan PACFnya.

Arima dan Sarima ini merupakan metode analisis time series, sama seperti analisis tren, moving average, atau naïve yang sudah saya jelaskan sebelumnya. Hal yang penting yang perlu diperhatikan dalam menganalisis data time series adalah ketepatan model. Meskipun Arima dan Sarima tampaknya lebih modern dibandingkan metode lainnya, karena model persamaannya yang njlimet dan terkesan high class, namun persamaan yang diperoleh tetap harus dibandingkan dengan analisis lainnya. Model yang baik adalah model yang memiliki nilai MSE atau MSD yang paling kecil. Jadi, meskipun anda menggunakan Arima dan sarima dalam menganalisis data timeseries, tetapi hasil MSE yang diperoleh masih tidak lebih baik dibandingkan tren dan moving average, maka ibarat anda menggunakan gergaji mesin untuk memotong rumput di halaman rumah anda.

Tidak ada tools yang paling baik, tetapi tools yang tepat! 

Tahapan Analisis

Adapun tahap-tahapan yang harus dilalui dalam analisis Arima dan Sarima ini adalah :

Identifikasi

Identifikasi data yang akan kita proses apakah mengandung tren, atau seasonal. Arima Sarima mensyaratkan data yang diproses harus stasioner. Stasioner dalam istilah saya artinya data berfluktuatif dalam nilai tertentu, tidak menunjukkan tren kenaikan atau penurunan. Jika ternyata data menunjukkan adanya tren, kita lakukan differencing atau pembedaan. Pembedaan pertama atau jika diperlukan pembedaan kedua. Tujuannya? Agar data menjadi stasioner.

Contoh grafik data yang sudah stasioner dan belum.

Estimasi

Setelah data kita pastikan stasioner, kita mulai mengestimasi model Arima atau Sarima. Cara estimasinya dengan cara mengamati ACF dan PACF. Apa itu? ACF merupakan singkatan dari Autocorrelation Function, yang mengindikasikan nilai autoregressive. PACF merupkan singkatan Parcial Autocorrelation Function, yang mengindikasikan nilai Moving Averagenya. Dalam menentukan data mengandung Autoregressive (AR) atau Moving Average (MA) adalah melihat pola atau perilaku ACF dan PACFnya. Hal yang perlu dipahami dalam bagian ini adalah anda harus mengerti mana pola yang dikatakan Cut Off, dan mana pola yang dikatakan dying down.

Pola cut off terjadi apabila data mendekati nilai 0 pada lag – lag awal atau terlihat gambar yang langsung menurun drastis (cut off). Sedangkan dying down biasanya terlihat menurun perlahan-lahan mendekati nilai 0. Belum ada kepastian berapa lag yang termasuk dalam lag awal, ada yang menjelaskan 5 data awal, ada juga yang menjelaskan 10 data awal. Namun biasanya kita melihat pola dari gambar sudah dapat diketahui apakah itu menurun perlahan atau langsung drastis/cut off.

Biasanya pada pola cut off, nilai |T| langsung tidak signifikan pada lag 2 atau 3, sedangkan pola dying down nilai |T| signifikan pada lag-lag awal. Data signifikan apabila nilai |T| > 2 untuk Arima, dan |T| > 1.25 untuk Sarima

Pola ACF dan PACF juga mencerminkan kestasioneran data. Data yang belum stasioner biasanya memiliki pola dying down dengan nilai |T| yang signifikan di hampir semua lag (dominan).  Maka bila menjumpai data keduanya (PACF dan ACF) dying down dengan nilai |T| yang signifikan, sebaiknya melakukan identifikasi ulang dan melakukan tahap pembedaan / differencing.

Contoh pola dying down

Contoh pola cut off

Evaluasi Model

Jika anda sudah mengerti differencing atau differences atau pembedaan, tergantung software mana yang anda gunakan, maka anda sudah mengerti tehnik Arima Sarima ini. Selanjutnya adalah running software dan menentukan model yang selanjutnya tentu kita mengevaluasi model tersebut. Evaluasi model nanti sama dengan tehnik time series lainnya yakni MSE (Mean Square Error) yang dikeluarkan oleh software minitab. Selain itu dalam analisis Arima juga mengevaluasi iteration yang mengharuskan untuk convergence, residual peramalan harus bersifat acak, model harus yang paling sederhana, parameter yang disetimasi berbeda nyata dengan nol, dan kondisi stasioneritas harus terpenuhi.

Bingung? Nanti kita langsung praktekkan untuk menentukan modelnya.

Peramalan

Setelah mengetahui model, maka langkah terahir sesuai tujuan penelitian adalah melakukan peramalan data. Peramalan tidak hanya dilakukan untuk masa mendatang saja, melainkan bisa juga digunakan untuk menentukan berapa nilai seharusnya jika menggunakan model yang kita peroleh. Tujuannya? Untuk menentukan nilai error untuk kasus tertentu, misalnya iklim yang sudah saya gunakan pada tulisan Pengaruh Perubahan Iklim Terhadap Produksi Tanaman Pangan.

Demikianlah tahapan yang mesti anda lalui dalam metode Arima dan Sarima nantinya, terlihat memang belum runut, karena penjelasan sebelumnya merupakan definisi agar saya tidak perlu mengulangnya dan bisa memberi contoh yang runut pada tahapan Arima.

Mari kita langsung saja menuju data dan praktikum…hehehehe 🙂 . Saya menggunakan minitab 17. Oh iya, anda bisa juga mendownload data yang saya gunakan jika mau mengikuti untuk belajar bersama saya di tutorial ini. Silahkan download data mentahnya disini

Baca Juga  Strategi Jitu Menghadapi Skripsi

ARIMA

Arima memiliki model ARIMA = (p, d, q). p merupakan nilai Autoregressive atau ACF. D merupakan nilai differencing. Dan q merupakan nilai moving average atau PACFnya. Saya tidak menjelaskan bagaimana persamaan matematikanya, anda bisa mendownload melalui mesin pencari dan anda bisa gunakan sebagai rujukan. Karena artikel ini berupa tutorial bagimana anda mengolah data menggunakan Arima dan Sarima. Selain itu, saya juga masih bingung bagaimana menulis lambang dan rumus matematika yang cukup njilmet itu disini. 🙂

Data yang saya gunakan adalah seperti ini:

Kita gunakakan plot time series untuk melihat apakah data ini memiliki pola tren atau tidak. Pilih stat – timeseries – time series plot.

Pilih simple, kemudian Kita masukkan variabel X3 di kolom X3 dikolom series. Haislnya adalah sebagai berikut:

Terlihat sekali bahwa variabel X3 ini memiliki unsur tren. Maka kita harus melakukan pembedaan atau differences terhadap data tersebut. Namun sebelumnya, apa sih pembedaan itu? Bagaimana cara manual yang dapat dipahami?

Differencing merupakan tahapan olah data dengan menghitung nilai perbedaan antara Yt dengan Yt-1. Jadi sebenarnya kita menghitung data tersebut dengan data sebelumnya. Karena yang kita olah adalah data selisih, maka dipastikan unsur tren akan hilang. Namun ada beberapa kasus data tren belum hilang setelah dilakukan differencing. Maka yang kita lakukan adalah melakukan differencing pada data yang telah dilakukan differencing sebelumnya. Tahap ini berarti memiliki nilai difference 2, artinya data dilakukan differencing sebanyak dua kali. Bagaimana jika belum juga? Sejauh ini saya belum menjumpai differencing lebih dari dua. Namun jika memang terjadi demikian, bisa saja anda coba.

Kembali ke data. Kita lakukan differencing. Anda bisa melakukan manual atau langsung bantuan minitab. Karena saya sudah membuka minitab, maka saya pun menggunakannya untuk tahap differencing ini. Pilih stat – time series – differences

Masukkkan variabel X3 ke kolom series dengan cara mengklik 2 kali pada variabel, isi C2 pada store differences in:, dan masukkan nilai I pada kolom lag. Nilai ini berarti kita mendifference 1 lag sebelumnya. Kemudian klik OK

Akan muncul nilai difference tersebut pada kolom C2, saya beri nama variabelnya dif_1. Lalu, kita akan melihat pola ACF dan PACF mana yang dying down dan mana yang cut off. Apa itu dying down? Sudah saya jelaskan diatas ya… 🙂

Klik stat – time series – autocorrelation. Masukkan variabel dif_1 ke kolom series, number of lags kita isi 15 (bisa 20 atau 10 yang jelas jangan melebihi jumlah data yang anda miliki), klik OK. Maka akan muncul gambar ACF.

Klik stat – time series – partial autocorrelation. Masukkan variabel dif_1 ke kolom series, number of lags kita isi 15 (bisa 20 atau 10 yang jelas jangan melebihi jumlah data yang anda miliki) jangan memilih default nnumber of lags karena jumlah data yng ditampilkan biasanya hanya sedikit, sekitar 5 dan itu belum mencerminkan pola, klik OK. Maka akan muncul gambar PACF.

Gambar yang dihasilkan adalah sebagai berikut:

Sebelah kiri adalah ACF, sebelah kanan adalah PACF. Tampak pada grafik ACF langsung cut off di lag ketiga, sedangkan PACF terlihat dying down karena baru cut off di lag ke lima. Kita bisa tarik kesimpulan bahwa ACF cut off dan PACF memiliki pola dying down.

Dasar yang digunakan untuk menentukan model adalah sebagai berikut:

Jika ACF menunjukkan pola dying down, dan PACF menunjukkan cut off, maka dapat dikatakan model ARIMA berupa AR murni.
Jika ACF menunjukkan pola cut off, dan PACF menunjukkan dying down, maka dapat dikatakan model ARIMA berupa MA murni.
Jika ACF dan PACF menunjukkan dying down maka  dapat dikatakan model ARIMA berupa gabungan AR dan MA.

 

Model ARIMA (p, d, q). karena model pada tutorial ini adalah MA murni, maka kita bisa beri nilai p = 0, d = 1 (kita melakukan differencing pertama), dan q = 1. Pola ini menunjukkan MA murni.

Bisa saja anda mencoba ARIMA (0, 1, 2), juga merupakan MA murni,  pada model nantinya dan kemudian melihat nilai MSE. Kita sudah berada pada tahap estimasi model. Kita bisa mencoba beberapa model untuk kemudian dibandingkan dengan cara menaikkan nilai AR atau MA dan kemudian dibandingkan nilai MSE dan indikator lainnya. Namun tidak disarankan anda menaikkan atau menurunkan langsung keduanya (AR dan MA).

Kembali pada data, kita akan proses dengan model ARIMA (0,1,1). Klik stat – time series – ARIMA. Kemudian isikan variabel dif_1 pada series, isi 0 pada autoregressive, nilai 1 pada difference, dan 1 pada kolom moving average. Kemudian klik OK.

Hasil yang kita peroleh adalah:
  1. Residual sudah bersifat acak. Hal ini dibuktikan dengan indikator Box-ljung statistik yang memiliki nilai p-value > 0.05
  2. Kondisi invertibilitas dan stasioneritas sudah terpenuhi. Hal ini ditunjukkan dengan koefisien yang diperoleh (dalm hal ini koefisien MA) < 1. Nilai koefisien MA dan AR harus <1
  3. Proses iterasi sudah convergence. Ditunjukkan dengan kalimat “relative change in each estimate less than 0.0010”
  4. MS atau MSE yang diperoleh adalah 7.903. apakah ini merupakan nilai MS yang paling rendah, akan kita buktikan dengan membandingkan model yang lain
  5. Model sudah yang paling sederhana? Kita bisa buktikan dengan memproses ARIMA tanpa difference. Hasilnya tidak bisa dilakukan estimasi karena data tidak konvergence. Artinya model ARIMA dengan differencing 1 ini merupakan model yang paling sederhana, hanya kita perlu estimasi lagi untuk memenuhi point nomor 4.
Baca Juga  Membaca Hasil Output Lindo Pada Linear Programming

Untuk memenuhi point no 4, saya running ARIMA (0,1,2) dan ARIMA (1,1,1). Hasil yang diperoleh adalah:

ARIMA (1,1,1)

MS yang dihasilkan lebih rendah yakni 6.066. namun data tidak convergence dan kondisi invertibilitas ataupun stasioneritas tidak terpenuhi karena koefisien MA >1

ARIMA (0,1,2)

MS yang dihasilkan lebih kecil, yakni 7.364. namun data tidak convergence. Sehingga kita bisa menyimpulkan bahwa ARIMA (0,1,1) merupakan model yang paling sederhana yang memenuhi kriteria pada evaluasi model.

Pada tahap terakhir kita akan mengambil nilai peramalan. Lakukan ARIMA0,1,1) sebelum klik OK, klik forecast terlebih dahulu, isikan jumlah peramalan yang akan di minta, bermula dari data keberapa (Origin), dan di tempatkan pada kolom mana saja (Storage forecast, lower limits, dan upper limits)

Dan hasilnya adalah sebagai berikut:

Atau bisa dilihat pada worksheet sudah terisi nilai forecast, batas bawah dan batas atas.

SARIMA

Hal yang membedakan SARIMA dari ARIMA adalah seasonalnya. Untuk itu, kita juga harus tau berapa pola pengulangan dari seasonal yang kita miliki. Apakah tiap 3 bulan? Tiap tahun? Dan sebagainya. Karena ini akan menentukan langkah yang kita gunakan nantinya.

Contoh data musiman:

Terlihat bahwa grafiknya melakukan pengulangan pola dalam kurun 12 lag, atau bisa dikatakan mengalami pengulangan pola tahunan.

Pada prinsipnya model sarima sama dengan model arima, yang membedakannya adalah proses pembedaannya atau difference nantinya dibedakan antara difference regular dan difference musiman taua bahasa lainnya seasonal difference.

saya punya data, bisa di download disini jika anda ingin belajar bersama saya 🙂

Data sebanyak n = 60 yang saya dapatkan dari random dan saya duga mengandung unsur seasonal sehingga cocok untuk latihan ini.

Langkah pertama saya lihat ACF. Number of lagnya saya isikan 35. Saya peroleh sebagai berikut:

Tampak sekali data tidak stasioner. Kemudian saya lakukan difference reguler pertama di kolom C2, saya beri nama difreg_1. Kemudian difreg_1 ini saya lihat pola ACFnya. Saya peroleh sebagai berikut:

 

Jika kita lihat nilai |T| dominasinya sudah < 2, namun pada lag 12, 24 memiliki nilai yang >2. Inilah tandanya kita harus melakukan differencing musiman. Dengan cara nilai lag saat melakukan difference yang tadinya bernilai 1, kini kita masukkan nilai 12. Nilai 12 ini disesuaikan siklus musiman yang terjadi, bisa bernilai triwulan atau sebagainya. Cara menentukannya anda bisa melihat nilai T pada differen reguler ini.

Pada saat melakukan seasonal difference, variabel yang di difference adalah variabel difreg_1 dengan nilai lag 12. Pembedaan ini dinamakan pembedaan reguler pertama dan pembedaan musiman pertama. Saya letakkan di kolom C3 dan saya beri nama difmus_1. Selanjutnya saya kembali lihat pola ACF dari variabel difmus_1 ini. Hasilnya adalah:

Penentuan dying down atau PACF untuk Sarima adalah sebagai berikut:

pola dikatakan cut off apabila :
  1. koefisien korelasi tidak signifikan pada lag 2 atau kurang untuk lag non musiman. Dikatakan tidak signifikan jika |t| < 2 untuk non musiman, dan
  2. tidak signifikan pada lag + 2 atau kurang untuk lag musiman. Dikatakan tidak signifikan jika |t| < 1,25.

Jika dilihat dari ciri ciri yang diperoleh, maka pola ACF adalah dying down. Artinya nilai ada unsur AR pada seasonal.

Kemudian kita lihat nilai PACF pada variabel X (data sebelum dilakukan pembedaan). Kemudian PACF pada nilai difreg_1, dan difmus 1. Hasilnya saya peroleh berturut2 adalah:

Jika dilihat dari pola PACF, maka dapat dikatakan PACF memiliki nilai cut off karena nilai lag +2 atau kurang signifikan < 1.25.

Estimasi modelnya adalah : [ARIMA (0,1,0) (1,1,0)12]

pada kurung pertama adalah nilai non musiman, dan kurung kedua adalah nilai musiman dengan lag 12. Caranya adalah klik stat – time series – ARIMA.

Kemudian isikan beri ceklist pada fit seasonal model dan isikan sebagaimana gambar berikut:

Dan hasilnya adalah sebagai berikut:

Nilai MS atau MSE yang didapat 9.409. kemudian kita coba dengan model pembandingnya [ARIMA (0,1,0) (1,1,1)12] hasil yang diperoleh nilai MS lebih besar dan tidak convergence. Sehingga masih baik model pertama yakni

[ARIMA (0,1,0) (1,1,0)12]

 

Selanjutnya silahkan anda bereksplorasi dengan data yang anda miliki.

Terima kasih sudah berkunjung