ESTIMASI BERBASIS MCMC UNTUK
RETURNS VOLATILITY
DI PASAR VALAS INDONESIA MELALUI MODEL ARCH
BERDISTRIBUSI NORMAL DAN
STUDENT-T
Oleh,
IMAM MALIK SAFRUDIN
NIM : 662011001
TUGAS AKHIR
Diajukan kepada Program Studi Matematika, Fakultas Sains dan Matematika
guna memenuhi sebagian dari persyaratan untuk mencapai gelar Sarjana Sains
Program Studi Matematika
Fakultas Sains dan Matematika
Universitas Kristen Satya Wacana
v
MOTTO
Esensi hidup adalah shalat dan bertemu dengan Allah SWT.
vi
PERSEMBAHAN
Dipersembahkan untuk
vii
KATA PENGANTAR
Bismillahirrahmanirrahim
,
Assalamualaikum wa Rahmatullah wa Barakatuh
,
Penulis mengucapkan rasa syukur kehadirat Allah SWT atas limpahan segala Rahmat
dan HidayahNya, sholawat serta salam semoga tercurahkan kepada junjungan Nabi besar
Muhammad SAW. Sehingga penulis dapat menyelesaikan tugas akhir (skripsi) sebagai syarat
menyelesaikan Studi Strata 1 (S1) di Program Studi Matematika pada Fakultas Sains dan
Matematika, Universitas Kristen Satya Wacana.
Skripsi ini terdiri dari dua
makalah. Makalah pertama berjudul “
Estimasi Berbasis
MCMC untuk
Returns Volatilitydi Pasar Valas Indonesia melalui Model ARCH
” dan
makalah kedua berjudul “
Estimasi MCMC untuk
Return Volatilitydalam Model ARCH
dengan
Return Errorberdistribusi
Student-t” yang telah dipublikasikan dalam Seminar
Nasional Matematika dan Pendidikan Matematika dengan tema “Peran Matematika &
Pendidikan Matematika Abad 21” pada tanggal 9 Mei 2015
yang diselenggarakan oleh
Program Studi Pendidikan Matematika, Universitas Muhammadiyah Purworejo.
Penulisan skripsi ini tidak terlepas dari bantuan dari berbagai pihak yang telah
memberikan dorongan kepada penulis baik itu berupa materil maupun spiritual. Untuk itu
dalam kesempatan ini penulis menyampaikan ucapan terima kasih kepada:
1.
Dr. Suryasatriya Trihandaru, M.Sc.nat. selaku Dekan Fakultas Sains dan Matematika.
2.
Dr. Bambang Susanto, MS selaku Ketua Program Studi Matematika.
3.
Dra. Lilik Linawati, M.Kom. selaku Wali Studi yang selalu memberikan banyak
saran dan nasihat kepada penulis.
4.
Didit Budi Nugroho, D.Sc. selaku pembimbing utama dan Dr. Adi Setiawan, M.Sc.
selaku pembimbing pendamping yang dengan sabar membimbing, mengarahkan dan
memberikan motivasi kepada penulis selama proses penulisan skripsi ini sehingga
laporan skripsi ini dapat diselesaikan dengan baik.
5.
Dosen pengajar di Program Studi Matematika, Dr. Bambang Susanto, MS, Dra. Lilik
Linawati, M.Kom., Dr. Adi Setiawan, M.Sc, Tundjung Mahatma, M.Kom, Didit Budi
Nugroho, D.Sc., Dr. Hanna Arini Parhusip, M.Sc., Leopoldus Ricky Sasongko, M.Si
yang telah memberikan ilmu pengetahuan kepada penulis selama studi di FSM
UKSW serta Pak Edy sebagai Laboran yang telah memberikan bantuan kepada
viii
6.
Staf TU FSM: Mbak Eny, Bu Ketut dan Mas Basuki.
7.
Family atas do’a yang telah diberikan.
8.
Teman-teman BSM (Basecamp Samping Masjid): Aziz, Azhar dan Icol.
9.
Teman seperjuangan Progdi Matematika 2011: Dewi, Daivi, Purwoto, Dwi, Titis,
Priska, dan Kevin.
Semoga Allah SWT memberikan balasan atas segala amal baik yang telah membantu penulis
dalam menyelesaikan skripsi.
Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan. Oleh sebab itu
penulis sangat mengharapkan kritik dan saran yang membangun untuk penulis. Akhirnya
semoga Allah SWT meridhoi amal kita semua. Amin.
Salatiga, 17 Juni 2015
ix
DAFTAR ISI
Lembar Pengesahan ... ii
Lembar Pernyataan Keaslian ... iii
Lembar Pernyataan Bebas
Royaltydan Publikasi ...iv
Motto ... v
Persembahan ...vi
Kata Pengantar ... vii
Daftar Isi ...ix
Daftar Lampiran ... x
Abstrak ...xi
Pendahuluan ... 1
Makalah I: Estimasi Berbasis MCMC untuk
Returns Volatilitydi Pasar Valas
Indonesia melalui Model ARCH
Makalah II: Estimasi MCMC untuk
Return Volatilitydalam Model ARCH dengan
Return ErrorBerdistribusi
Student-tx
DAFTAR LAMPIRAN
Lampiran 1: Skema MCMC untuk model ARCH berdistribusi
Student-tLampiran 2: Kode Matlab
xi
ABSTRAK
Studi ini membangun suatu algoritma Markov chain Monte Carlo (MCMC) untuk
mengestimasi
returns volatilitydalam model ARCH dengan
returns errorberdistribusi
normal dan
student-t. Metode Metropolis
–
Hastings digunakan dalam MCMC untuk
memperbarui nilai-nilai parameter model. Model dan algoritma diaplikasikan menggunakan
data harian kurs beli yen Jepang, dolar Amerika, dan euro Eropa terhadap rupiah Indonesia
pada periode 5 Januari 2009 sampai dengan 31 Desember 2014 yang diambil dari laman Bank
Indonesia. Studi empiris menunjukkan bahwa metode yang dibangun sangat efisien dan
memberikan hasil estimasi yang serupa dengan hasil Matlab untuk kasus model berdistribusi
normal. Sementara itu untuk kasus model dengan
returns errorberdistribusi
student-tditunjukkan adanya bukti sangat kuat untuk penggunaan distribusi
student-tpada ketiga data
di atas.
1
PENDAHULUAN
1.
Latar Belakang
Menurut Hady (seperti yang dirujuk dalam Nurjanah (2005)), pasar valuta asing dapat
diartikan sebagai suatu wadah atau sistem dimana perorangan, perusahaan, dan bank dapat
melakukan transaksi keuangan internasional dengan jalan melakukan pembelian atau
permintaan, penjualan dan penawaran. Dalam referensi keuangan ekonomi internasional,
valuta asing (
foreign exchangeatau disingkat
forex) adalah mata uang asing atau alat
pembayaran lainnya yang didasarkan pada kurs resmi yang telah ditetapkan oleh bank sentral
(Khalwaty dalam Nurjanah (2005)). Sementara itu harga/nilai dimana mata uang suatu negara
dipertukarkan dengan mata uang negara lain disebut nilai tukar (kurs).
Pada umumnya, para pelaku ekonomi di pasar valuta asing dan pasar modal memerlukan
pengukuran
volatiyharga aset (Aklimawati dan Wahyudi, 2013). Taksiran
volatilitydiperlukan dalam strategi keuangan, misalnya untuk penghitungan harga opsi (kontrak jual
beli aset). Secara khusus,
volatilityadalah akar kuadrat dari variansi (besaran yang
menunjukkan besarnya penyebaran data pada suatu kelompok data).
Kebanyakan studi keuangan melibatkan
return(perubahan logaritma harga aset)
daripada harga aset. Campbell dkk. (seperti dirujuk dalam Tsay (2010)), memberikan dua
alasan mengapa menggunakan
return. Salah satunya yaitu runtun
returnlebih mudah untuk
ditangani dari pada runtun harga, karena
returnmemiliki sifat statistik yang lebih menarik.
Pemodelan
volatilitypada
returnaset diawali dengan klas
autoregressive conditional heteroscedasticity(ARCH) yang diperkenalkan oleh Engle (1982). Nastiti (2012) dan
Aklimawati
–
Wahyudi (2013) mendiskusikan
volatilityyang mengikuti model ARCH
berturut-turut pada saham dan komoditas kakao yang mengasumsikan
returns errorberdistribusi normal dan model diselesaikan dengan metode pengali Lagrange. Dalam studi
ini akan difokuskan pada model
volatilitymenggunakan ARCH model dengan
mengasumsikan bahwa
returns errorberdistribusi normal dan
student-t. Selanjutnya model
akan diselesaikan dengan menggunakan metode
Markov chain Monte Carlo(MCMC). Carlin
dan Chib (1995) menjelaskan bahwa metode MCMC dapat memudahkan pemodelan yang
cukup kompleks dalam analisis Bayes.
Studi empiris terhadap
volatilitydilakukan dengan menggunakan data kurs beli
Euro(EUR),
Japanese Yen(JPY), dan
US Dollar(USD) terhadap rupiah Indonesia (IDR) atas
periode 5 Januari 2009 sampai dengan 31 Desember 2014 yang diambil dari laman Bank
2
2.
Rumusan Masalah
Bagaimana menganalisis
returns volatilitydalam pasar valuta asing Indonesia dengan
menggunakan model ARCH.
3.
Tujuan
Untuk mencapai analisis di atas, studi ini secara khusus bertujuan untuk:
(i)
Menyajikan model ARCH untuk
volatilitydengan
asset returns errorberdistribusi
normal dan
student-t.
(ii)
Menyediakan algoritma MCMC untuk mengestimasi
volatilitydalam model ARCH.
(iii)
Mendapatkan analisis
volatilityuntuk kurs beli valuta asing terhadap IDR menggunakan
data nyata.
4.
Batasan Masalah
Studi ini mempunyai batasan-batasan seperti berikut:
(i)
Analisis difokuskan pada data kurs beli
yen Jepang (JPY),
Dolar Amerika
(USD) dan
euro Eropa (EUR), dan terhadap rupiah periode 5 Januari 2009
–
31 Desember 2014 yang
diambil dari arsip Bank Indonesia (BI).
(ii)
Penghitungan menggunakan alat bantu Matlab R2012a.
5.
Hasil Penelitian
Hasil penelitian ini dituangkan dalam dua makalah yang telah dipublikasikan dalam
Seminar Nasional Matematika dan Pendidikan Matematika dengan tema “Peran Matematika
& Pendidikan Matematika Abad 21” pada tanggal 9 Mei 2015 yang
diselenggarakan oleh
Program Studi Pendidikan Matematika, Universitas Muhammadiyah Purworejo, dan termuat
dalam prosiding ber-ISSN 2459-962X Vol. 1 No. 1 2015. Kedua makalah tersebut berjudul:
1.
“
Estimasi Berbasis MCMC untuk
Returns Volatilitydi Pasar Valas Indonesia melalui
Model ARCH
”,
halaman 29
33.
2.
“
Estimasi MCMC untuk
Return Volatilitydalam Model ARCH dengan
Return ErrorBerdistribusi
Student-t”
, halaman 34
39.
6.
Kesimpulan
Berdasarkan bahasan dari kedua makalah dapat disimpulkan sebagai berikut:
1.
Algoritma MCMC yang dibangun menghasikan simulasi yang sangat efisien.
2.
Hasil empiris menunjukkan bukti yang sangat kuat untuk penggunaan distribusi
3
7.
Hasil Review
Paper 1: Di halaman kedua kolom 1 baris ke-26
tertulis “=”, seharusnya
“
∝”.Paper 1: Di halaman kedua kolom 2 baris ke-15
tertulis “
”, seharusnya “ ”.Paper 1 dan 2:
Kata “
return” seharusnya “
returns”.
Paper 2: Di halaman kedua kolom 1 baris ke-15
tertulis “
� = �, � , … , �� ”,
seharusnya “
� =� , � , … , �� ”.
Paper 2: halaman kedua kolom 2 baris ke-20
tertulis “=”, seharusnya “
∝”.Paper 2: Ditambahkan daftar pustaka:
Safrudin, I., M., Nugroho, D., B., dan Setiawan, A. (2015).
Estimasi Berbasis MCMC untuk Returns Volatility di Pasar Valas Indonesia melalui Model ARCH,
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika UMP, 1(1),
29
33.
Notasi:
�
: Menyatakan distribusi normal
�
[ , ]: Menyatakan distribusi normal terpotong pada [
a,
b]
�
: Menyatakan distribusi
inversegamma: Menyatakan distribusi
gammaDaftar Pustaka
Aklimawati, L. dan Wahyudi, T. 2013. Estimasi Volatilitas Return Harga Kakao
Menggunakan Model ARCH dan GARCH,
Pelita Perkebunan29 (2), pp. 142
158.
Carlin, B. P., dan Chib, S. (1995). Bayesian model choice via Markov chain Monte Carlo
methods,
Journal of The Royal Statistical Society,57 (3), pp. 473
–
484.
Engle, R. F. (1982). Autoregressive conditional heteroskedasticity with estimates
of the variance of the united kingdom inflation.
Econometrica, 50, pp. 987
–
1007.
Nastiti, K. L. A. dan Suharsono A. (2012). Analisis volatilitas saham perusahaan go public
dengan metode ARCH
GARCH.
Jurnal Sains dan Seni ITS, 1, (1), pp. D259
D264.
Nurjanah, E. (2005).
Pengaruh Nilai Tukar Rupiah atas Dollar AS Terhadap Tingkat Inflasidi Indonesia pada Periode
1999-2004 (
Data Diperoleh Pada Bank Indonesia). Skripsi,
UNIKOM, Bandung.
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
langkah (Nugroho, 2014), yaitu
membangun rantai Markov dan menggunakan metode Monte Carlo untuk meringkas
distribusi posterior pada parameter sebagai
keluaran MCMC.
Dimisalkan � = � , � , … , �� dan � =
� , � , … , �� . Berdasarkan Teorema Bayes
(lihat Koop dkk. (2007)), distribusi gabungan untuk model di atas yaitu
� , , �|� = � �|� ∙ � , ,
dimana � �|� adalah fungsi likelihood dan
� , adalah distribusi prior pada , .
Untuk memenuhi kendala parameter a dan b,
ditetapkan prior seperti berikut:
~�xp dan ~� , ,
maka dipunyai distribusi gabungan yaitu
� , , �|�
∝ ∏ ��− �xp {−����} �
�= ∙ �xp{− }
∙ − − −
= ( − ) �xp {− − � }
∏ + ��− − ∙ �xp {− ( + ��� �− )} �
�=
∙ �xp{− } ∙ − − − .
atau dengan pengambilan logaritma natural diperoleh
ln � , |�
∝ ln − − − �
− ∑ ln + ��−
� �= − ∑ �� + ��− � �= −
+ − ln + − ln − . (1)
Pembangkitan nilai parameter a
Berdasarkan persamaan (1), log distribusi
posterior untuk a dinyatakan oleh
= ln � | , �
∝ − ln − − �
− ∑ ln + ��−
� �= − ∑ �� + ��− � �= − .
Masalah yang muncul di sini yaitu
posterior tersebut tidak mengikuti suatu
distribusi tertentu. Karena itu a dibangkitkan
menggunakan metode Independence Chain
Metropolis–Hastings (IC-MH) yang
diperkenalkan oleh Tierney (1994) seperti berikut:
Langkah 1: Menentukan proposal untuk a,
yaitu ∗~� , ] ∗, � ∗
Langkah 2: Menghitung rasio
� , ∗ =� ∗| , � � | , � .
Langkah 3: Membangkitkan dari distribusi seragam [ , ].
Langkah 4: Jika < min{ , � , ∗ }, maka proposal diterima, jika tidak, maka proposal ditolak.
Rata-rata ∗ dan variansi � ∗ dicari
dengan menggunakan metode yang didasarkan pada tingkah laku distribusi di sekitar modus
(lihat Albert (2009)). Modus ̂ dari ,
artinya ′ ̂ = , dicari menggunakan
metode bagi dua. Selanjutnya diambil ∗ = ̂
dan � ∗= −[ ′′ ̂ ]− . Masalahnya adalah
′′ ̂ bisa bernilai positif, karena itu diambil
� ∗= −[� ̂ ]− dengan
� ̂ = min {− . , ′′ ̂ }.
Pembangkitan nilai parameter b
Berdasarkan persamaan (1), log distribusi
posterior untuk b dinyatakan oleh
= ln � | , �
∝ − ln − − − �
− ∑ ln + ��−
� �= − ∑ �� + ��− � �=
+ − ln + − ln − ,
yang tidak mengikuti suatu distribusi tertentu.
Karena itu nilai parameter b dibangkitkan
menggunakan cara yang sama seperti pada
pembangkitan nilai parameter a.
Metode MCMC mensimulasi suatu nilai baru untuk setiap parameter dari distribusi posteriornya dengan mengasumsikan bahwa nilai saat ini untuk parameter lain adalah benar. Sacara ringkas skema MCMC yaitu
(i)
Inisialisasi a dan b.(ii)
Membangkitkan sampel a dengan metodeIC-MH.
(iii)
Membangkitkan sampel b dengan metode IC-MH.(iv)
Menghitung variansi (volatility kuadrat):Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
1. HASIL DAN PEMBAHASAN
4.1 Data Pengamatan
Selanjutnya model dan metode di atas
diaplikasikan pada data kurs beli Euro (EUR),
Japanese Yen (JPY), dan US Dollar (USD) terhadap Rupiah atas periode 5 Januari 2009 sampai dengan 31 Desember 2014 yang terdiri dari 1472 observasi. Dalam penelitian ini penghitungan dilakukan dengan alat bantu
software Matlab 2012a. Gambar 1
menampilkan plot runtun waktu untuk returns
dan Tabel 1 menyajikan statistik deskriptif.
Gambar 1. Plot runtun waktu returns harian untuk kurs beli JPY, USD, dan EUR terhadap Rupiah dari Januari 2009 sampai Desember 2014.
Tabel 1. Statistik deskriptif dari returns harian untuk kurs beli JPY, USD, dan EUR terhadar Rupiah dari Januari 2009 sampai Desember 2014.
Mata
Uang Mean SD JB Test
(normali tas)
LB Q test (auto korelasi) JPY –0.004 0.363 tidak
normal
tidak ada korelasi USD –0.004 0.215 tidak
normal ada korelasi
EUR 0.000 0.294 tidak normal
tidak ada korelasi
4.2 Pengaturan MCMC
Algoritma MCMC dijalankan dengan menggunakan 15000 iterasi, dimana 5000
iterasi pertama dihilangkan dan sisanya, N =
10000, disimpan untuk menghitug rata-rata
posterior, simpangan baku, interval Bayes,
numerical standard error (NSE), dan diagnosa
konvergensi. Di sini, dipilih interval highest
posterior density (HPD) yang disajikan oleh Chen dan Shao (1999) sebagai pendekatan
untuk interval Bayes. Diagnosa konvergensi
dilakukan dengan menghitung integrated
autocorrelation time (IACT), lihat Geweke (2005), untuk mengetahui berapa banyak sampel yang harus dibangkitkan untuk mendapatkan sampel yang saling bebas
(seberapa cepat konvergensi simulasi).
Sementara itu konvergensi rantai Markov
diperiksa berdasarkan pada uji z-score Geweke
(1992) dan NSE dihitung menggunakan
metode yang disajikan oleh Geweke (2005). Dalam aplikasi algoritma MCMC, model
dilengkapi dengan prior dimana = , =
. , dan = . Untuk nilai-nilai awal
parameter ditetapkan = = . .
4.3 Estimasi Parameter
Tabel 2, 3 dan 4 meringkas hasil simulasi
posterior parameter dalam model ARCH(1) berturut-turut untuk data kurs beli JPY, USD,
dan EUR terhadap Rupiah. p-value yang
berasosiasi dengan Geweke’s convergence diagnostic (G-CD) mengindikasikan bahwa semua rantai Markov sudah konvergen. Nilai-nilai IACT menunjukkan bahwa metode IC-MH adalah sangat efisien.
Tabel 2. Ringkasan hasil simulasi posterior untuk data kurs beli JPY terhadap Rupiah. LB dan UB menyatakan berturut-turut batas bawah dan batas atas interval HPD 95%.
Parameter
a bMatlab
0.0994
0.2619
Mean
0.1022
0.2548
SD
0.0050
0.0464
LB
0.0928
0.1648
UB
0.1121
0.3446
IACT
1.4620
1.2613
NSE
0.0000
0.0005
G-CD
0.0036
0.0648
p-value
0.9971
0.9484
CPU
time(detik): 131.14
Tabel 3. Ringkasan hasil simulasi posterior untuk data kurs beli USD terhadap Rupiah.
Parameter
a bMatlab
0.0237
0.6532
Mean
0.0244
0.6255
SD
0.0012
0.0682
LB
0.0220
0.4903
UB
0.0267
0.7547
IACT
1.0000
1.0000
0 500 1000 1500
-2 0 2 JPY k u rs b e li
0 500 1000 1500
-2 0 2 USD k u rs b e li
0 500 1000 1500
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
NSE
0.0000
0.0006
G-CD
–
0.0036
–
0.0260
p-value0.9971
0.9792
CPU
time(detik): 137.72
Tabel 4. Ringkasan hasil simulasi posterior untuk data kurs beli EUR terhadap Rupiah
Parameter
a BMatlab
0.0704
0.1878
Mean
0.0713
0.1900
SD
0.0030
0.0372
LB
0.0650
0.1186
UB
0.0771
0.2630
IACT
1.0000
1.0000
NSE
0.0000
0.0004
G-CD
–
0.0159
0.0047
p-value
0.9873
0.9962
CPU
time(detik): 148.27
Plot sampel posterior dan histogram
distribusi posterior parameter-parameter a dan
b ditampilkan berturut-turut pada Gambar 2
dan Gambar 3. Plot sampel mengindikasikan
bahwa sampel berfluktuasi disekitar rata-rata
posterior, yang berarti bahwa sampel telah
bercampur dengan baik (good mixing).
Gambar 2. Plot sampel untuk parameter a dan b pada model ARCH(1) untuk returns kurs beli JPY (atas), USD (tengah), dan EUR (bawah) terhadap Rupiah dari Januari 2009 sampai Desember 2014.
Gambar 3. Histogram distribusi posterior parameter a
dan b pada model ARCH(1) untuk returns kurs beli JPY (atas), USD (tengah), dan EUR (bawah) terhadap Rupiah dari Januari 2009 sampai Desember 2014.
Terkait dengan estimasi parameter, hasil
menunjukkan bahwa nilai estimasi a dan b
serupa dengan hasil yang diperoleh dari penggunaan fungsi garch(p,q) di Matlab.
Rata-rata posterior untuk variansi (volatility
kuadrat) returns disajikan dalam Gambar 4.
Diperoleh bahwa variansi untuk returns kurs
beli JPY, USD, dan EUR terhadap rupiah
berturut-turut yaitu 0.102–0.984, 0.024–1.080,
dan 0.071–0.430, dimana rata-ratanya
berturut-turut yaitu 0.136, 0.053, 0.088. Nilai variansi tertinggi terjadi pada periode April 2013 untuk JPY, Februari 2009 untuk USD, dan September 2011 untuk EUR.
Gambar 4. Plot runtun waktu variansi untuk returns kurs beli JPY, USD, dan EUR terhadap Rupiah dari Januari 2009 sampai Desember 2014.
Jadi, model volatility untuk returns kurs
beli JPY, USD, dan EUR terhadap Rupiah berturut-turut:
�� = . + . ��− , �� = . + . ��− , �� = . + . ��− .
0 5000 10000 0.08
0.1 0.12
a
0 5000 10000 0.2
0.4
b
0 5000 10000 0.02
0.025 0.03
0 5000 10000 0.5
1
0 5000 10000 0.06
0.07 0.08
0 5000 10000 0
0.2 0.4
0.050 0.1 0.15 500
1000 1500
a
0 0.2 0.4 0.6 0.8 0
500 1000 1500
b
0.0150 0.02 0.025 0.03 500
1000 1500
0.2 0.4 0.6 0.8 1 0
500 1000
0.060 0.07 0.08 0.09 500
1000
0 0.1 0.2 0.3 0.4 0
500 1000 1500
0 500 1000 1500
0 0.5 1
JPY
t2
0 500 1000 1500
0 1 2
USD
t2
0 500 1000 1500
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
2. KESIMPULAN
Studi ini menyajikan model ARCH(1)
untuk returns kurs beli JPY, USD, dan EUR
terhadap Rupiah. Algoritma MCMC yang efisien dibangun untuk membangkitkan
sampel dari distribusi posterior model. Hasil
empiris menunjukkan bahwa rata-rata
volatility untuk returns kurs beli JPY adalah yang tertinggi.
Model yang disajikan dalam studi ini bisa diperluas dengan memperhatikan distribusi tak
normal untuk returns error. Selain itu, model
bisa diperluas ke model GARCH.
3. REFERENSI
1. Albert, J. (2009). Bayesian computation
with R, 2nd ed., Springer.
2. Carlin, B. P., dan Chib, S. (1995).
Bayesian model choice via Markov
chain Monte Carlo methods, Journal of
The Royal Statistical Society, 57 (3),
473–484.
3. Casella, G. dan Berger R., L. (2002).
Statistical inference, Thomson Learning, Duxbury.
4. Chen, M. H. dan Shao, Q. M. (1999).
Monte Carlo estimation of Bayesian
credible and HPD
intervals. Journal of Computational and
Graphical Statistics, 8, 69–92.
5. Engle, R. F. (1982). Autoregressive
conditional heteroskedasticity with
estimates
of the variance of the united kingdom
inflation. Econometrica, 50, 987–1007.
6. Geweke, J. (1992). Evaluating the
accuracy of sampling-based approaches to the calculation of posterior moments,
Bayesian Statistics 4 (eds. J. M. Bernardo, J. O. Berger, A. P. Dawid dan
A. F. M. Smith), 169–194.
7. Geweke, J. (2005). Contemporary
Bayesian econometrics and statistics. John Wiley & Sons.
8. Jones, C. P., and Wilson, J. W. (1989).
Is stock price volatility increasing?,
Financial Analysts Journal, 45 (6), 20–
26.
9. Koop. G., Poirier, D. J. dan Tobias, J. L.
(2007). Bayesian econometri methods.
Cambridge University Press, New York.
10. Muklis, I. (2011). Analisis volatilitas
nilai tukar mata uang Rupiah terhadap
dolar. Journal of Indonesian Apllied
Economics, 5 (2), 172–182.
11. Nastiti, K. L. A. dan Suharsono A.
(2012). Analisis volatilitas saham perusahaa go public dengan metode
ARCHGARCH. Jurnal Sains dan Seni
ITS, 1, (1), D259D264.
12. Nugroho, D. B. (2014). Realized
stocastic volatility model using
generalized student’s t-error
distributions and power transformations, Dissertation. Kwansei Gakuin University, Japan.
13. Tierney, L. (1994). Markov chain for
exploring posterior distributions.
Annals of Statistics,
22(4), 1701–1762.
14. Tsay, R. S., (2010). Analysis of financial
time series. John Willey and Sons, Inc. New York.
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
� , , , �, �|�
= � �|�, � ∙ � �| ∙ � , , ,
dimana � �|�, � adalah fungsi likelihood dan
� , , adalah distribusi prior pada , , .
Selanjutnya ditetapkan prior seperti berikut:
~�xp , ~� , , = �, � ,
dimana prior (a,b) tersebut dipilih untuk
memenuhi kendala-kendala model. Sekarang
dipunyai distribusi gabungan yaitu
� , , , �|�
∝ − �− �xp {− − �� }
∙ �� [Γ ]−� ∏ + ��− − �� − � �=
�xp {− �� ( + ��− )��} ∏ ��−�−
�
�= �xp (− ��
) ∙ �xp{− }
∙ − − − ∙ �− �xp −
� .
atau dengan pengambilan logaritma natural diperoleh
ln � , , , �|�
∝ ln − − ln � − − ��
+ �ln − � ln Γ
− ∑ ln + ��−
�
�= − ∑ ln ��
� �= − ∑ �� + ��− �� � �=
− + ∑ ln �� � �= − ∑ ��− � �= −
+ − ln + − ln −
+ �− ln − � . (1)
Pembangkitan parameter a
Berdasarkan persamaan (1), log distribusi
posterior untuk a dinyatakan oleh
= ln � | , �, � − ln − − ��
− ∑ ln + ��−
� �= − ∑ �� + ��− �� � �= −
Masalah yang muncul di sini yaitu posterior
tersebut tidak mengikuti suatu distribusi
tertentu. Oleh karena itu, a dibangkitkan
menggunakan metode Independence Chain
Metropolis–Hastings (IC-MH) yang
diperkenalkan oleh Tierney (1994) seperti berikut:
Langkah 1: Menentukan proposal untuk a,yaitu
∗~�
, ] ∗, � ∗
Langkah 2: Menghitung rasio
� , ∗ = � ∗| , � � | , � .
Langkah 3: Membangkitkan dari distribusi seragam [ , ].
Langkah 4: Jika < min{ , � , ∗ }, maka proposal diterima, jika tidak, maka proposal ditolak.
Rata-rata ∗ dan variansi � ∗ dicari dengan
menggunakan metode yang didasarkan pada tingkah laku distribusi di sekitar modus (lihat
Albert (2009)). Modus ̂ dari , artinya
′ ̂ = , dicari menggunakan metode bagi
dua. Selanjutnya diambil ∗= ̂ dan � ∗=
−[ ′′ ̂ ]− . Masalahnya adalah ′′ ̂ bisa
bernilai positif, karena itu diambil � ∗=
−[� ̂ ]− dengan
� ̂ = min {− . , ′′ ̂ }.
Pembangkitan parameter b
Berdasarkan persamaan (1), log distribusi
posterior untuk b dinyatakan oleh
= ln � | , �, �
∝ ln − − − ��
− ∑ ln + ��−
� �= − ∑ �� + ��− �� � �=
+ − ln + − ln − ,
yang tidak mengikuti suatu distribusi tertentu.
Karena itu nilai parameter b dibangkitkan
menggunakan cara yang sama seperti pada
pembangkitan parameter a.
Pembangkitan nilai parameter
Berdasarkan persamaan (1), log distribusi
posterior untuk dinyatakan oleh
= ln � | , , �, � ∝ �ln − � ln Γ
− ∑[ln �� + ��− ] �
�=
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015 yang tidak mengikuti suatu distribusi tertentu.
Oleh karena itu, parameter dibangkitkan
menggunakan cara yang sama seperti pada
pembangkitan parameter a, dimana
proposalnya yaitu ∗~�[ , ] �∗, ��∗ .
Pembangkitan nilai vektor parameter z
Berdasarkan persamaan (1), distribusi
posterior untuk z dinyatakan oleh
� �| , , , �
∝ � −�+ − �xp − − � +�
∏ ��−�+ − �xp {−�� + + �+ ��− �− �� } �
�= .
Dalam kasus ini, � bisa dibangkitkan secara
langsung dari distribusi invers gamma, yaitu
� ~� + , − � + ,
��~� + ,�� + + �+ ��−
�− ,
untuk = , … , �.
Metode MCMC mensimulasi suatu nilai baru untuk setiap parameter dari distribusi posteriornya dengan mengasumsikan bahwa nilai saat ini untuk parameter lain adalah benar. Sacara ringkas skema MCMC untuk model dalam studi ini yaitu
(i)
Inisialisasi a, b,dan .(ii)
Membangkitkan sampel z secara langsung.(iii)
Membangkitkan sampel dengan metode IC-MH.(iv)
Membangkitkan sampel a dengan metodeIC-MH.
(v)
Membangkitkan sampel b dengan metodeIC-MH.
(vi)
Menghitung variansi (volatility kuadrat):�� = + ��− .
1. HASIL DAN PEMBAHASAN
4.1 Data Pengamatan
Selanjutnya model dan metode di atas
diaplikasikan pada data kurs beli Euro (EUR),
Japanese Yen (JPY), dan US Dollar (USD) terhadap Rupiah atas periode 5 Januari 2009 sampai dengan 31 Desember 2014 yang terdiri dari 1472 observasi. Dalam penelitian ini penghitungan dilakukan dengan alat bantu
software Matlab 2012a. Lihat Safrudin dkk.
(2015) untuk plot runtun waktu untuk returns
dan statistik deskriptif.
4.2 Pengaturan MCMC
Algoritma MCMC dijalankan dengan menggunakan 15000 iterasi, dimana 5000
iterasi pertama dihilangkan dan sisanya, N =
10000, disimpan untuk menghitug rata-rata
posterior, simpangan baku, interval Bayes,
numerical standard error (NSE), dan diagnosa
konvergensi. Di sini, dipilih interval highest
posterior density (HPD) yang disajikan oleh Chen dan Shao (1999) sebagai pendekatan untuk interval Bayes. Diagnosa konvergensi
dilakukan dengan menghitung integrated
autocorrelation time (IACT), lihat Geweke (2005), untuk mengetahui berapa banyak sampel yang harus dibangkitkan untuk mendapatkan sampel yang saling bebas
(seberapa cepat konvergensi simulasi).
Sementara itu konvergensi rantai Markov
diperiksa berdasarkan pada uji z-score Geweke
(1992) danNSE dihitung menggunakan metode
yang disajikan oleh Geweke (2005).
Dalam aplikasi algoritma MCMC, model
dilengkapi dengan prior dimana = , =
. , = , �= dan �= . . Untuk
nilai-nilai awal parameter ditetapkan =
= . dan v = 20.
4.3 Estimasi Parameter
Tabel 1, 2 dan 3 meringkas hasil simulasi
posterior parameter dalam model ARCH(1),
dimana returns error berdistribusi Student-t,
berturut-turut untuk data kurs beli JPY, USD,
dan EUR terhadap IDR. p-value yang
berasosiasi dengan Geweke’s convergence diagnostic (G-CD) mengindikasikan bahwa semua rantai Markov sudah konvergen. Nilai-nilai IACT menunjukkan bahwa metode IC-MH adalah sangat efisien.
Tabel 1. Ringkasan hasil simulasi posterior untuk data kurs beli JPY terhadap IDR. LB dan UB menyatakan berturut-turut batas bawah dan batas atas interval HPD 95%.
Parameter a b v
Mean 0.0547 0.2180 5.1708
SD 0.0030 0.0414 0.5779
LB 0.0495 0.1386 4.0913
UB 0.0598 0.2998 6.3289
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015
NSE 0.0000 0.0009 0.0233
G-CD – 0.0063 0.0686 0.1160
p-value 0.9949 0.9453 0.9076 CPU time (detik): 313.795
Tabel 2. Ringkasan hasil simulasi posterior untuk data kurs beli USD terhadap IDR.
Parameter a b v
Mean 0.0078 0.3809 3.1140
SD 0.0004 0.0497 0.2386
LB 0.0069 0.2882 2.6469
UB 0.0087 0.4832 3.5717
IACT 1.0000 5.3140 10.0292
NSE 0.0000 0.0011 0.0070
G-CD – 0.0059 – 0.0003 – 0.1576
p-value 0.9953 0.9998 0.8747 CPU time (detik): 295.673
Tabel 3. Ringkasan hasil simulasi posterior untuk data kurs beli EUR terhadap IDR.
Parameter A b v
Mean 0.0546 0.1612 10.4858
SD 0.0026 0.0353 1.6553
LB 0.0502 0.0958 7.6162
UB 0.0595 0.2339 13.9917
IACT 12.2060 5.2695 66.3636
NSE 0.0000 0.0007 0.0799
G-CD 0.0045 0.0408 0.3283
p-value 0.9964 0.9674 0.7427 CPU time (detik): 285.506
Plot sampel posterior dan histogram
distribusi posterior parameter-parameter a dan
b ditampilkan berturut-turut pada Gambar 1 dan
Gambar 2. Plot sampel mengindikasikan bahwa
sampel berfluktuasi disekitar rata-rata
posterior, yang berarti bahwa sampel telah
bercampur dengan baik (good mixing).
Gambar 1. Plot sampel untuk parameter a, b, dan v pada model ARCH(1) untuk returns kurs beli JPY (atas), USD
(tengah), dan EUR (bawah) terhadap IDR dari Januari 2009 sampai Desember 2014.
Gambar 2. Histogram distribusi posterior parameter a, b, dan v pada model ARCH(1) untuk returns kurs beli JPY (atas), USD (tengah), dan EUR (bawah) terhadap Rupiah dari Januari 2009 sampai Desember 2014.
Penyimpangan returns dari asumsi
normalitas dinyatakan oleh . Derajat
kebebasan mengambil nilai dari 4 sampai 7 untuk JPY, dari sampai 4 untuk USD, dan dari 7 sampai 14 untuk EUR, mengindikasikan bukti
kuat adanya karakteristik distribusi Student-t
pada ketiga data pengamatan. Sementara itu, dalam kasus data kurs beli JPY dan EUR,
estimasi parameter a dan b adalah serupa
dengan estimasi dari ARCH(1) yang
berdistribusi normal di Safrudin dkk. (2015).
Terkait dengan volatility, rata-rata posterior
untuk variansi (volatility kuadrat) returns
disajikan dalam Gambar 3. Diperoleh bahwa
variansi untuk returns kurs beli JPY, USD, dan
EUR terhadap IDR berturut-turut yaitu dari 0.0550 sampai 0.8084, dari 0.0078 sampai 0.6505, dan dari 0.0546 sampai 0.3584, dimana
rata-ratanya berturut-turut yaitu 0.0835,
0.0254, 0.0686. Nilai variansi tertinggi terjadi pada periode September 2013 untuk JPY, Februari 2009 untuk USD, dan September 2011 untuk EUR. Dibandingkan dengan hasil di Safrudin dkk. (2015), pada data JPY menunjukkan perbedaan periode untuk variansi tertinggi.
Jadi, model volatility untuk returns kurs beli JPY, USD, dan EUR terhadap Rupiah berturut-turut:
�� = . + . ��− , �� = . + . ��− , �� = . + . ��− .
0 5000 10000 0.04
0.06 0.08
a
0 5000 10000 0
0.5 b
0 5000 10000 4
6 8
0 5000 10000 6
8 10x 10
-3
0 5000 10000 0.2
0.4 0.6
0 5000 10000 2
3 4
0 5000 10000 0.04
0.06 0.08
0 5000 10000 0
0.2
0 5000 10000 5
Prosiding Seminar Nasional Matematika dan Pendidikan Matematika 2015 Gambar 3. Plot runtun waktu variansi untuk returns kurs
beli JPY, USD, dan EUR terhadap IDR dari Januari 2009 sampai Desember 2014.
2. KESIMPULAN
Studi ini menyajikan model ARCH(1)
dengan returns error berdistribusi Student-t
untuk returns kurs beli JPY, USD, dan EUR
terhadap IDR. Algoritma MCMC yang efisien dibangun untuk membangkitkan sampel dari
distribusi posterior model. Hasil empiris
menunjukkan bukti sangat kuat untuk
penggunaan distribusi Student-t pada ketiga
data tersebut.
Model yang disajikan dalam studi ini bisa diperluas dengan memperhatikan distribusi
Student-t yang umum, seperti non-central Student-t dan generalized skew Student-t yang
mengakomodasi heavy tails dan skewness.
Lebih lanjut model bisa diperluas ke model GARCH.
3. REFERENSI
1. Bollerslev, T. (1987). A Conditionally
Heteroskedastic Time Series Model for Speculative Prices and Rates of Return,
Review of Economics and Statistics, 69,
542–547.
2. Casella, G. dan Berger R., L. (2002).
Statistical inference, Thomson Learning, Duxbury.
3. Chen, M. H. dan Shao, Q. M. (1999).
Monte Carlo estimation of Bayesian
credible and HPD intervals. Journal of
Computational and Graphical Statistics,
8, 69–92.
4. Engle, R. F. (1982). Autoregressive
conditional heteroskedasticity with
estimates of the variance of the united
kingdom inflation. Econometrica, 50,
987–1007.
5. Geweke, J. (1992). Evaluating the
accuracy of sampling-based approaches to the calculation of posterior moments,
Bayesian Statistics 4 (eds. J. M. Bernardo, J. O. Berger, A. P. Dawid dan
A. F. M. Smith), 169–194.
6. Geweke, J. (2005). Contemporary
Bayesian econometrics and statistics. John Wiley & Sons.
7. Koop. G., Poirier, D. J. dan Tobias, J. L.
(2007). Bayesian econometri methods.
Cambridge University Press, New York.
8. Nugroho, D. B. (2014). Realized
stocastic volatility model using
generalized student’s t-error
distributions and power transformations,
Dissertation. Kwansei Gakuin
University, Japan.
9. Tierney, L. (1994). Markov chain for
exploring posterior distributions. Annals
of Statistics, 22(4), 1701–1762.
10. Tsay, R. S., (2010). Analysis of financial
Lampiran 1. Skema MCMC untuk model ARCH berdistribusi
Student-t1.
Inisialisasi
a,
b, dan
.
2.
Pembangkitan
�| , , , �
.
Distribusi posterior bersyarat untuk z
diberikan oleh
� �| , , , �
∝ �
−�+ −�xp −
− � +
�
∏
�
�−�+ −�xp {−
�
�+
+ �
+ �
�− �−�
�}
��=
.
Dalam kasus ini,
�
bisa dibangkitkan secara langsung dari distribusi
inverse gamma,
yaitu
� ~�
�+,
− � + �dan
��~� (
�+,
��+( + ��− )�( + ��− )
),
untuk
= , … , �.
3.
Pembangkitan
|�
Distribusi posterior bersyarat untuk
vdiberikan oleh
� |� ∝
���
[Γ
�]
−�∏
��=��
−�−�xp −
��� �−�xp −
�.
Nilai
dibangkitkan menggunakan metode IC-MH, yang mana proposal untuk
yaitu
∗
~�
[ , ] �∗
, �
�∗dan probabilitas penerimaannya yaitu
min { ,
�( ∗|�
)� |
� }
. Diambil
logaritma distribusi posterior bersyarat untuk :
= ln � |�
∝
�
ln
− � ln Γ
− ∑[ln ��
+ ��
−]
��=
+
�−
ln
−
�,
Dicari modus posterior
̂
dari
, artinya bahwa
′ ̂ =
, berdasarkan metode bagi
dua. Rata-rata
�∗dan variansi
�
�∗ditentukan dengan menggunakan metode yang
didasarkan pada tingkah laku distribusi di sekitar modus (atau modus hampiran). Dicatat
bahwa derivatif pertama dan kedua dari
berturut-turut yaitu
′
=
�
[ln
+ − ψ
] − ∑[ln ��
+ ��
−]
��=
+
�−
−
�,dimana
ψ � =
� lnà � ��, dan
Selanjutnya diambil
�∗= ̂
dan
�
�∗= −[
′′̂ ]
−. Masalahnya adalah
′′ ̂
bisa
bernilai
positif,
karena
itu
diambil
�
�∗= −[��
̂ ]
−dengan
��
̂ =
min {− .
, ′′ ̂ }
.
4.
Pembangkitan
| , �, �
Distribusi posterior bersyarat untuk
adiberikan oleh
� | , �, � ∝ (
−
) �xp {−
− �
�
}
∏
+ �
�− −�
� −�xp {−
��( + ��− )��
}
�
�=
�xp{− }.
Nilai
adibangkitkan menggunakan metode IC-MH, yang mana proposal untuk
ayaitu
∗
~�
∗, �
∗dan probabilitas penerimaannya yaitu
min { ,
�( ∗|, �, �
)�( |
, �, �
)}
. Diambil
logaritma distribusi posterior bersyarat untuk
a:
= ln � | , �, � ∝ − ln −
− �
�
− ∑ ln + ��−
� �=− ∑
��( + ��− )��
�
�=
−
.Dicari modus posterior
̂
dari
, artinya bahwa
′ ̂ =
, berdasarkan metode bagi
dua. Dicatat bahwa derivatif pertama dan kedua dari
berturut-turut yaitu
′
=
= −
+
− �
�
− ∑
+ �
�−�
�=
+ ∑
��
+ �
�−��
��=
−
′
′
=
=
−
− �
�
+ ∑
+ �
�−�
�=
− ∑
+ �
��
�−�
� ��=
.
Selanjutnya diambil
∗= ̂
dan
�
∗= −[ ′′ ̂ ]
−. Masalahnya adalah
′′ ̂
bisa
bernilai
positif,
karena
itu
diambil
�
∗= −[� ̂ ]
−dengan
� ̂ =
min {− .
, ′′ ̂ }
.
5.
Pembangkitan
bDistribusi posterior bersyarat untuk
bdiberikan oleh
� | , �, � ∝ (
−
) �xp {−
− �
�
}
∏
+ �
�− −�
� −�xp {−
��( + ��− )��
}
�
�=
Nilai
bdibangkitkan menggunakan metode IC-MH, yang mana proposal untuk
byaitu
∗
~�
∗, �
∗dan probabilitas penerimaannya yaitu
min { ,
�( ∗|, �, �
)�( |
, �, �
)}
. Diambil
logaritma distribusi posterior bersyarat untuk
b:
= ln � | , �, �
∝ ln −
−
− �
�
− ∑ ln + ��−
��=
− ∑
+ �
�
��−
�
� ��=
+
− ln +
−
ln −
Dicari modus posterior
̂
dari
, artinya bahwa
′(̂) =
, berdasarkan metode bagi
dua. Dicatat bahwa derivatif pertama dan kedua dari
berturut-turut yaitu
′
=
= −
−
+
�
� −
∑
�
�−+ �
�− ��=
+ ∑
+ �
�
�−�
� �−��
��=
+
−
−
− ,
−
′′
=
= −
−
+ ∑
�
�−+ �
�− ��=
− ∑
+ �
�
�−�
� �−�
� ��=
−
−
−
−
−
.
Selanjutnya diambil
∗= ̂
dan
�
∗= −[ ′′(̂)]
−. Masalahnya adalah
′′(̂)
bisa
bernilai
positif,
karena
itu
diambil
�
∗= −[� (̂)]
−dengan
� (̂) =
Lampiran 2. Kode Matlab
Lampiran 2.1 Kode Matlab untuk Estimasi Model ARCH Berdistribusi Normal
2.1.1 Kode Utama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
function hasil=arch_mcmc(Rt,HP)
% Tujuan: Mengestimasi parameter-parameter dalam model ARCH % R_t = sigma_t*epsilon_t, epsilon_t~N(0,1)
% sigma_t^2 = a + b*R_{t-1}^2
% ---% Algoritma: MCMC
% ---% Masukan: Rt = Return = 100*[log(S_t)-log(S_{t-1}],
% dimana S_t = nilai kurs pada saat t
% HP = Hyperparameter = [lambda alpha beta], untuk prior % a ~ exp(lambda) dan b ~ beta(alpha,beta)
% ---% Keluaran: hasil.av = sampel-sampel parameter a
% hasil.bv = sampel-sampel parameter b % Ditulis oleh Imam Malik Safrudin (FSM UKSW) % CP: imammaliks@live.com
% --- Inisialisasi
T = length(Rt);
% prior untuk a
lamd = HP(1);
% prior untuk b
alp = HP(2); bet = HP(3);
% nilai awal
a = 0.1; b = 0.1;
% banyaknya replikasi
Nits = 15000; BI = 5000; N = Nits-BI;
% alokasi penyimpanan sampel
av = zeros(N,1); bv = zeros(N,1); vol = zeros(T,1);
% --- Algoritma MCMC. Step 1: Membangkitkan Rantai Markov
tic
for its = 1:Nits
% --- pembangkitan sampel a
% mencari rata-rata dan variansi untuk distribusi proposal
hp1 = lamd;
m_a = bisection(Rt,a,b,hp1,'a'); %rata-rata dengan metode bagi dua
d2a = 0.5/m_a^2-0.5*(1-b)*Rt(1)^2/m_a^3...
-0.5*sum((2*Rt(2:end).^2-m_a-b*Rt(1:end-1).^2)...
./(m_a+b*Rt(1:end-1).^2).^3); Da = min(-0.0001,d2a);
s2_a =-1/Da; % variansi
% algoritma IC-MH
% 1: pembangkitan proposal a*
pr = truncnormrnd(1,m_a,sqrt(s2_a),1e-4,1);
% 2: mengevaluasi probabilitas penerimaan
log_pa = -0.5*log(pr)-0.5*(1-b)*Rt(1)^2/pr...
-0.5*sum(log(pr+b*Rt(1:end-1).^2))...
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
post_pr = exp(log_pa);
log_pa = -0.5*log(a)-0.5*(1-b)*Rt(1)^2/a...
-0.5*sum(log(a+b*Rt(1:end-1).^2))...
-0.5*sum(Rt(2:end).^2./(a+b*Rt(1:end-1).^2))-lamd*a; %F(a)
post_o = exp(log_pa);
ratio = post_pr/post_o; ap = min(1,ratio);
% 3: pembangkitan bilangan acak seragam
u = rand(1);
% 4: pembaruan
if u <= ap, a = pr; end
% --- pembangkitan sampel b
% mencari rata-rata dan variansi untuk distribusi proposal
mup = alp; Vp = bet; hp1 = [mup Vp];
m_b = bisection(Rt,a,b,hp1,'b'); % rata-rata d2b = -0.5/(1-m_b)^2+0.5*sum((Rt(1:end-1).^4)...
./((a+m_b*Rt(1:end-1).^2).^2))...
-sum(((Rt(1:end-1).^4).*(Rt(2:end).^2))...
./((a+m_b*Rt(1:end-1).^2).^3))...
-(alp-1)/m_b^2-(bet-1)/(1-m_b)^2; Db = min(-0.0001,d2b);
s2_b = -1/Db; % variansi
% algoritma IC-MH
% 1: pembangkitan proposal b*
pr = truncnormrnd(1,m_b,sqrt(s2_b),0,1);
% 2: mengevaluasi probabilitas penerimaan
log_pb = 0.5*log(1-pr)-0.5*(1-pr)*Rt(1)^2/a...
-0.5*sum(log(a+pr*Rt(1:end-1).^2))...
-0.5*sum(Rt(2:end).^2./(a+pr*Rt(1:end-1).^2))... +(alp-1)*log(pr)+(bet-1)*log(1-pr); % F(pr)
post_pr = exp(log_pb);
log_pb = 0.5*log(1-b)-0.5*(1-b)*Rt(1)^2/a...
-0.5*sum(log(a+b*Rt(1:end-1).^2))...
-0.5*sum(Rt(2:end).^2./(a+b*Rt(1:end-1).^2))...
+(alp-1)*log(b)+(bet-1)*log(1-b); %F(b)
post_o = exp(log_pb);
ratio = post_pr/post_o; ap = min(1,ratio);
% 3: pembangkitan bilangan acak seragam
u = rand(1);
% 4: pembaruan
if u <= ap, b = pr; end
% pengestimasian sigma
Volt = a+b*Rt(1:end-1).^2; Volt = [a/(1-b); volt];
% simpan a dan b
if its > BI
av(its-BI,1) = a; bv(its-BI,1) = b;
vol = ((its-BI-1)*vol+volt)/(its-BI); end
end
toc
% --- Algoritma MCMC. Step 2: Menghitung rata-rata Monte Carlo
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
% ===== Integrated Autocorrelation Time (IACT) ============================ % Berapa banyak sampel yang harus dibangkitkan untuk mendapatkan sampel % yang independen (seberapa cepat konvergensi simulasi)
resultsIAT = IACT(draws); IAT = [resultsIAT.iact];
% ===== Uji Konvergensi Geweke ============================================
idraw1 = round(.1*N);
resultCV = momentg(draws(1:idraw1,:)); meansa = [resultCV.pmean];
nsea = [resultCV.nse1];
idraw2 = round(.5*N)+1;
resultCV = momentg(draws(idraw2:N,:)); meansb = [resultCV.pmean];
nseb = [resultCV.nse1];
CD = (meansa - meansb)./sqrt(nsea+nseb); onetail = 1-normcdf(abs(CD),0,1);
pV = 2*onetail;
% ===== 95% Highest Posterior Density (HPD) Interval ======================
resultsHPD = HPD(draws,0.05); LB = [resultsHPD.LB];
UB = [resultsHPD.UB];
% ===== Numerical Standard Error (NSE) ====================================
resultsNSE = NSE(draws); NSEd = [resultsNSE.nse];
%====================== Mengatur hasil pencetakan =========================
%--- Statistik Parameter:
in.cnames = char('a','b');
in.rnames = char('Parameter','Mean','SD','LB','UB','IACT','NSE','G-CD',
'p-Value');
in.fmt = '%16.6f';
tmp = [MP; SP; LB; UB; IAT; NSEd; CD; pV];
fprintf(1,’Estimasi menggunakan MCMC dan Uji Diagnosa\n'); % cetak hasil
mprint(tmp,in);
hasil.vol = vol; hasil.av = av; hasil.bv = bv;
2.1.2 Kode
bisection 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18function mab = bisection(Rt,a,b,hp1,par)
% Tujuan : Mencari akar dari F’(a)=0 atau F’(b)=0 menggunakan metode % bagi dua
%
% ---% Masukan : Rt = return
% a = nilai a % b = nilai b % hp1 = nilai prior % par = 'a' atau 'b'
% --- % keluaran : mab = akar penyelesaian
eps_step = 1e-2;
if par == 'a'
bb = 1e-3; ba = 1;
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
bb = 0; ba = 1;
end
if diffARCH(Rt,a,b,hp1,bb,par) == 0 % derivatif pertama
mab = bb; return;
elseif diffARCH (Rt,a,b,hp1,ba,par) == 0 mab = ba;
return;
elseif diffARCH(Rt,a,b,hp1,ba,par)*diffARCH(Rt,a,b,hp1,bb,par) > 0 error( 'diffARCH(ba) dan diffARCH(bb) tidak mempunyai tanda
berlawanan' );
end
while abs(bb - ba) >= eps_step c = (ba + bb)/2;
if diffARCH(Rt,a,b,hp1,c,par) == 0 mab = c;
return;
elseif diffARCH(Rt,a,b,hp1,c,par)*diffARCH(Rt,a,b,hp1,ba,par) < 0 bb = c;
else
ba = c; end
end
mab = c;
2.1.3 Kode untuk turunan pertama
F(
a) dan
F(
b)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27function Fab = diffARCH(Rt,a,b,hp1,bts,par)
% Tujuan : Mengitung F’(a) atau F’(b) %
% ---% Masukan : Rt = return
% a = nilai a % b = nilai b % hp1 = nilai prior
% bts = batas kiri/kanan interval pada metode bagi dua % par = 'a' atau 'b'
% --- % keluaran : Fab = nilai turunan pertama
if par == 'a'% derivatif pertama terhadap a
a = bts; lamd = hp1;
Fab = -1/(2*a)+(1-b)*Rt(1)^2/(2*a^2)...
-0.5*sum((a+b*Rt(1:end-1).^2-Rt(2:end).^2)...
./(a+b*Rt(1:end-1).^2).^2)-lamd;
elseif par == 'b' % derivatif pertama terhadap b
b = bts;
alp = hp1(1); bet=hp1(2);
Fab = -1/(2*(1-b))+Rt(1)^2/2*a...
-0.5*sum(Rt(1:end-1).^2./(a+b*Rt(1:end-1).^2)) ...
+0.5*sum(Rt(1:end-1).^2.*Rt(2:end).^2
./((a+b*Rt(1:end-1).^2).^2))+(alp-1)/b-(bet-1)/(1-b);
end
2.1.4
Kode Pendukung
Lampiran 2.2 Kode Matlab untuk Estimasi Model ARCH Berdistribusi
Student-t2.2.1 Kode Utama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
function hasil=archt_mcmc(Rt,HP)
% Tujuan: Mengestimasi parameter-parameter dalam model ARCH % R_t = sigma_t*z_t^0.5*eta_t, eta_t~N(0,1)
% sigma_t^2 = a + b*R_{t-1}^2
% ---% Algoritma: MCMC
% ---% Masukan: Rt = Return = 100*[log(S_t)-log(S_{t-1}],
% dimana S_t = nilai kurs pada saat t
% HP = Hyperparameter = [lambda alpha beta], untuk prior % a ~ exp(lambda) dan b ~ beta(alpha_b,beta_b)
% ---% Keluaran: hasil.vol = sampel-sampel parameter vol
% Hasil.zv = sampel-sampel parameter z_t % hasil.av = sampel-sampel parameter a % hasil.bv = sampel-sampel parameter b % Hasil.nuv = sampel-sampel parameter nu % Ditulis oleh Imam Malik Safrudin (FSM UKSW) % CP: imammaliks@live.com
% --- I: Inisialisasi
T = length(Rt);
% prior untuk a
lamd = HP(1);
% prior untuk b
alp = HP(2); bet = HP(3);
% prior untuk nu
alpnu = HP(4); betnu = HP(5);
% nilai awal
a = 0.1; b = 0.1; nu = 20;
% banyaknya replikasi
Nits = 15000; BI = 5000; N = Nits-BI;
% alokasi penyimpanan sampel
av = zeros(N,1); bv = zeros(N,1); nuv = zeros(N,1); zv = zeros(T,1); vol = zeros(T,1);
% --- Algoritma MCMC. Step 1: Membangkitkan Rantai Markov
tic
for its = 1:Nits
% --- pembangkitan sampel z
alpz = (nu+1)/2;
betz1 = 0.5*((1-b)*Rt(1)^2+a*nu)/a;
betz2T = (Rt(2:end).^2+(a+b*Rt(1:end-1).^2)*nu)...
./(2*(a+b*Rt(1:end-1).^2)); betz = [betz1; betz2T];
z = 1./gamrnd(alpz,1./betz);
% --- pembangkitan sampel nu
% mencari rata-rata dan variansi untuk proposal bersyarat
Hpv = [alpnu betnu];
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
d2v = 0.5*T/mv-T/4*psi(1,mv/2)-(alpnu-1)/mv^2; Dv = min(-0.0001,d2v);
s2v = -1/Dv; %variansi
% algoritma IC-MH
% 1: pembangkitan proposal nu*
pr = truncnormrnd(1,mv,sqrt(s2v),2.1,40); % 2: mengevaluasi probabilitas penerimaan
log_pv = 0.5*pr*T*log(pr/2)-T*gammaln(pr/2)-pr/2...
*sum(log(z)+1./z)+(alpnu-1)*log(pr)-betnu*pr; post_pr = exp(log_pv);
log_pv = 0.5*nu*T*log(nu/2)-T*gammaln(nu/2)-nu/2...
*sum(log(z)+1./z)+(alpnu-1)*log(nu)-betnu*nu; post_o = exp(log_pv);
ratio = post_pr/post_o; ap = min(1,ratio);
% 3: pembangkitan variabel acak seragam
u = rand(1); % 4: pembaruan
if u <= ap, nu = pr; end
nu
% --- pembangkitan sampel a
% mencari rata-rata dan variansi untuk distribusi proposal
hp1 = lamd;
m_a = bisection_st(Rt,a,b,hp1,z,'a'); % rata-rata
d2a = 1/(2*m_a^2)-0.5*(1-b)*Rt(1)^2/(m_a^3*z(1))+0.5*...
sum(1./(m_a+b*Rt(1:end-1).^2).^2)-...
sum(Rt(2:end).^2./((m_a+b*Rt(1:end-1).^2).^3.*z(2:end))); Da = min(-0.0001,d2a);
s2_a = -1/Da; % variansi
% algoritma IC-MH
% 1: pembagkitan proposal a*
pr = truncnormrnd(1,m_a,sqrt(s2_a),1e-4,1); % 2: mengevaluasi probabilitas penerimaan
log_pa = -0.5*log(pr)-0.5*(1-b)*Rt(1)^2/(pr*z(1))-...
0.5*sum(log(pr+b*Rt(1:end-1).^2))-...
0.5*sum(Rt(2:end).^2./((pr+b*Rt(1:end-1).^2).*z(2:end)))-...
lamd*pr; % F(pr)
post_pr = exp(log_pa);
log_pa = -0.5*log(a)-0.5*(1-b)*Rt(1)^2/(a*z(1))-...
0.5*sum(log(a+b*Rt(1:end-1).^2))-...
0.5*sum(Rt(2:end).^2./((a+b*Rt(1:end-1).^2).*z(2:end)))-...
lamd*a; % F(a)
post_o = exp(log_pa);
ratio = post_pr/post_o; ap = min(1,ratio);
% 3: pembangkitan variabel acak seragam
u = rand(1); % 4: pembaruan
if u <= ap, a = pr; end
% --- pembangkitan sampel b
% mencari rata-rata dan variansi untuk distribusi proposal
mup = alp; Vp = bet; hp1 = [mup Vp];
m_b = bisection_st(Rt,a,b,hp1,z,'b'); % rata-rata
d2b = -0.5/(1-m_b)^2+0.5*sum((Rt(1:end-1).^4)...
./((a+m_b*Rt(1:end-1).^2).^2))...
-sum(((Rt(1:end-1).^4).*(Rt(2:end).^2))...
./((a+m_b*Rt(1:end-1).^2).^3.*z(2:end)))...
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
s2_b = -1/Db; % variansi
% algoritma IC-MH
% 1: pembangkitan proposal b*
pr = truncnormrnd(1,m_b,sqrt(s2_b),0,1); % 2: mengevaluasi probabilitas penerimaan
log_pb = 0.5*log(1-pr)-0.5*(1-pr)*Rt(1)^2/(a*z(1))-...
0.5*sum(log(a+pr*Rt(1:end-1).^2))-...
0.5*sum(Rt(2:end).^2./(a+pr*Rt(1:end-1).^2.*z(2:end)))...
+(alp-1)*log(pr)+(bet-1)*log(1-pr); % F(pr)
post_pr = exp(log_pb);
log_pb = 0.5*log(1-b)-0.5*(1-b)*Rt(1)^2/(a*z(1))-...
0.5*sum(log(a+b*Rt(1:end-1).^2))-...
0.5*sum(Rt(2:end).^2./(a+b*Rt(1:end-1).^2.*z(2:end)))...
+(alp-1)*log(b)+(bet-1)*log(1-b); %F(b)
post_o = exp(log_pb);
ratio = post_pr/post_o; ap = min(1,ratio);
% 3: pembangkitan variabel acak seragam
u = rand(1); % 4: pembaruan
if u <= ap, b = pr; end
% pengestimasian sigma
volt = a+b*Rt(1:end-1).^2; volt = [a/(1-b); volt]; % simpan a dan b
if its > BI
av(its-BI,1) = a; bv(its-BI,1) = b; nuv(its-BI,1) = nu;
zv = ((its-BI-1)*zv+z)/(its-BI); vol = ((its-BI-1)*vol+volt)/(its-BI); end
end
toc
% --- Algoritma MCMC. Step 2: Menghitung rata-rata Monte Carlo draws = [av bv nuv];
MP = mean(draws); SP = std(draws);
% ===== Integrated Autocorrelation Time (IACT) ============================ % Berapa banyak sampel yang harus dibangkitkan untuk mendapatkan sampel % yang independen (seberapa cepat konvergensi simulasi)
resultsIAT = IACT(draws); IAT = [resultsIAT.iact];
% ===== Uji Konvergensi Geweke ============================================
idraw1 = round(.1*N);
resultCV = momentg(draws(1:idraw1,:)); meansa = [resultCV.pmean];
nsea = [resultCV.nse1];
idraw2 = round(.5*N)+1;
resultCV = momentg(draws(idraw2:N,:)); meansb = [resultCV.pmean];
nseb = [resultCV.nse1];
CD = (meansa - meansb)./sqrt(nsea+nseb); onetail = 1-normcdf(abs(CD),0,1);
pV = 2*onetail;
% ===== 95% Highest Posterior Density (HPD) Interval ======================
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
LB = [resultsHPD.LB]; UB = [resultsHPD.UB];
% ===== Numerical Standard Error (NSE) ====================================
resultsNSE = NSE(draws); NSEd = [resultsNSE.nse];
%====================== Pengaturan Pencetakan Hasil ======================= %--- Statistik Parameter
in.cnames = char('a','b','nu');
in.rnames = char('Parameter','Mean','SD','LB','UB','IACT','NSE','G-CD',
'p-Value');
in.fmt = '%16.6f';
tmp = [MP; SP; LB; UB; IAT; NSEd; CD; pV];
fprintf(1,'Estimasi menggunakan MCMC dan Uji Diagnostik\n'); mprint(tmp,in);
hasil.vol = vol; hasil.zv = zv; hasil.av = av; hasil.bv = bv; hasil.nuv = nuv;
2.2.2 Kode metode bagi dua untuk
�′
= �
atau
�′
= �
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40function mab = bisection_st(Rt,a,b,hp1,z,par)
% Tujuan : Mencari akar dari F’(a)=0 atau F’(b)=0 menggunakan metode
% bagi dua %
% ---% Masukan : Rt = return
% a = nilai a % b = nilai b % hp1 = nilai prior
% z = [z_1, z_2, z_3, ….,z_T]
% par = 'a' atau 'b'
% --- % keluaran : mab = akar penyelesaian
eps_step = 1e-2;
if par == 'a'
bb = 1e-5; ba = 1;
elseif par == 'b'
bb = 0; ba = 1;
end
if diffARCH_st(Rt,a,b,hp1,z,bb,par) == 0 %derivatif pertama
mab = bb; return;
elseif diffARCH_st(Rt,a,b,hp1,z,ba,par) == 0 mab = ba;
return;
elseif diffARCH_st(Rt,a,b,hp1,z,ba,par)*diffARCH_st(Rt,a,b,hp1,z,bb,par) > 0
error( 'diffARCH(ba) and diffARCH(bb) do not have opposite signs' );
end
while abs(bb - ba) >= eps_step % || abs(diffARCH(a,b,y,T,bb))>=eps_abs && abs(diffARCH(a,b,y,T,ba)) >= eps_abs
c = (ba + bb)/2;
if diffARCH_st(Rt,a,b,hp1,z,c,par) == 0 mab = c;
41 42 43 44 45 46 47 48 elseif
diffARCH_st(Rt,a,b,hp1,z,c,par)*diffARCH_st(Rt,a,b,hp1,z,ba,par) < 0 bb = c;
else
ba = c; end
end
mab = c;
2.2.3 Kode metode bagi dua untuk
�′ �
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36function mv = bisection_nu(hpv,z)
% Tujuan : Mencari akar dari F’(v)= 0 menggunakan metode bagi dua
%
% ---% Masukan : hpv = nilai prior v
% z = [z_1, z_2, z_3, ….,z_T]
% --- % keluaran : mv = akar penyelesaian
eps_step = 1e-2; bb = 2.1;
ba = 100;
if diffFnu(hpv,z,bb) == 0 % derivatif pertama
mv = bb; return;
elseif diffFnu(hpv,z,ba) == 0 mv = ba;
return;
elseif diffFnu(hpv,z,bb)*diffFnu(hpv,z,ba) > 0
error( 'diffFnu(a) and diffFnu(b) do not have opposite signs' );
end
while abs(ba - bb) >= eps_step % || abs(LV1(a,b,y,T,bb))>=eps_abs && abs(LV1(a,b,y,T,ba)) >= eps_abs
c = (ba + bb)/2;
if diffFnu(hpv,z,c) == 0 mv = c;
return;
elseif diffFnu(hpv,z,c)*diffFnu(hpv,z,ba) < 0 bb = c;
else
ba = c; end
end
mv = c;
2.2.4 Kode penghitungan
�′ �
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19function Fab = diffARCH_st(Rt,a,b,hp1,z,bts,par)
% Tujuan : Mengitung F’(v)
% ---% Masukan : Rt = return
% a = nilai a % b = nilai b % hp1 = nilai prior
% z = [z_1, z_2, z_3, ….,z_T]
% bts = batas kiri/kanan interval pada metode bagi dua % par = 'a' atau 'b'
% --- % keluaran : Fab = nilai turunan pertama
if par =='a'% derivatif pertama terhadap a
a = bts; lamd = hp1;
Fab = -1/(2*a)+0.5*(1-b)*Rt(1)^2/(a^2*z(1))...
-0.5*sum(1./(a+b*Rt(1:end-1).^2))...
20 21 22 23 24 25 26 27 28 29
.*z(2:end)))-lamd;
elseif par == 'b' % derivatif pertama terhadap b
b = bts;
alp = hp1(1); bet=hp1(2);
Fab = -1/(2*(1-b))+Rt(1)^2/(2*a*z(1))...
-0.5*sum(Rt(1:end-1).^2./(a+b*Rt(1:end-1).^2))...
+0.5*sum(Rt(1:end-1).^2.*Rt(2:end).^2...
./((a+b*Rt(1:end-1).^2).^2.*z(2:end)))...
+(alp-1)/b-(bet-1)/(1-b);