Kamis, 12 November 2015

Pemodelan ARIMA Non-Seasonal

download materi ini versi pdf disini>>>

ARIMA adalah kependekan dari model autoregressive integrated moving average. ARIMA univariat (vektor tunggal) merupakan teknik peramalan yang memprediksi nilai masa depan dari serangkaian kejadian berdasarkan data yang tersedia. Untuk peramalan jangka pendek, ARIMA memerlukan paling tidak 40 bagian data historis. ARIMA akan optimal apabila data kita stabil atau konsisten dengan jumlah pencilan (outliers) yang kecil.
ARIMA juga dikenal sebagai metodologi Box-Jenkins (sesuai nama penulisnya), ARIMA unggul dalam teknik pemulusan eksponensial ketika data tersedia dalam jangka panjang dan korelasi antar pengamatan di masa lampau dalam kondisi stabil. Jika data tersedia dalam jangka pendek atau terlalu bergejolak (volatil), maka metode smoothing akan lebih unggul.
Langkah pertama dalam teknik pemodelan ARIMA adalah memeriksa stasioneritas data (kamu bisa pelajari tentang stasioneritas disini >>>). Implikasinya adalah pada rangkaian kejadian yang bersifat konstan sepanjang waktu. Jika data mengandung trend, sebagaimana yang biasanya terdapat pada ranah ekonomi dan bisnis, maka data kita tidak stasioner. Data harus menunjukkan keragaman yang konstan dalam fluktuasinya sepanjang waktu. Hal ini dapat kita lihat pada rangkaian data yang mengandung komponen musiman tinggi dan tingkat pertumbuhan yang terlalu cepat. Pada kasus tersebut, turun naiknya komponen musiman akan menjadi tidak terkendali tanpa adanya kondisi stasioneritas.
Metodologi Box-Jenkins atau model ARIMA memungkinkan kita untuk memadukan kompone autoregressif dan moving average secara bersamaan. Model ini mengacu pada “mixed model”. Walaupun metode ini cukup kompleks untuk peramalan, struktur model kita dapat menyusun simulasi rangkaian data dengan lebih baik dan tentunya akan menghasilkan peramalan yang lebih akurat. Model asli peramalan hanya mengandung komponen autoregresif atau moving average saja, tetapi ARIMA memadukan keduanya.
Untuk kamu yang belum mengerti komponen autoregresif (AR) bisa baca kembali disini>>>
Sedangkan bahasan tentang moving average (MA) bisa baca kembali disini >>>
Model yang dikembangkan dengan metode ARIMA biasanya kita sebut dengan model ARIMA karena merupakan kombinasi antara komponen autoregresif (AR) dan moving average (MA). Dengan metode ini, kita akan lakukan proses differencing dan perataan bergerak (MA) secara berulang-ulang hingga kita memperoleh hasil peramalan. ARIMA model biasanya dinyatakan dengan ARIMA(p,d,q) yang merepresentasikan order dari komponen autoregresif (p), jumlah differencing (d), dan istilah untuk tingkatan perataan bergerak (moving average). Misalnya ARIMA (2,2,1) berarti kita menjalankan proses dengan model autoregresif tingkat kedua dengan moving average tingkat kedua dimana rangkaian datanya telah diberikan diferensiasi satu kali untuk memperoleh kondisi stasioneritas.

Jika kita memiliki persamaan model autoregressive moving average tingkat pertama, maka ARIMA akan menghitung parameter dengan model persamaan struktural:

yt = xtβ + µt

Maka dengan ARMA(1, 1) menjadi

yt = α + ρyt−1 + θεt−1 + εt

dimana:
ρ          = parameter autokorelasi tingkat pertama
θ          = parameter rata-rata bergerak tingkat pertama
εt            = white noise disturbance

Secara lengkap modelnya dapat diformulasikan sebagai berikut:


yt=c+ϕ1yt1++ϕpytp+θ1et1++θqetq+et,

dimana:

dimana y′t adalah diferensiasi pada komponen (bisa lebih dari satu kali diferensiasi). variabel prediktor dapat berupa nilai lag yt dan lag error. Kita kenal model ini dengan model ARIMA(p,d,q), p adalah order autoregresif (AR); d adalah diferensiasi, dan q adalah order moving average (MA).

Ilustrasi:
Kita memiliki data kuartal indeks volume perdagangan merchandise Uni Eropa (EU) selama 11 tahun yang dimulai dari 2005q1 – 2015q2, data diambil dari www.wto.org. Untuk contoh data bisa kamu ambil disini >>>
Model Arima yang kita gunakan adalah model sederhana melalui differencing, komponen autoregresif dan moving average dengan spesifikasi model (1, 1, 1). Kita akan menyusun model Arima dengan bantuan software stata 12, sebagai berikut.

1. Tahap input/ekspor data,
Bagi yang belum mengetahui cara input data ke dalam software stata kita tidak akan menjelaskan lagi, kamu bisa lihat di bahasan ini >>>
2.    Menyatakan tipe data (time series) dengan komponen waktu ke dalam stata,
Kita memasukkan jumlah pengamatan, kemudian menjelaskan format data ke dalam stata,

.set obs 42
.generate date = tq(2005q1) + _n-1

Command tq menyatakan format dalam kuartal, sedangka _n-1 menyatakan penambahan pengamatan sebanyak 1 periode ke depan, kita akan lihat kembali struktur waktunya, misalnya 1 – 10 periode,

.list date in 1/10

Dengan demikian periode waktu telah kita dapatkan dalam format quarterly, tetapi tipe data masih dalam bentuk string yang tidak dikenali oleh command stata, maka kita akan format data kita menjadi bentuk time series atau float dengan fungsi %tq,

.format %tq date

Bagaimana jika data kamu dalam bentuk tahunan, bulanan, semester, atau format lain? coba lihat beberapa format di bawah ini yang bisa kamu gunakan;
  • Untuk data tahunan (misalnya dimulai dari tahun 1969); 
.generate date = y(1969) + _n-1 
.format %ty date
.tsset date
  • Untuk data semester (misalnya dimulai dari 1969h2), h menyatakan half a year,
.generate date = h(1969h2) + _n-1
.format %th date
.tsset date
  • Untuk data bulanan (misalnya dimulai dari 1969m1), m menyatakan month,
.generate date = m(1969m1) + _n-1
.format %tm date
.tsset date
  • Untuk data mingguan (misalnya dimulai dari 1969w3), w menyatakan week,
.generate date = w(1969w3) + _n-1
.format %tw date
.tsset date
  • Untuk data harian (misalnya dimulai dari 4may2002),
.generate date = d(4may2002) + _n-1
.format %td date
.tsset date

Nah, untuk komponen waktu kalender dalam stata saya kira sudah jelas, tinggal diikutin aja.

2. Kita kembali kepada ilustrasi kita, lihat kembali storage type atau tipe datanya,

.describe

Nah, komponen waktu period telah berubah menjadi float (lihat storage type),
Kemudian kita nyatakan tipe data (time series) ke dalam stata, ini hanya dapat dilakukan setelah komponen waktu dibaca sebagai variabel selain string oleh stata,

.tsset date

3. Tahap Plot data untuk melihat stasioneritas,

.tsline indices

Dari plot data dapat kita lihat dinamika data terjadi penurunan signifikan pada sekitar 2008q4 hingga 2009q1, hal ini mungkin dikarenakan faktor ekonomi atau resesi dunia yang mempengaruhi perdagangan UE. Data kita asumsikan tidak mengandung gejala yang tidak biasa, oleh karena itu transformasi tidak diperlukan.
Dari plot yang kita peroleh, data masih belum stasioner. Dinamika perubahan data seketika terjadi dalam jangka pendek, dan seketika perubahan terjadi dalam jangka panjang, kita tidak menemukan adanya trend dalam data. Dengan demikian kita perlu melakukan diferensiasi tingkat pertama (first order differencing).
Kita akan generate variabel baru dengan nama indices_d1 yang berarti dilakukan diferensiasi terhadap data pada order ke-1. Mari kita lakukan seasonally adjusment dengan diferensiasi tingkat pertama,

.generate indices_seasonald1 = d.indices
.tsline indices_seasonald1



Kita telah memperoleh variabel baru yaitu indices_seasonal d1 dengan first order differencing (seasonald2), data telah stasioner dengan diferensiasi tanpa ada kecenderungan trend jangka panjang walaupun masih terdapat penurunan signifikan pada 2008q4.

Menentukan AR dan MA
Berikutnya kita akan menentukan komponen autoregresif dan moving average berdasarkan korelogram autokorelasi (ACF) dan autokorelasi parsial (PACF),

.ac indices_seasonald1, lags(18)



.pac indices_seasonald1, lags(18)


Dapat kita lihat dari plot PACF untuk variabel first order differencing, indices_seasonald1 menunjukkan spike pada lag ke-1, ini adalah kondisi autokorelasi positif atau underdifferenced. Kita dapat mempertimbangkan untuk menambahkan AR(1) ke dalam model. Dengan demikian model pertama kita adalah ARIMA(1,1,0), dimana model mengandung order pertama autoregresif, diferensiasi tingkat pertama, dan tanpa pengurangan diferensiasi atau moving average.
Kita juga dapat memperimbangkan penambahan moving average ke dalam model, ketika plot ACF menunjukkan spike pada lag ke-1, dengan demikian model alternatif kita adalah ARIMA(1,1,1), dimana model mengandung order pertama autoregresif, diferensiasi tingkat pertama, dan moving average order ke-2.
Alternatif berikutnya kita akan mencoba model ARIMA(2,1,1) untuk perbandingan pemilihan model, Berikutnya kita akan membandingkan model dengan akaike information criteria (AIC) dan bayesian information criteria (BIC), dimana semakin kecil nilai AIC dan BIC, maka model semakin baik.

1. Model ARIMA(1,1,0)

.arima indices_seasonald1, arima(1,1,0)



kita lihat nilai AIC dan BIC,

.estat ic

2. Model ARIMA(2,1,0)

.arima indices_seasonald1, arima(2,1,0)



.estat ic

3. Model ARIMA(1,1,1)

.arima indices_seasonald1, arima(1,1,1)



.estat ic

Dari ketiga model, kita ketahui bahwa model yang terbaik adalah ARIMA(1,1,1), degan nilai AIC dan BIC paling kecil yaitu 199,9 dan 204,9. Dengan demikian model kita terdiri atas komponen autoregresif kelas pertama (AR1), diferensiasi tingkat pertama (d1), dan moving average tingkat pertama (MA1), maka model ARIMA(1,1,1) akan kita terapkan dalam peramalan.

Dari model yang kita peroleh yaitu ARIMA(1,1,1,), kita dapat memprediksi nilai beberapa kuartal ke depan. Misalnya dari model kita ingin membuar peramalan hingga tahun 2020 kuartal pertama, kita jalankan model terlebih dahulu,

.arima D.indices, arima(1,1,1)

Setelah itu dari model ARIMA kita akan melakukan prediksi,

.predict arima

Setelah memperoleh nilai prediksi, kita akan coba plot terhadap variabel diferensiasi kita yaitu indices_seasonald1, mari kita lihat pola prediksi dari model dengan grafik,

.tsline arima D.indices



Dari Grafik dapat kita lihat kemampuan model ARIMA(1,1,1) dalam memprediksi pola musiman indices_seasonald1

download materi ini versi pdf disini>>>

0 komentar:

Posting Komentar