Monday, December 18, 2017

Memodelkan Data Pengukuran dengan Auto-Regressive (AR)

Bismillah ar-Rahmaan ar-Rahiim. Kali ini saya harus belajar ilmu meramal, hahaha... Auto-Regressive memang salah satu teknik statistik yang dapat digunakan dalam peramalan. Saya terakhir menggunakan teknik ini saat kuliah [1], dan kini saya harus memelajarinya kembali lebih detil. Alhamdulillah. Mudah2an tulisan ini bermanfaat.

MODEL AUTO REGRESSIVE

Data pengukuran dalam ilmu statistik umum disebut dengan istilah Time series. Time series adalah istilah untuk data pengukuran terhadap variabel yang sama yang dilakukan seiring waktu, saya lebih suka menerjemahkannya dengan istilah data deret waktu. Pengukuran bisa dilakukan per detik, per hari, per bulan dlsb.

Data deret waktu ini dapat didekati dengan persamaan matematika diskrit. Apabila kita telah mengetahui persamaan matematika tersebut kita dapat meniru data tersebut atau bahkan membuat prediksi data untuk sekian waktu ke depan. Beberapa model persamaan matematika untuk hal ini antara lain dikenal dengan AR, MA, ARMA, ARX, ARMAX, dlsb.

Model Auto-Regressive (AR) adalah salah satu model persamaan matematika yang mewakili suatu proses acak yang berubah terhadap waktu. Model AR tepat digunakan untuk mewakili proses acak yang variabel output-nya hanya bergantung secara linier pada nilai variabel tersebut di pengukuran sebelumnya, tanpa ada variabel input. Model AR umum dinyatakan dalam persamaan beda sebagai berikut

y[k] = ϕ0 + ϕ1.y[k-1] + ϕ2.y[k-2]+. . .+ ϕp.y[k-p] + e[k]

dimana k mewakili deret waktu pengukuran (1 ... n), y[k] mewakili data pengukuran deret waktu, e[k] mewakili white-noise, ϕ mewakili parameter model, dan p menyatakan orde model AR.

ESTIMASI PARAMETER

Nilai data pengukuran y[k] telah tersedia, anggap white-noise e[k] ditiadakan. Maka problemnya adalah mengestimasi parameter model ϕ0,ϕ1,ϕ2,…,ϕp. Setahu saya, cara termudah untuk estimasi ini adalah menggunakan pendekatan regresi linier dengan metode least-square.

TENTANG REGRESI LINIER DAN METODE LEAST SQUARE

Regresi linier mendekati data pengukuran dengan persamaan linier berikut

y[k] = ϕ0 + ϕ1.x1[k] + ϕ2.x2[k]+⋯+ ϕp.xp[k]     untuk k=1,…,n




CONTOH: MODEL AR ORDE 2

Saat ini sepertinya saya akan menggunakan model AR orde 2 saja atau ditulis singkat dengan AR(2). Sehingga model AR-nya menggunakan persamaan berikut

y[k] = ϕ0 + ϕ1.y[k-1] + ϕ2.y[k-2]

Artinya, ada tiga parameter yang harus saya cari, yaitu ϕ0,ϕ1,ϕ2, dengan metode least-square.
Untuk mencari nilai parameter tersebut, saya perlu menyatakan model AR(2) dalam persamaan regresi linier sebagai berikut

y[k] = ϕ0 + ϕ1.x1[k] + ϕ2.x2[k]

dimana

x1[k]=y[k-1]
x2[k]=y[k-2]

Karena ordenya relatif rendah, saya memilih menggunakan penulisan formulasi kompak

y=Xϕ

dimana


Maka, ketemulah parameter regresi atau model AR(2): ϕ0,ϕ1,ϕ2. Penjabaran matriks di atas silakan diangen2 sendiri ya, maaf ndak sempat menuliskan.

STUDI KASUS: MEMODELKAN DATA PENGUKURAN KECEPATAN KAPAL

Saya diberi data hasil pengukuran kecepatan prototipe kapal dari eksperimen redaman ombak di laboratorium. Pengukuran kecepatan dilakukan dengan waktu sampling sekitar 0.02 detik dengan durasi 30 detik dan data pengukuran sebanyak 1500. Kalau saya plot data tersebut kira2 seperti ini.


Dari grafik di atas, nampak bahwa pengukuran yang dilakukan bercampur noise. Idealnya, grafik pengukuran tampil sebagai garis lurus, namun karena terdapat noise pengukuran nampaklah seperti grafik di atas. Nah, saya bermaksud menghilangkan noise tersebut dengan Filter Kalman Diskrit. Dan untuk itu, saya perlu mendapatkan model matematika dari data pengukuran ini terlebih dulu. Saya pilih model AR orde 2 yang telah dibahas di atas.

Saya susun kode m-file untuk menghitung parameter model AR(2) hingga saya dapatkan

ϕ = [ϕ0 ϕ1 ϕ2] = [1.0429 -0.0121 0.0065]

Kode intinya kira2 sebagai berikut

for k=3:n
    x1(k)=y(k-1);
    x2(k)=y(k-2);
    X(k,:)=[1 x1(k) x2(k)];
end
phi=inv(X’*X)*X’*y;

Artinya, model AR(2) untuk data pengukuran di atas adalah

y[k] = 1.0429 - 0.0121y[k-1] + 0.0065y[k-2]

Saya tidak serta merta percaya, lalu saya buat kode m-file juga untuk menghitung error atau selisih antara model AR (saya notasikan dengan ye[k]) dengan data pengukuran (y[k]), semacam ini

for k=3:n
     ye(k)=phi(1)+phi(2)*ye(k-1)+phi(3)*ye(k-2);
     e(k)=y(k)-ye(k);
end

hingga saya dapatkan grafik error berikut.


Dari grafik di atas, nampak bahwa rerata kesalahan model AR(2) kurang dari 0.01. Saya kira sih cukup baik untuk kebutuhan saya selanjutnya. Dengan kalimat lain, model AR(2) hasil estimasi ini dapat digunakan untuk beberapa kebutuhan, diantaranya untuk prediksi atau merancang filter kalman.

KESIMPULAN

Model AR digunakan untuk memodelkan data deret waktu dari suatu variabel yang hanya bergantung pada nilai variabel tersebut sebelum2nya, tanpa ada variabel input.

Orde model AR bisa ditetapkan sesuai kebutuhan. Makin tinggi ordenya, makin akurat estimasinya, namun makin banyak hitungannya sehingga lebih lamban komputasinya.

Karena saya mendapat data pengukuran deret waktu tanpa input, maka saya menggunakan model AR. Saya cukupkan memilih orde dua dan menggunakan pendekatan regresi linier dan metode least-square untuk estimasi parameter modelnya. Model AR(2) hasil estimasi memiliki error tidak lebih dari 0.01.

PENUTUP

Sementara sekian dulu. Bila artikel ini dirasa bermanfaat, mohon saya didoakan yang baik2 dalam hati atau dibacakan al-Faatihah. Maturnuwun. Alhamdulillah Rabb al-Alamiin. Segala Puja Puji milik Allah, Tuhan Semesta Raya.

Format penulisan yang lebih baik ada di versi pdf:
https://www.researchgate.net/publication/321874942MemodelkanDataPengukurandenganModelAuto-RegressiveAR

PUSTAKA

[1] http://mnurq.blogspot.co.id/2013/04/identifikasi-parametrik-motor-dc.html
[2] https://en.wikipedia.org/wiki/Autoregressivemodel
[3] https://en.wikipedia.org/wiki/Linearregression
[4] dari siapa saja yang saya beroleh ilmu darinya, semoga Allah merahmati beliau2 semua. Aamiin.

No comments:

Post a Comment