KAJIAN MODEL HIDDEN MARKOV UNTUK MENDUGA VOLATILITAS INDEKS HARGA SAHAM
ABDUL BAIST
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR 2013
PERNYATAAN MENGENAI TESIS DAN SUMBER INFORMASI Dengan ini saya menyatakan bahwa tesis Kajian Model Hidden Markov untuk Menduga Volatilitas Indeks Harga Saham adalah karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapun kepada perguruan tinggi manapun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir Tesis ini. Bogor, Januari 2013 Abdul Baist NRP G551090371
ABSTRACT
ABDUL BAIST. The Study of Hidden Markov Model for Estimating Stocks Index Volatility. Supervised by BERLIAN SETIAWATY and N. K. KUTHA ARDANA. Volatility is a measure of uncertainty, which is useful for investor to plan a good investment strategy. The problem is that volatility is unobservable, and estimating volatility is not a trivial task. Hidden Markov model is, a model which is consisted of two processes, i.e. observation and a Markov process. The Markov process is assumed to be unobserved (hidden). In this thesis, LQ45 index is considered as the observation process and the unobserved hidden Markov is the volatility. To estimate the volatility of LQ45 index, the model proposed by Rossi and Gallo (2006) is used. The result of the study shows that volatility estimation of the LQ45 index using the model performs well. This is shown by the calculated error using symmetric mean absolute percentage error, which is only about 13.62%.
Keywords: hidden Markov model, volatility estimation
RINGKASAN ABDUL BAIST. Kajian Model Hidden Markov untuk Menduga Volatilitas Indeks Harga Saham. Dibimbing oleh BERLIAN SETIAWATY dan N. K. KUTHA ARDANA. Misalkan
harga sebuah aset pada waktu t. Return atas aset tersebut, yaitu , dianggap sebagai peubah acak yang dapat diamati pada waktu t, untuk t = 1,…,T. Volatilitasnya dikendalikan oleh 3-state rantai Markov dengan ruang state dengan adalah vektor satuan di . Model volatilitas stokastik ditulis dalam format ruang–state: (1) , (2) di mana adalah bentuk autoregresi sederhana . (3) dan diasumsikan bebas, di mana merupakan perubahan return yang diasumsikan menyebar Student’s-t dengan varians satu dan derajat kebebasan , sedangkan merupakan representasi semi-martingale, , [ | ] dan adalah filtrasi yang dibangkitkan oleh . adalah nilai volatilitas yang terjadi pada waktu t, di mana {
,
(4)
dengan dan adalah konstanta. Ketika positif, dapat diartikan bahwa varians berada pada regime (state) volatilitas terendah, dan varians berada pada regime (state) volatilitas tertinggi. Untuk menggambarkan keadaan di mana volatilitas dibangkitkan oleh return pada waktu t, maka matriks transisi didefinisikan sebagai berikut: [ ] { , (5) [ ] di mana (
) dan
(
).
Elemen matriks didefinisikan sebagai berikut:
{
[
]
[
] |
|
(6)
∑ [
]
[
,
]
| | { di mana > 0 ( adalah parameter yang menggambarkan korelasi antara return dan perubahan volatilitas), dan | | , ( adalah parameter time-varying) untuk beberapa koefisien a dan b, di mana () menyatakan fungsi sebaran normal baku. Pasangan merupakan model Hidden Markov, dan berdasarkan persamaan (1)-(6), model Hidden Markov untuk volatilitas tersebut dicirikan oleh . Fungsi log-likelihood didefinisikan sebagai (
) |
|
| ∑
|
|
|
|
,
dengan
.
Untuk pendugaan parameter yang memaksimumkan fungsi log-likelihood digunakan algoritma Berndt, Hall, Hall, Hausman (BHHH). Pendugaan volatilitas untuk satu langkah ke depan adalah ̂
∑
|
|
|
Dari 1375 data yang tersedia, sebanyak 917 (sekitar dua pertiga dari keseluruhan) digunakan untuk pendugaan model (in-sample), sementara itu sisanya sebanyak 458 digunakan untuk analisis out-of-sample (prediksi yang akan datang). Dari data in-sample yang digunakan, dengan data nilai awal , menghasilkan parameter model sebagai berikut: ̂
̂
̂
̂
̂
̂
̂
̂
.
Pendugaan volatilitas untuk satu langkah ke depan diterapkan pada data in-sample dan out-of-sample. Perhitungan galat menggunakan Symmetric Mean Absolute Percentage Error (SMAPE) dengan rumus
SMAPE
{
∑
|
|
di mana At nilai aktual, dan Ft nilai dugaan. Perhitungan SMAPE dari volatilitas dugaan in-sample menghasilkan nilai rataan galat sebesar 13.79%, nilai galat maksimum sebesar 67.28%, dan nilai galat minimum sebesar 0.00%, serta kuartil ke-1 (Q1), kuartil ke-2 (Q2), dan kuartil ke3 (Q3) masing-masing sebesar 4.80%, 11.24%, dan 20.09% serta jarak interkuartil sebesar 15.29%. Perhitungan SMAPE dari volatilitas dugaan out-of-sample menghasilkan nilai rataan galat sebesar 13.62%, nilai galat maksimum sebesar 60.07%, dan nilai galat minimum sebesar 0.004%, serta kuartil ke-1 (Q1), kuartil ke-2 (Q2), dan kuartil ke-3 (Q3) masing-masing sebesar 5.71%, 11.32%, dan 20.06% serta jarak interkuartil sebesar 14.35%. Kata kunci: model Hidden Markov, algoritma BHHH, volatilitas, SMAPE
Hak Cipta milik IPB, tahun 2013 Hak Cipta dilindungi Undang-Undang Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan, penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau tinjauan masalah; dan pengutipan tersebut tidak merugikan kepentingan yang wajar IPB Dilarang mengumumkan dan memperbanyak sebagian atau seluruh Karya tulis dalam bentuk apa pun tanpa izin IPB
KAJIAN MODEL HIDDEN MARKOV UNTUK MENDUGA VOLATILITAS INDEKS HARGA SAHAM
ABDUL BAIST
Tesis sebagai salah satu syarat untuk memperoleh gelar Magister Sains pada Program Studi Matematika Terapan
SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR 2013
Penguji Luar Komisi pada Ujian Tesis: Dr. Ir. I Wayan Mangku, M.Sc.
Judul Tesis Nama NRP
: Kajian Model Hidden Markov untuk Menduga Volatilitas Indeks Harga Saham : Abdul Baist : G551090371
Disetujui Komisi Pembimbing
Dr. Berlian Setiawaty, M.S. Ketua
Ir. N. K. Kutha Ardana, M.Sc. Anggota
Diketahui
Ketua Program Studi Matematika Terapan
Dekan Sekolah Pascasarjana
Dr. Ir. Endar H. Nugrahani, M.S.
Dr. Ir. Dahrul Syah, M.Sc.Agr.
Tanggal Ujian: 23 Januari 2013
Tanggal Lulus:
PRAKATA Puji dan syukur penulis panjatkan kepada Allah SWT atas segala karuniaNya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian ini ialah model hidden Markov, dengan judul Kajian Model Hidden Markov untuk Menduga Volatilitas Indeks Harga Saham. Terima kasih penulis ucapkan kepada Ibu Dr. Berlian Setiawaty, M.S. dan Bapak Ir. N. K. Kutha Ardana, M.Sc. selaku pembimbing. Ungkapan terima kasih juga disampaikan kepada bapak, ibu, serta seluruh keluarga, atas segala doa dan kasih sayangnya. Semoga karya ilmiah ini bermanfaat. Bogor, Januari 2013 Abdul Baist
RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 8 Mei 1979 dari bapak H. Muhammad Ali dan ibu Hj. Asiah. Penulis merupakan putra ke lima dari enam bersaudara. Pendidikan sarjana ditempuh di Program Studi Pendidikan Matematika, Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam Universitas Pendidikan Indonesia Bandung, lulus pada tahun 2005. Pada tahun 2009, penulis diterima di Program Studi Matematika Terapan pada Program Pascasarjana Institut Pertanian Bogor. Penulis bekerja sebagai pengajar di SMK Muhammadiyah 3 Jakarta dari tahun 2006 hingga 2009.
DAFTAR ISI
Halaman DAFTAR GAMBAR ......................................................................................
xii
DAFTAR LAMPIRAN ...................................................................................
xiii
1
2
3
4
5
PENDAHULUAN 1.1 Latar Belakang ................................................................................... 1.2 Tujuan Penelitian ...............................................................................
1 3
LANDASAN TEORI 2.1 Ruang Contoh, Kejadian dan Peluang ............................................... 2.2 Peubah Acak dan Fungsi Sebaran ...................................................... 2.3 Penduga .............................................................................................. 2.4 Proses Stokastik ................................................................................. 2.5 Vektor ................................................................................................
4 5 8 8 11
MODEL HIDDEN MARKOV 3.1 Model Hidden Markov ....................................................................... 3.2 Dugaan Maksimum Likelihood .......................................................... 3.3 Algoritma Pemrograman ....................................................................
14 16 22
PENDUGAAN VOLATILITAS INDEKS HARGA SAHAM 4.1 Indeks Harga Saham .......................................................................... 4.2 Volatilitas ........................................................................................... 4.3 Pendugaan Volatilitas ........................................................................
25 25 26
SIMPULAN DAN SARAN .....................................................................
31
DAFTAR PUSTAKA ..............................................................................
32
LAMPIRAN .............................................................................................
35
xi
DAFTAR GAMBAR
Halaman 1 Grafik data harian indeks LQ45 ....................................................................
2
2 Grafik volatilitas dugaan in-sample ............................................................... 28 3 Box-Whisker Plot untuk SMAPE dari volatilitas dugaan in-sample ............. 28 4 Grafik volatilitas dugaan out-of-sample ......................................................... 29 5 Box-Whisker Plot untuk SMAPE dari volatilitas dugaan out-of-sample ....... 29
xii
DAFTAR LAMPIRAN
Halaman 1 Pembuktian sebaran Student’s-t konvergen ke sebaran normal ketika ................................................................................................. 36 2 Proses penurunan turunan pertama fungsi sebaran return terhadap parameter yang berkaitan ............................................................................... 39 3 Penurunan turunan pertama fungsi log-Likelihood ....................................... 45 4 Pemrograman menggunakan software MATLAB 7.7 ................................... 51 5 Pemrograman menggunakan software Mathematica 8.0 ............................... 63
xiii
BAB I PENDAHULUAN 1.1 LatarBelakang Volatilitas adalah ukuran ketidakpastian perubahan pada nilai sebuah sekuritas. Volatilitas yang lebih tinggi berarti nilai sekuritas berpotensi menyebar dalam rentangan nilai yang lebih besar. Ini berarti bahwa harga sekuritas dapat berubah secara dramatis dalam periode waktu yang pendek pada arah manapun. Volatilitas yang lebih rendah berarti nilai sekuritas tidak berfluktuasi secara dramatis, tetapi terjadi perubahan nilai pada langkah yang tetap dalam suatu periode waktu. (http://www.investopedia.com) Volatilitas menjadi perhatian besar bagi para investor atau orang yang menanamkan uangnya dalam dunia investasi. Para investor ingin mengetahui seberapa besar volatilitas terjadi. Dengan mengetahui volatilitas, investor dapat memperkirakan keuntungan yang akan didapat, atau bahkan kerugian yang akan diderita. Permasalahannya adalah volatilitas tidak dapat diamati secara langsung, dan bukan pekerjaan yang mudah untuk menduganya. Sebagaimana yang diungkapkan oleh Cvitanic et al. (2005) “Estimating volatility from observed stock prices is not a trivial task in either complete or incomplete models, in part because the prices are observed at discrete, possibly random time points. Since volatility itself is not observed, it is natural to apply filtering methods to estimate the volatility process from historical stock price observations.” Terdapat banyak cara untuk menduga volatilitas dari data finansial. Beberapa yang cukup dikenal adalah model tipe Generalized Autoregressive Conditional
Heteroskedasticity
(GARCH)
Conditional
Heteroskedasticity
(SWARCH).
merupakan
hasil
pengembangan
dari
dan
tipe
Switching
Model
tipe
Autoregressive GARCH
Autoregressive
yang
Conditional
Heteroskedasticity (ARCH), ditemukan Bollerslev (1986). Sedangkan tipe SWARCH ditemukan oleh Hamilton dan Susmel pada tahun 1994 yang mengkombinasikan model tipe ARCH dengan metode Markov switching.
2
Tipe GARCH memiliki kelemahan yang berkaitan dengan persistensi volatilitas (kondisi di mana volatilitas tinggi pada suatu hari diikuti dengan volatilitas tinggi, dan volatilitas rendah diikuti dengan volatilitas rendah). Lamoureux dan Lastrapes (1990) menyatakan bahwa persistensi yang sangat besar yang diindikasikan oleh GARCH sebagai ketidakmampuan menangkap perubahan struktural dalam varians tak bersyarat return aset. Sedangkan pada tipe SWARCH terdapat kelemahan yang berkaitan dengan banyaknya state. Sebagaimana yang diungkapkan oleh Hamilton dan Susmel (1994) bahwa maksimum global fungsi likelihood spesifikasi SWARCH tidak terdeteksi ketika jumlah state rantai Markov di atas tiga. Model yang penulis kaji di sini adalah sebuah model Hidden Markov untuk menduga volatilitas yang diajukan oleh Rossi dan Gallo (2006). Rossi dan Gallo (2006) menyatakan bahwa model yang diajukan dapat mengatasi permasalahan bertambahnya jumlah state, dan dapat mengakomodasi persistensi volatilitas dengan mudah. Model Hidden Markov yang dikaji dalam penelitian ini diaplikasikan pada data harian (close-to-close) dari indeks LQ45. Data pengamatan yang didapat sebanyak 1375, dimulai dari 2 Januari 2007 hingga 3 September 2012. Data diambil dari http://www.finance.yahoo.com. Grafik dapat dilihat pada gambar berikut. 800 700 600 500 400 300 200 100 0
Gambar 1.1 Grafik data harian indeks LQ45. Menggunakan data tersebut, parameter model diduga dengan metode maksimum likelihood yang melibatkan filtering untuk state. Filtering untuk state
3
yang tak diamati menggunakan filtering rekursif yang diajukan oleh Hamilton (1994). Setelah didapatkan dugaan parameter, selanjutnya dilakukan peramalan varians dengan menggunakan algoritma yang diajukan oleh Rossi dan Gallo (2006) sehingga dapat diduga volatilitas. Untuk smoothing menggunakan smoother yang diajukan oleh Kim (1994). Untuk menghitung dan menganalisis data tersebut dibuat suatu program komputasi dengan menggunakan software MATLAB 7.7. 1.2 TujuanPenelitian Tujuan penelitian ini adalah: 1. Mengkaji model Hidden Markov yang diajukan oleh Rossi dan Gallo (2006). 2. Mengaplikasikan model untuk menduga volatilitas pada indeks LQ45.
BAB II LANDASAN TEORI 2.1 Ruang Contoh, Kejadian dan Peluang Dalam suatu percobaan seringkali dilakukan pengulangan yang biasanya dilakukan dalam kondisi yang sama. Semua kemungkinan hasil yang akan muncul dapat diketahui, tetapi hasil pada percobaan berikutnya tidak dapat diduga dengan tepat. Percobaan semacam ini, yang dapat diulang dalam kondisi yang sama, disebut percobaan acak. (Hogg & Craig 1995) Definisi 2.1.1 (Ruang Contoh dan Kejadian) Himpunan dari semua kemungkinan hasil dari suatu percobaan acak disebut ruang contoh, dinotasikan dengan . Suatu kejadian A adalah himpunan bagian dari . (Grimmet & Stirzaker 1992) Definisi 2.1.2 (Medan-) Medan- adalah suatu himpunan yang anggotanya terdiri atas himpunan bagian ruang contoh , yang memenuhi kondisi berikut: 1. 2. Jika A1, A2, … 3. Jika
maka
maka
(Grimmet & Stirzaker 1992) Definisi 2.1.3 (Ukuran Peluang) Misalkan fungsi
adalah medan- dari ruang contoh . Ukuran peluang adalah suatu pada
1. 2.
yang memenuhi: .
Jika
adalah himpunan yang saling lepas yaitu
untuk setiap pasangan Pasangan
, maka
∑
.
disebut ruang peluang. (Grimmet & Stirzaker 1992)
5
Definisi 2.1.4 (Kejadian Saling Bebas) Misalkan
adalah ruang peluang dan
saling bebas jika
Kejadian A dan B dikatakan
.
Misalkan I adalah himpunan indeks. Himpunan kejadian saling bebas jika P( i j
dikatakan
Ai ) P( Ai ) untuk setiap himpunan bagian berhingga J i j
dari I. (Grimmet & Stirzaker 1992) Definisi 2.1.5 (Peluang Bersyarat) Misalkan
sehingga P(A1) > 0. Misalkan pula A2 adalah sebarang
himpunan dalam . Peluang bersyarat dari A2 jika diketahui A1, dinotasikan dengan
, ialah
(Hogg & Craig 1995) 2.2 Peubah Acak dan Fungsi Sebaran Definisi 2.2.1 (Peubah Acak) Misalkan
adalah medan- dari ruang contoh . Suatu peubah acak X adalah
suatu fungsi
dengan sifat
untuk setiap
.
(Grimmet & Stirzaker 1992) Catatan: Peubah acak dinotasikan dengan huruf besar seperti X, Y, Z, sedangkan nilai peubah acak dinotasikan dengan huruf kecil seperti x, y, z. Definisi 2.2.2 (Fungsi Sebaran) Misalkan
adalah ruang peluang. Fungsi sebaran dari peubah acak X
adalah suatu fungsi
yang didefinisikan oleh .
(Grimmet & Stirzaker 1992)
6
Definisi 2.2.3 (Peubah Acak Diskret) Peubah acak X dikatakan diskret jika nilainya hanya pada himpunan bagian yang terhitung dari
. (Grimmet & Stirzaker 1992)
Catatan: Suatu himpunan bilangan C disebut terhitung jika C terdiri atas himpunan bilangan berhingga atau anggota C dapat dikorespondensikan 1-1 dengan bilangan bulat positif. Definisi 2.2.4 (Fungsi Massa Peluang) Misalkan
adalah ruang peluang. Fungsi massa peluang dari peubah acak
diskret X adalah fungsi
yang diberikan oleh .
(Grimmet & Stirzaker 1992) Definisi 2.2.5 (Nilai Harapan) Jika X adalah peubah acak diskret dengan fungsi massa peluang harapan dari X adalah
∑
, maka nilai
asalkan jumlah di atas konvergen
mutlak. (Hogg & Craig 1995) Lemma 2.2.6 (Sifat Nilai Harapan) Beberapa sifat nilai harapan, antara lain: 1) Jika k adalah suatu konstanta, maka E[k] = k. 2) Jika k adalah suatu konstanta dan V adalah peubah acak, maka E[kV] = kE[V]. 3) Jika k1, k2 adalah konstanta dan V1, V2 adalah peubah acak, maka E[k1V1 + k2V2] = k1E[V1] + k2E[V2]. (Bukti lihat Hogg & Craig 1995) Definisi 2.2.7 (Fungsi Sebaran Bersama Dua Peubah Acak) Fungsi sebaran bersama dari dua peubah acak X dan Y adalah suatu fungsi yang didefinisikan oleh (Grimmet & Stirzaker 1992)
.
7
Definisi 2.2.8 (Fungsi Gamma) Fungsi gamma,
, didefinisikan sebagai ∫
.
(Grimmet & Stirzaker 1992) Definisi 2.2.9 (Sebaran Student’s-t) Peubah acak X memiliki sebaran Student’s-t dengan k derajat kebebasan, X ~ tk, jika fungsi kepekatan peluangnya ( √
) ( )
(Kvam & Vidakovic 2007)
Definisi 2.2.10 (Sebaran Normal Baku) Peubah acak X disebut normal baku jika fungsi sebarannya adalah √
, yaitu jika
∫
(Ghahramani 2005) Definisi 2.2.11 (Sebaran Normal) Peubah acak X disebut normal dengan parameter
dan
, jika fungsi
kepekatannya adalah √ (Ghahramani 2005) Definisi 2.2.12 (Peubah Acak yang Dibakukan) Misalkan X sebuah peubah acak dengan nilai harapan Peubah acak
dan simpangan baku .
disebut sebagai X yang dibakukan. (Ghahramani 2005)
Definisi 2.2.13 (Metode Transformasi) Misalkan X peubah kontinu dengan fungsi kepekatan mungkin yaitu A. Untuk fungsi yang invertible
dan himpunan nilai yang , misalkan Y = h(X)
sebagai peubah acak dengan himpunan nilai yang mungkin adalah
8 . Misalkan bahwa inverse dari y = h(x) adalah fungsi x = h-1(y), yang terdiferensialkan untuk semua nilai
. Maka
, fungsi kepekatan Y, yaitu ,
.
(Ghahramani 2005) 2.3 Penduga Definisi 2.3.1 (Statistik) Statistik adalah suatu fungsi dari satu atau lebih peubah acak yang tidak bergantung pada parameter (yang tidak diketahui). (Hogg & Craig 1995) Definisi 2.3.2 (Penduga/estimator dan Dugaan/estimate) Misalkan
X2,
X1 ,
…,
Xn
adalah
peubah
acak.
Suatu
statistik
yang digunakan untuk menduga fungsi parameter g(),
dikatakan sebagai
penduga
(estimator) bagi
g().
Nilai
dari U dengan nilai amatan
amatan disebut
sebagai dugaan (estimate) bagi g(). (Hogg & Craig 1995) 2.4 Proses Stokastik Definisi 2.4.1 (Ruang State) Misalkan
merupakan nilai dari barisan peubah acak, maka S disebut ruang
state. (Grimmet & Stirzaker 1992) Definisi 2.4.2 (Proses Stokastik) Proses Stokastik
yang terdefinisi pada ruang peluang
adalah suatu himpunan dari peubah acak yang memetakan suatu ruang contoh ke ruang state S. (Ross 1996) Definisi 2.4.3 (Proses Stokastik dengan Waktu Diskret dan Kontinu) Suatu proses stokastik
disebut proses stokastik dengan waktu diskret
jika himpunan indeks T adalah himpunan terhitung (countable set), sedangkan disebut proses stokastik dengan waktu kontinu jika T adalah suatu interval. (Ross 1996)
9
Catatan: Contoh himpunan indeks T pada proses stokastik dengan waktu diskret adalah T = {0, 1, 2, …}, sedangkan contoh himpunan indeks T pada proses stokastik dengan waktu kontinu adalah T = [0,
), atau himpunan bilangan nyata.
Definisi 2.4.4 (Filtrasi) Misalkan jika
adalah barisan submedan- dari untuk semua
,
disebut filtrasi
.
(Grimmet & Stirzaker 1992) Definisi 2.4.5 (Measurable/Terukur) Misalkan
adalah ruang peluang. Jika fungsi untuk setiap
memiliki sifat
maka X dikatakan terukur-
(Grimmet & Stirzaker 1992) Definisi 2.4.6 (Adapted) Misalkan
adalah ruang peluang. Barisan peubah acak
dikatakan adapted ke filtrasi
jika
merupakan terukur-
untuk semua t.
disebut proses Martingale jika
untuk
(Grimmet & Stirzaker 1992) Definisi 2.4.7 (Martingale) Proses Stokastik semua t dan
. (Ross 1996)
Definisi 2.4.8 (Variasi Hingga) Misalkan
merupakan proses CADLAG (kontinu kanan dengan
limit kiri). Variasi A didefinisikan sebagai proses naik V yaitu {∑|
⋀
⋀
|
}
Sebuah proses A disebut memiliki variasi hingga jika proses variasi bersama V hingga (maksudnya, jika untuk setiap t dan , Vt ( ) ). (Bain 2009)
10
Definisi 2.4.9 (Waktu Acak) Misalkan
adalah ruang peluang.
. T disebut waktu acak
jika kejadian {T = t} ditentukan oleh peubah acak X1, …,
dari proses
Xt. Artinya dengan mengetahui X1, …, Xt maka diketahui apakah T = t atau tidak. Jika
, maka waktu acak T disebut sebagai stopping time. (Ross
1996) Definisi 2.4.10 (Lokal Martingale) M {M t ,
t
,0 t } adalah lokal martingale jika dan hanya jika terdapat
barisan stopping time Tn yang menuju tak hingga sedemikian sehingga M Tn merupakan martingale untuk setiap n. (Bain 2009) Definisi 2.4.11 (Semimartingale) Sebuah proses X adalah semimartingale jika X proses adapted CADLAG (kontinu kanan dengan limit kiri) yang memiliki dekomposisi X = X0 + M + A, di mana M lokal martingale, null pada saat nol dan A proses null pada saat nol, dengan jalur variasi hingga. (Bain 2009) Catatan: Null pada saat nol untuk proses stokastik X(t) maksudnya adalah meskipun pada saat t > 0 nilai dari X(t) itu acak, pada saat t = 0 (waktu mulai) diketahui/ditetapkan nilainya adalah nol: X(0) = 0 (atau, secara lebih formal, bahwa P(X(0) = 0) = 1). Contoh khusus ini merupakan proses random walk paling dasar. Definisi 2.4.12 (Rantai Markov dengan Waktu Diskret) Misalkan
adalah ruang peluang dan S adalah ruang state. Proses
stokastik
dengan ruang state S disebut rantai Markov dengan
waktu diskret jika
berlaku:
untuk semua kemungkinan nilai dari (Grimmet & Stirzaker 1992)
11
Definisi 2.4.13 (Matriks Transisi) Misalkan
adalah rantai Markov dan S adalah ruang state yang
berukuran N. Matriks transisi
berukuran
adalah matriks dari peluang untuk i = 1, 2, …, N.
transisi (Rossi & Gallo 2006) Definisi 2.4.14 (Nilai Harapan Bersyarat) Misalkan
adalah ruang peluang dan
adalah submedan- dari
X adalah peubah acak tak negatif dan terintegralkan, maka sebagai peubah acak yang terukurberpeluang nol, serta memenuhi:∫
. Jika
didefiniskan
dan bersifat tunggal kecuali pada kejadian ∫
.
(Elliot et al. 1995) 2.5 Vektor Definisi 2.5.1 (Ruang Vektor) V disebut ruang vektor, jika untuk setiap vektor
dan sebarang skalar k
dan l dipenuhi aksioma berikut: 1.
Jika
maka
.
2.
u + v = v + u.
3.
u + (v + w) = (u + v) + w.
4.
Ada
5.
Untuk
sehingga 0 + u = u + 0 = u, , ada
.
yang dinamakan negatif u sehingga
u + (–u ) = (– u ) + u = 0. 6.
Jika k adalah sebarang skalar dan
7.
k(u + v) = ku + kv.
8.
(k + l)u = ku + lu.
9.
k(lu) = (kl)u.
, maka
.
10. 1u = u. (Anton 1997) Definisi 2.5.2 (Perkalian Dalam) Jika
dan
, maka hasil kali dalam Euclid
adalah sebarang vektor pada didefinisikan dengan
12
. (Anton 1997) Definisi 2.5.3 (Ruang Hasil Kali Dalam) Sebuah hasil kali dalam pada ruang vektor real V adalah fungsi yang mengasosiasikan bilangan real
dengan masing-masing pasangan vektor u
dan v pada V sedemikian rupa sehingga aksioma-aksioma berikut dipenuhi untuk semua
dan skalar k:
1.
.
2.
.
3.
.
4.
dan
jika dan hanya jika v = 0.
Sebuah ruang vektor real dengan sebuah hasil kali dalam dinamakan ruang hasil kali dalam real. (Anton 1997) Definisi 2.5.4 (Hadamard Product) Hadamard product, dengan simbol operator
, merupakan perkalian elemen
dengan elemen dari dua buah matriks. Oleh karena itu, jika A B
[
] adalah dua buah matriks yang berukuran [
[
, maka ].
(Schott 1997) Definisi 2.5.5 (Matriks Hessenberg) Matriks
berukuran
disebut matriks Hessenberg atas jika
untuk i > j + 1:
. [
]
Matriks A disebut Hessenberg bawah jika AT Hessenberg atas. (Horn & Johnson 1990)
] dan
13
Definisi 2.5.6 (Matriks Tridiagonal) Matriks
berukuran
disebut matriks tridiagonal jika
, yang merupakan Hessenberg atas dan bawah, , ketika
:
. [ (Horn & Johnson 1990)
]
BAB III MODEL HIDDEN MARKOV 3.1
Model Hidden Markov Misalkan
harga sebuah aset pada waktu t. Return atas aset tersebut, yaitu , dianggap sebagai peubah acak yang dapat diamati pada waktu t,
untuk t = 1,…,T. Volatilitasnya dikendalikan oleh 3-state rantai Markov dengan ruang state
dengan
adalah vektor satuan di
. Model
volatilitas stokastik ditulis dalam format ruang–state: (1) , di mana
(2)
adalah bentuk autoregresi sederhana: .
dan
diasumsikan bebas, di mana
(3) merupakan perubahan return yang
diasumsikan menyebar Student’s-t dengan varians satu dan derajat kebebasan , sedangkan [ |
merupakan representasi semi-martingale,
]
dan
adalah filtrasi yang dibangkitkan oleh
adalah nilai volatilitas yang terjadi pada waktu t, dengan σ() sebuah fungsi penskalaan bernilai positif yang bernilai dan
ketika
=
. Jika
ketika
( ), maka
Misalkan
=
,
ketika
=
,
.
dan
, di mana i = 1, 2, 3,
maka { di mana
dan
adalah konstanta. Ketika
, positif,
varians berada pada regime (state) volatilitas terendah, dan
dapat diartikan bahwa varians berada pada
regime (state) volatilitas tertinggi. Berdasarkan hal tersebut, maka return pada persamaan (1) menjadi
15
.
(4)
{ pada persamaan (2) adalah matriks transisi berukuran 33 dari rantai Markov dengan elemennya: , dengan
adalah filtrasi
yang dibangkitkan oleh
menggambarkan peluang transisi rantai Markov. Entri dari dan ∑
(5) ,
yang ≥ 0,
memenuhi
= 1, untuk setiap 1 ≤ i, j ≤ 3 dan t.
Untuk menggambarkan keadaan di mana volatilitas dibangkitkan oleh return pada waktu t, maka matriks transisi didefinisikan sebagai berikut: {
[
]
[
]
,
(6)
dengan (
) dan
(
).
Keadaan model ini menunjukkan return dan perubahan volatilitas berkorelasi negatif. Jika pada waktu t harga aset turun, maka peluang bahwa suatu vektor state bergerak menuju tingkat volatilitas yang lebih tinggi harus lebih tinggi dari pada kasus harga aset naik. Jadi syarat untuk (
adalah : )
. Sementara itu untuk hal sebaliknya harus muncul ketika
. Sehingga
elemen matriks didefinisikan sebagai berikut:
{
[
]
[
] |
| (7)
16
∑ [
]
[
|
{ di mana
,
] |
> 0 ( adalah parameter yang menggambarkan korelasi antara return
dan perubahan volatilitas), dan | | , (
adalah parameter time-varying)
untuk beberapa koefisien a dan b, di mana () menyatakan fungsi sebaran normal baku, sehingga | |
√
Dengan menggunakan sederhana dari
dan
| |
∫ ,
. , dan
(8) , akan didapat bentuk
, yaitu [
]
[
],
dan [
]
. [ Pasangan
]
merupakan model Hidden Markov, dan berdasarkan
persamaan (1)-(8), model Hidden Markov untuk volatilitas tersebut dicirikan oleh 3.2
.
Dugaan Maksimum Likelihood Misalkan proses
dengan ruang state
merupakan 3-state rantai Markov yang tak diamati dan
proses yang diamati. Sebaran
dengan
17
diketahui
adalah
|
∑
|
∑
|
|
.
(9) |
Sementara itu, dengan menggunakan hukum total peluang, bentuk dirinci sebagai |
∑
|
∑
(
|
)
|
.
(10)
Sehingga persamaan (10) menjadi |
∑
∑
|
(
|
) |
(11)
Dari persamaan (1), , di mana
merupakan perubahan return yang diasumsikan menyebar Student’s-t.
Asumsi tersebut didasarkan pada penelitian Bollerslev (1987) bahwa sebaran Student’s-t lebih tepat untuk menggambarkan tingkat return. Diketahui fungsi kepekatan peluang dari sebaran Student’s-t adalah , dengan
, dan
. (Kvam & Vidakovic 2007). adalah
Misalkan dibakukan dan misalkan pula,
sebaran
Student’s-t
yang
. Maka dan
.
Dengan menggunakan metode transformasi, maka fungsi kepekatan peluang dari adalah |
| |
|
18
Dari persamaan (12), misalkan
. Maka, dan
.
Dengan menggunakan metode transformasi, maka fungsi kepekatan peluang dari adalah |
| |
|
Oleh karena itu [
|
]
[
]
*
+
, (12)
yang konvergen ke fungsi kepekatan sebaran normal, yaitu [ ketika
]
*
.
Bagian kedua dari persamaan (11) yaitu ( sedangkan
+
(
|
|
)
,
) persamaan (11) merupakan filtrasi dugaan state
yang didapat dengan memproses pengamatan masa lalu dan sekarang. Rekursif filter yang digunakan di sini adalah mengadaptasi rekursif filter yang diajukan oleh Hamilton dan Susmel (1994). Karena peluang bagi
merupakan 3-state rantai Markov, maka memiliki 3 fungsi kerapatan
. Fungsi kerapatan tersebut dikumpulkan dalam sebuah vektor, yaitu
19 | | |
[
]. |
Misalkan
[
|
|
]
[
]
|
di
mana
|
|
merepresentasikan [ (
)
|
|
] dan
[ [ [ [
| | |
] ]] ]
[ [ [ [
| | |
] ] ]
Diketahui bahwa sebaran bersama |
[
merupakan Hadamard product, maka | | |
[
]
| | |
].
dan |
(13)
adalah
]
|
(14)
sehingga diperoleh |
|
∑
|
∑
|
|
[(
|
|
)
|
|
|
|
]
(15)
di mana merupakan vektor satuan berukuran Jika persamaan (15) dibagi dengan
|
| |
[
|
]
.
, maka diperoleh
20 [
| ].
(16)
Sehingga berdasarkan persamaan (14), (15), dan (16) maka diperoleh [ di mana [
|
| ]
| ] merupakan
| . Oleh karena itu
|
( | [( |
|
)
.
)
(17)
]
Dari persamaan (2) didapat [ |
]
[
|
]
[
|
]
[
|
]
|
[ |
]
(18)
|
yang merupakan harapan
berada pada suatu state dengan diberikan pengamatan
sebelumnya.
Sehingga persamaan (17) menjadi ( |
)
|
[(
|
)
.
(19)
]
Menggunakan persamaan (11) dan mengamati bahwa
|
| | |
[
[
]
|
[∑
|
(
[ | ]
|
]
| )] |
,
maka bentuk umum fungsi likelihood dari proses return yang diamati adalah |
∑∑
|
|
|
[
|
[
|
|
|
]
|
[
|
|
|
]
|
|
]
|
21
(20) dengan
, jika
atau
, jika
.
Fungsi log-likelihood didefinisikan sebagai (
) |
|
|
|
∑
|
|
| ,
dengan
.
Untuk pendugaan parameter yang memaksimumkan fungsi log-likelihood digunakan algoritma Berndt, Hall, Hall, Hausman (BHHH). Langkah algoritma BHHH pada penelitian ini mengadapatasi langkah algoritma BHHH yang diuraikan oleh Arneric dan Rozga (2009). Berikut langkah algoritma tersebut: Langkah 1 Tentukan vektor parameter awal
dan kriteria kekonvergenan tol > 0, dengan
tol merupakan toleransi. Mulai dengan i = 0. Langkah 2 (∑
Hitung di mana
)
∑
|
skalar yang digunakan untuk memodifikasi panjang langkah, dan |
.
Mulai dengan Jika
|
(
. (∑
maka coba dengan
|
)
∑
|
)
.
Jika (
(∑
|
(
) ∑
(∑
|
|
)
) ∑
|
)
22
( )
maka coba dengan (
(∑
dan seterusnya hingga
|
)
∑
didapatkan di mana
|
) maksimum.
Langkah 3 Jika kriteria kekonvergenan terpenuhi maka hentikan algoritma, jika tidak maka i i + 1, kembali ke langkah 2. Kriteria kekonvergenan yang digunakan adalah |
|
.
Algoritma ini diimplementasikan dengan menggunakan software pemrograman MATLAB 7.7. 3.3 Algoritma Pemrograman Penerapan algoritma BHHH memerlukan turunan pertama dari fungsi loglikelihood pada waktu t, yaitu persamaan (21), terhadap parameter dari model. Berikut adalah turunan pertama dari fungsi log-likelihood pada waktu t terhadap parameter model: ( |
)
( |
( | ( |
)
)
∑
|
∑
|
∑ *
)
+
*
+
* ( |
di mana
)
, jika ( |
+ ∑∑(
|
| |
∑∑(
, jika |
| |
|
|
)
, atau )
|
)
.
23
di mana
, jika ( |
di mana
, atau )
, jika ( |
)
|
∑∑(
|
.
, jika
.
)
|
, atau ∑∑( [ (
, jika
)
( )]
[
]
(
))
|
Turunan tersebut diadaptasi dari pencarian turunan pertama dari fungsi loglikelihood yang diuraikan oleh Gable et al. (1997). didapat dari perhitungan smoother yang diajukan oleh Kim (1994) yang
|
diuraikan kembali oleh Hamilton (1994). Sedangkan
|
didapat dari perhitungan
rekursi filter yang diajukan oleh Hamilton (1994). Berikut adalah rekursi filter yang diajukan oleh Hamilton (1994) ( |
)
|
[(
|
)
]
Berikut adalah rekursi smoother yang diajukan oleh Kim (1994) |
|
{
[
|
(
|
)]}
Algoritma pemrograman yang digunakan untuk menduga parameter model Hidden Markov adalah sebagai berikut: Langkah 1
Input seed random untuk mendapatkan
Input banyaknya data
Toleransi = 10-3
Mulai dengan iterasi i = 0
Langkah 2
Pilih
Hitung
(∑
|
)
∑
|
24
Hitung
Jika (
)
Jika
(
)
hingga
dan maka coba dengan
. ( )
maka coba dengan
didapatkan di mana (
dan seterusnya
) maksimum.
Langkah 3
Uji kriteria kekonvergenan |
|
Jika terpenuhi, hentikan proses, kemudian cetak
dan (
).
Langkah 4
Jika kriteria kekonvergenan belum terpenuhi, lanjutkan untuk iterasi berikutnya, yaitu i = i + 1.
Pilih
Hitung
Hitung
Jika (
)
maka coba dengan
.
Jika (
)
maka coba dengan
( )
hingga
(∑
|
)
∑
|
dan
didapatkan di mana (
dan seterusnya
) maksimum.
Langkah 5
Uji kriteria kekonvergenan |
Jika terpenuhi, hentikan proses, kemudian cetak tidak, maka kembali ke langkah 4.
| dan (
) , jika
BAB IV PENDUGAAN VOLATILITAS INDEKS HARGA SAHAM 4.1 Indeks Harga Saham Saham merupakan salah satu investasi yang menjanjikan bagi investor pada saat ini. Pertumbuhan ekonomi Indonesia yang cukup baik, menambah gairah perdagangan saham. Banyak investor, baik dari luar maupun dalam negeri berkecimpung dalam kegiatan ini. Indeks harga saham, sebagai salah satu panduan dalam berinvestasi sangat diperlukan oleh investor untuk menentukan strategi dalam berinvestasi. Salah satu indeks harga saham yang ada di Indonesia adalah indeks LQ45. Indeks LQ45 merupakan indeks harga saham yang dihitung dari 45 saham yang memiliki likuiditas tinggi. Setiap enam bulan sekali dilakukan peninjauan kembali, yaitu pada bulan Februari dan Agustus. Artinya bahwa indeks LQ45 terdiri dari saham-saham pilihan, yaitu saham-saham yang memiliki kualitas baik. 4.2 Volatilitas Perubahan return dari suatu indeks harga saham memiliki ketidakpastian. Terkadang bernilai positif, terkadang bernilai negatif. Untuk mengetahui seberapa besar ketidakpastian hal tersebut digunakan sebuah ukuran yang disebut dengan volatilitas. Volatilitas
dianggap
sebagai
suatu
hal
yang
tak
dapat
diamati
(unobservable). Seseorang tak dapat mengetahui secara pasti berapa nilai volatilitas sesungguhnya. Oleh karena itu, perhitungan volatilitas merupakan sebuah dugaan. Volatilitas biasanya dihitung dengan menggunakan ragam atau simpangan baku. Seiring dengan perkembangan zaman, banyak peneliti mengajukan cara lain untuk menghitung volatilitas. Terdapat beberapa cara untuk menghitung volatilitas harian, yaitu: 1. Realized Volatility Volatilitas diukur dengan menggunakan rumus ∑
(1)
26
di mana
merupakan kuadrat return ke-i pada perdagangan hari ke-t
dan n merupakan banyaknya data. Biasanya digunakan data return tiap 5 menit pada perdagangan hari ke-t. Perhitungan ini diajukan oleh Andersen dan Bollerslev (1998). 2. Range Based Volatility Terdapat beberapa cara yang diajukan peneliti untuk menghitung volatilitas dengan pendekatan ini, salah satunya adalah yang diajukan oleh Alizadeh et al. (2002). Volatilitas diukur dengan menggunakan rumus (2) di mana Ht merupakan harga tertinggi, dan Lt merupakan harga terendah pada perdagangan hari ke-t. 3. Squared Return Cara ini disebut sebagai cara tradisional, karena cara ini telah digunakan sebelum cara ke-1, dan ke-2 ada. Rumus squared return adalah (3) di mana
merupakan kuadrat return pada perdagangan hari ke-t.
Di antara ketiga cara perhitungan tersebut, cara ke-1 adalah yang terbaik, sedangkan cara ke-3 adalah yang paling tidak akurat (Blair et al. 2001). Volatilitas dianggap tak dapat diamati sehingga diperlukan pembanding (de Vilder & Visser, 2007). Penelitian ini menggunakan cara ke-2 sebagai daily volatility proxy (wakil volatilitas harian), sebagai acuan atau pembanding dalam perhitungan galat. Pemilihan cara ke-1 tidak dapat dilakukan, dikarenakan tidak tersedianya data return untuk tiap 5 menit pada indeks LQ45. 4.3 Pendugaan Volatilitas Perhitungan pendugaan volatilitas dari model yang diajukan oleh Rossi dan Gallo (2006) untuk satu langkah ke depan, menggunakan bentuk berikut
∑ di mana
27
∑ (
|
)
Oleh karena itu, pendugaan volatilitas untuk satu langkah ke depan adalah ̂
∑
(4)
Data yang digunakan dalam penelitian ini sebanyak 1375, di mana sebanyak 917 (sekitar dua pertiga dari keseluruhan) digunakan untuk pendugaan model (insample), sementara itu sisanya sebanyak 458 digunakan untuk analisis out-ofsample (prediksi yang akan datang). Data didapat dari situs yahoo finance http://www.finance.yahoo.com Dari data in-sample yang digunakan, dibuat sebuah program dengan menggunakan software MATLAB 7.7 untuk mendapatkan parameter yang memaksimumkan fungsi log-likelihood. Program tersebut membangkitkan data nilai awal
yang menghasilkan parameter model sebagai berikut: ̂
̂
̂
̂
̂
̂ ̂
̂
.
Penggunaan bentuk (4) dalam menduga volatilitas untuk satu langkah ke depan diterapkan pada data in-sample dan out-of-sample. Perhitungan galat menggunakan Symmetric Mean Absolute Percentage Error (SMAPE) dengan rumus SMAPE
{
∑
(5)
di mana At nilai aktual, dan Ft nilai dugaan. Nilai SMAPE pada (5) berada pada interval [0%, 100%]. Semakin kecil nilai SMAPE, maka semakin akurat pendugaan volatilitas. Perhitungan pendugaan volatilitas satu langkah ke depan untuk masingmasing data, dibuat sebuah program dengan menggunakan software Mathematica 8.0. Berikut adalah hasil perhitungannya:
28
1. Data in-sample volatilitas 14 12 10 8
dugaan
6 4
VS
2
0
200
400
600
800
hari
Gambar 4.1 Grafik volatilitas dugaan in-sample Perhitungan SMAPE dari volatilitas dugaan in-sample menghasilkan nilai rataan galat sebesar 13.79%, nilai galat maksimum sebesar 67.28%, dan nilai galat minimum sebesar 0.00%, serta kuartil ke-1 (Q1), kuartil ke-2 (Q2), dan kuartil ke-3 (Q3) masing-masing sebesar 4.80%, 11.24%, dan 20.09%. Jarak inter-kuartil sebesar 15.29%. Sebanyak 50% data berada di antara Q1 dan Q3 dengan jarak interval sebesar 15.29%. Berikut adalah Box-Whisker Plot untuk SMAPE dari volatilitas dugaan in-sample.
Gambar 4.2 Box-Whisker Plot untuk SMAPE dari volatilitas dugaan insample
29
2. Data out-of-sample volatilitas 12
10
8 dugaan 6
4 VS 2
0
100
200
300
400
hari
Gambar 4.3 Grafik volatilitas dugaan out-of-sample Perhitungan SMAPE dari volatilitas dugaan out-of-sample menghasilkan nilai rataan galat sebesar 13.62%, nilai galat maksimum sebesar 60.07%, dan nilai galat minimum sebesar 0.004%, serta kuartil ke-1 (Q1), kuartil ke-2 (Q2), dan kuartil ke-3 (Q3) masing-masing sebesar 5.71%, 11.32%, dan 20.06%. Jarak inter-kuartil sebesar 14.35%. Sebanyak 50% data berada di antara Q1 dan Q3 dengan jarak interval sebesar 14.35%. Berikut adalah Box-Whisker Plot untuk SMAPE dari volatilitas dugaan out-ofsample.
Gambar 4.4 Box-Whisker Plot untuk SMAPE dari volatilitas dugaan out-of-sample Dari Gambar 4.2 dan Gambar 4.4, dapat dilihat bahwa sebaran nilai galat tampak menjulur ke kanan, yang berarti sebagian besar nilai mengumpul
30
di sekitar median (SMAPE). Hal ini menunjukkan bahwa prediksi yang dihasilkan oleh model memiliki akurasi yang cukup baik.
BAB V KESIMPULAN DAN SARAN
Kesimpulan Kesimpulan hasil penelitian adalah sebagai berikut. 1.
Model hidden Markov yang diajukan oleh Rossi dan Gallo (2006) telah dikaji dan diimplementasikan pada indeks LQ 45.
2.
Pendugaan parameter model hidden Markov menggunakan algoritma BHHH dan diimplementasikan dengan pemrograman MATLAB 7.7.
3.
Pendugaan volatilitas pada indeks LQ 45 cukup baik. Hal ini dapat dilihat dari hasil perhitungan galat dengan menggunakan SMAPE sebesar 13.62%.
Saran Model dalam penelitian ini menggunakan state N = 3 dan sebaran dari return menyebar Student’s-t. Masih terbuka kemungkinan untuk menggunakan state N > 3 dan sebaran selain Student’s-t untuk penelitian lebih lanjut.
DAFTAR PUSTAKA Alizadeh S, Brandt M, Diebold F. 2002. Range-based Estimation of Stochastic Volatility Models. Journal of Finance, 57, 1047-1091. Andersen, Bollerslev. 1998. Answering the Skeptics: Yes, Standard Volatility Models Do Provide Accurate Forecasts. International Economic Review, 39: 885-905. Anton H. 1997. Aljabar Linear Elementer.Ed. ke-5.Terjemahan Pantur Silaban dan I Nyoman Susila. PenerbitErlangga. Jakarta. Arneric J, Rozga A. 2009. Numerical Optimization within Vector of Parameters Estimation in Volatility Models. International Journal of Human and Social Sciences 4:16. Bain A. 2009. Stochastic Calculus.http://www.chiark.greenend.org.uk/~alanb/ [10 Mar 2011] Blair BJ, Poon SH, Taylor SJ. 2001. Forecasting S&P 100 Volatility: The Incremental Information Content of Implied Volatilities and High-Frequency Index Returns. Journal of Econometrics, 105, 5-26. Bollerslev, T. 1986. Generalized Autoregressive Conditional Heteroskedasticity. Journal of Econometrics, 31, 307-327. Bollerslev, T. 1987. A Conditionally Heteroskedastic Time Series Model for Speculative Prices and Rates of Return. The Review of Economics and Statistics, 69, 542-547. Cvitanic J, Liptser RS, Rozovskii BL. 2005. A Filtering Approach to Tracking Volatility from Prices Observed at Random Times. The Annals of Applied Probability 16, No.3, 1633-1652. De Vilder RG, Visser MP. 2007. Proxies for Daily Volatility. Paris School of Economics.
33
Elliot JR, Aggoun L, dan Moore JB. 1995. Hidden Markov Models Continuous. Springer-Verlag. New York. Gable J, van Norden S, Vigfusson R. 1997. Analytical Derivatives for Markov Switching Models. Computational Economics, 10, 187-194. Ghahramani, S. 2005. Fundamentals of Probability with Stochastic Processes. Ed. ke-3 Pearson Education International. New Jersey. Grimmet GR, Stirzaker DR. 1992. Probability and Random Processes. Ed. ke-2. Oxford University Press. Oxford. Hamilton JD. 1994. Time Series Analysis. Princeton University Press. Hamilton JD, Susmel R. 1994. Autorgressive Conditional Heteroskedasticity and Changes in Regimes, Journal of Econometrics 64, 307-333. Hogg RV, Craig AT. 1995. Introduction to Mathematics Statistics. Ed. ke-5.Prentice Hall, Englewood Cliffs. New Jersey. Horn RA, Johnson CR. 1990. Matrix Analysis. Cambridge University Press. Cambridge. Kim CJ. 1994. Dynamic Linear Models with Markov Switching, Journal of Econometrics 60, 1-22. Kvam PH, Vidakovic B. 2007. Nonparametric Statistics with Applications to Science and Engineering. John Wiley & Sons, New jersey. Lamoureux CG, Lastrapes WD. 1990. Persistence in Variance, Structural Changes, and the GARCH Model, Journal of Business and Economic Statistics 8, No. 2, 226-234. MATLAB 7.7 Release 2012b, The MathWorks, Inc., Natick, Massachusetts, United States.
34
Ross SM. 1996. Stochastic Processes. Ed. ke-2. John Wiley & Sons. New York. Rossi A, Gallo G. 2006. Volatility Estimation via Hidden Markov Models, Journal of Empirical Finance, 13, 203-230. Schott JR. 1997. Matrix Analysis for Statistics. John Wiley & Sons. Canada. Stirling formula. Encyclopedia of Mathematics. URL: http://www.encyclopedia ofmath.org/index.php?title=Stirling_formula&oldid=24807 Wolfram Research, Inc., Mathematica, Version 8.0, Champaign, IL (2010).
LAMPIRAN
36 Lampiran1 Pembuktian sebaran Student’s-t konvergen ke sebaran normal ketika
Diketahui:
Akan dibuktikan: Bukti: Misalkan
, maka
.
Uraikan bentuk tersebut menjadi .
Misalkan
, maka
Sedangkan
.
, sehingga
. Selanjutnya akan dibuktikan . Dengan menggunakan formula Stirling (Encyclopedia of Mathematics), yaitu √
, maka (
[
]
[
]
√
(
)(
)
)
(
)
,
37
dan (
( )
[
]
√
(
)(
(
)
)
(
)
)
,
sehingga
Oleh karena itu
. Uraikan bentuk
menjadi .
Misalkan
, maka , dan
Sehingga Oleh karena itu
. .
38
. Jadi, .
39
Lampiran 2 Proses penurunan turunan pertama fungsi sebaran return terhadap parameter yang berkaitan Diketahui fungsi sebaran return yang menyebar Student’s-t
*
Turunan pertama terhadap parameter (
+
adalah
)
(
( ) (
)
(
( )
)
)
(
(
)
)
(
)
Sehingga,
Turunan pertama terhadap parameter adalah (
)
(
( )
(
) ( )
(
)
)
(
)
(
(
Sehingga,
)
)
40
Untuk mendapatkan turunan pertama terhadap parameter
dan , fungsi sebaran
return ditulis kembali menjadi
*
+
*
+
*
Turunan pertama terhadap parameter
dengan
+
adalah
*
(
)
+
[
(
) ]
*
+
*
+
*
+
Proses mendapatkan turunan pertama terhadap parameter
dengan
dan
hampir serupa dengan proses di atas. Oleh karena itu *
*
+
+
41
Dengan
,
, dan
, maka bentuk di atas dapat
disederhanakan menjadi *
+
atau *
+
untuk i = 1, 2, 3. Turunan pertama terhadap parameter , prosesnya hampir serupa dengan proses di atas. Perbedaannya hanya terletak pada *
+
dan
Sedangkan *
+
Oleh karena itu *
+
dan *
+
42
Untuk mencari turunan pertama terhadap parameter (
)
, dimisalkan
[
( )
]
sehingga, bentuk sebaran return menjadi Turunan pertama terhadap parameter
Terlebih dahulu akan dicari (
)
(
.
adalah
,
) ( )
, dan (
)
.
( )
( )
( ( )) (
)* (
)
( )+
( )
di mana
merupakan fungsi polygamma, yaitu
*
.
+
*
*
+
+
* [
[
+
]
]
*
+
43
*
+
[
*
Jadi, turunan pertama terhadap parameter (
)* (
)
adalah
( )+
*
( )
(
) ( )
(
[
+
+
*
)
+]
( )+
[
*
* (
)
( )+
[ [
*
+
)*
*
* (
+]
+] ]
+]
44
Lampiran 3 Penurunan turunan pertama fungsi log-likelihood Diketahui fungsi sebaran return *
Turunan terhadap
adalah (
)
(
( ) (
+
)
(
( )
)
)
(
)
(
)
(
)
Sehingga,
Turunan berikut hampir serupa prosesnya dengan proses di atas. Turunan terhadap
adalah
Turunan terhadap
adalah *
+
Turunan terhadap adalah *
*
+
+
45
Turunan terhadap adalah * (
) (
di mana
( )+ 𝑟𝑡
𝜇 𝛾𝑟𝑡 𝜎𝑖 𝜈
)
merupakan fungsi polygamma.
Berikut adalah turunan terhadap parameter yang berkaitan dengan peluang transisi. Diketahui (
)
Turunan terhadap a adalah
√
√
√
Turunan terhadap b adalah
√
√
√
46
Turunan terhadap
adalah
Untuk penyederhanaan, dimisalkan
yang merupakan fungsi
√
kepekatan peluang dari sebaran normal baku. Oleh karena itu, 𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑚𝑡 𝑏
𝑟𝑡 𝑟𝑡
Φ
𝑟𝑡
Φ
Φ
Diketahui
𝑚𝑡 𝑚𝑡 𝑚𝑡
(
𝜓Φ 𝑎
𝜓Φ 𝑎 Φ 𝑎
𝑚𝑡
𝑏 𝑟𝑡
𝑏 𝑟𝑡 𝑏 𝑟𝑡 𝜓
𝜓Φ 𝑎
𝑏 𝑟𝑡
Turunan terhadap a adalah 𝑚𝑡 𝑎
𝜓 (
𝑚𝑡 𝑎
𝜓Φ
𝑚𝑡 𝑎
Φ 𝜓
𝑚𝑡 𝑎
𝜓Φ
𝜓
)Φ
Φ 𝑎
𝑏 𝑟𝑡 𝜓
)
47
Turunan terhadap b adalah 𝑚𝑡 𝑏
𝜓 (
𝑚𝑡 𝑏
𝜓
𝜓 𝑟𝑡
𝑚𝑡 𝑏
𝑟𝑡
Φ Φ
𝜓 𝑟𝑡
Untuk penyederhanaan, dimisalkan
Φ
.
adalah 𝑚𝑡 𝜓
𝑚𝑡 𝜓 𝑚𝑡 𝜓 (
Φ
𝜓
𝑚𝑡 𝑏
Turunan terhadap
) 𝑟𝑡
Φ
Φ 𝜓 Φ
)
Notasi Misalkan: merupakan fungsi sebaran kumulatif normal baku. YT, dan ST merupakan matriks yang berisikan nilai return rt, dan state st dari t = 1 hingga T. Jumlah f(ST) dari seluruh kemungkinan ST yang didefinisikan dengan ∑ Parameter dari model ini dikumpulkan ke dalam vektor berkaitan dengan parameter yang berada pada peluang transisi, dan
.
, di mana berkaitan
dengan parameter yang lain. Untuk elemen ke-j dari dinyatakan dengan j. Fungsi likelihood dari fungsi ini f(YT|, ST). Untuk penyederhanaan ditulis f(YT|).
48
Turunan Fungsi log-Likelihood Berikut turunan fungsi log-likelihood yaitu
.
Mengadaptasi pencarian turunan pertama dari fungsi log-likelihood yang diuraikan Gable et al. (1995), turunan fungsi log-likelihood adalah sebagai berikut: Turunan terhadap j . ∑∑
Turunan terhadap j . (∑
)
∑∑ ∑ (
)
dengan menganggap bahwa peluang awal state diberikan sebagai nilai awal, , maka sehingga
∑∑ ∑ (
)
Berdasarkan hal tersebut, maka ∑∑
∑∑
∑∑ *
+
49
∑( )
∑∑
[ (
)
(
( )]
𝑟𝑡
𝜇 𝛾𝑟𝑡 𝜎𝑖 𝜈
) 𝑝 𝑧𝑡
∑∑∑(
di mana
)
, jika
, atau
, jika
∑∑∑(
di mana
.
)
, jika
, atau
, jika
∑∑∑(
di mana
𝒆𝒊 𝑌𝑇 𝜆
.
)
, jika
, atau
, jika
.
didapat dari perhitungan smoother yang diajukan oleh Kim (1994) yang diuraikan kembali oleh Hamilton (1994). Sedangkan perhitungan rekursi filter yang diajukan oleh Hamilton (1994). Berikut adalah rekursi filter yang diajukan oleh Hamilton (1994) (
)
(
)
Berikut adalah rekursi smoother yang diajukan oleh Kim (1994) {
[
(
)]}
didapat dari
50
Lampiran 4 Pemrograman menggunakan software MATLAB 7.7 Program ini hanya untuk model Hidden Markov yang diajukan oleh Rossi dan Gallo (2006) dengan state N = 3 dan parameter . %Script file: dlmtm1_da.m %Tujuan: untuk menghitung turunan pertama peluang transisi terhadap % parameter a % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlmtm1_da(a,b,p,t) ye=normpdf(a+b*abs(r(t)),0,1); ye1=normcdf(a+b*abs(r(t)),0,1); y1=[-ye/(1-ye1) ye/ye1 0;ye/ye1 -ye/(1-ye1) ye/ye1;0 ye/ye1 ye/(1-ye1)]; y2=[-ye/(p-ye1) ye/ye1 0;ye/ye1 -((p^2+1)/(2*p-(p^2+1)))*ye/ye1 ye/ye1;0 ye/ye1 -p*ye/(1-p*ye1)]; if (r(t)<=0) y=y1; else y=y2; end
--------------------------------------------------------------------------------------------------%Script file: dlmtm1_db.m %Tujuan: untuk menghitung turunan pertama peluang transisi terhadap % parameter b % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlmtm1_db(a,b,p,t) ye=normpdf(a+b*abs(r(t)),0,1); ye1=normcdf(a+b*abs(r(t)),0,1); y1=[-abs(r(t))*(ye/ye1) abs(r(t))*(ye/ye1) 0;abs(r(t))*(ye/ye1) abs(r(t))*(ye/ye1) ... abs(r(t))*(ye/ye1);0 abs(r(t))*(ye/ye1) -abs(r(t))*(ye/ye1)]; y2=[-abs(r(t))*(ye/(p-ye1)) abs(r(t))*(ye/ye1) 0;abs(r(t))*(ye/ye1) -abs(r(t))*... ((p^2+1)/(2*p-(p^2+1)))*ye/ye1 abs(r(t))*ye/ye1;0 abs(r(t))*ye/ye1 -p*abs(r(t))*(ye/(1-p*ye1))];
51
if (r(t)<=0) y=y1; else y=y2; end
--------------------------------------------------------------------------------------------------%Script file: dlmtm1_dpsi.m %Tujuan: untuk menghitung turunan pertama peluang transisi terhadap % parameter psi % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlmtm1_dpsi(a,b,p,t) ye=normcdf(a+b*abs(r(t)),0,1); y1=zeros(3); y2=[ye/((p-ye)*p) 1/p 0;-1/p ((1-p^2)/(2*p^2-p^3*ye-p*ye))*ye 1/p;0 -1/p -ye/(1-p*ye)]; if (r(t)<=0) y=y1; else y=y2; end
--------------------------------------------------------------------------------------------------%Script file: dlogfrt_dalp.m %Tujuan: untuk menghitung turunan pertama log fungsi sebaran return % terhadap parameter alpha % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlogfrt_dalp(m,g,n,s,t) y=1/2*((n*(r(t)-m-g*r(t-5))^2-s*(n-2))/(s*(n-2)+(r(t)-m-g*r(t5))^2));
--------------------------------------------------------------------------------------------------%Script file: dlogfrt_dg.m %Tujuan: untuk menghitung turunan pertama log fungsi sebaran return % terhadap parameter gamma
52 % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlogfrt_dg(m,g,n,s,t) y=(r(t-5)*(r(t)-m-g*r(t-5))*(n+1))/(s*(n-2)+(r(t)-m-g*r(t-5))^2);
--------------------------------------------------------------------------------------------------%Script file: dlogfrt_dmu.m %Tujuan: untuk menghitung turunan pertama log fungsi sebaran return % terhadap parameter mu % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlogfrt_dmu(m,g,n,s,t) y=((r(t)-m-g*r(t-5))*(n+1))/(s*(n-2)+(r(t)-m-g*r(t-5))^2);
--------------------------------------------------------------------------------------------------%Script file: dlogfrt_dnu.m %Tujuan: untuk menghitung turunan pertama log fungsi sebaran return % terhadap parameter nu % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=dlogfrt_dnu(m,g,n,s,t) y=1/2*(psi((n+1)/2)-psi(n/2))-1/(2*(n-2))+(n+1)*(r(t)-m-g*r(t5))^2/... (2*(n-2)*(s*(n-2)+(r(t)-m-g*r(t-5))^2))-log(1+(r(t)-m-g*r(t5))^2/... (s*(n-2)))/2;
--------------------------------------------------------------------------------------------------%Script file: espar2.m %Tujuan: untuk menduga parameter dari fungsi loglikelihood % dengan menggunakan algoritma BHHH. % % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
53
function teta=espar2(beta,te,alpa) format long e teta=beta; disp('nilai awal:'); % Menampilkan nilai awal. %----------------------------------------------------------------fprintf('mu= %10.4f',teta(1));fprintf(' g= %10.4f',teta(2)); fprintf(' alp= %10.4f',teta(3)); fprintf(' dlt= %10.4f\n',teta(4));fprintf(' a= %10.4f',teta(5)); fprintf(' b= %10.4f\n',teta(6)); fprintf(' p= %10.4f',teta(7));fprintf(' nu= %10.4f\n',teta(8)); %----------------------------------------------------------------logl0=floglh(teta(1),teta(2),teta(3),teta(4),teta(5),teta(6),teta( 7),teta(8),te); %Memanggil file fungsi logLikelihood. fprintf('logl0= %10.5f\n',logl0); fprintf('\n'); tol=0.001; % Toleransi kekonvergenan. maxit=40; % Batas iterasi. kkonv=1; i=1; % ---------------------------------------------------------------% Iterasi BHHH. while ((kkonv >= tol) && (i<=maxit)); % Memulai loop iterasi. tes_NaN=isnan(rcond(op_grad(teta(1),teta(2),teta(3),teta(4),teta(5 ),teta(6),teta(7),teta(8),te))); if (tes_NaN==1),fixseed(teta,alpa,te);end; va=mat_ex(teta(1),teta(2),teta(3),teta(4),teta(5),teta(6),teta(7), teta(8),te)\ones(te,1); % Vektor arah dihitung dengan menggunakan least square. % ---------------------------------------------------------------% Memilih langkah(step) terbesar yang meningkatkan nilai fungsi. j=0; deltf =-1; while (deltf<0) && (j<=10); % Memulai loop reduksi langkah (step). step=(0.5)^j; % Mereduksi langkah. teta1=teta+(step*va);% Mencoba vektor parameter baru. if (teta1(7)<1)||(teta1(8)<2),fixseed(teta1,alpa,te);end; logl=floglh(teta1(1),teta1(2),teta1(3),teta1(4),teta1(5),teta1(6), ... teta1(7),teta1(8),te); % Mengevaluasi logL. deltf=logl-logl0; % Menentukan perubahan fungsi. j=j+1; % Update step counter. end; % Mengakhiri loop reduksi langkah(step). teta=teta1;% Update teta. kkonv=abs(logl-logl0); logl0=logl; % Update nilai logL. %Kriteria kekonvergenan. % ----------------------------------------------------------------
54 % Mencetak hasil iterasi ke-i. fprintf('iterasi: %2.0f',i); fprintf(' %17.10f',step); fprintf(' LogL: %10.5f\n',logl);
step size:
% ---------------------------------------------------------------i=i+1; % Update iteration counter. end; % Mengakhiri loop iterasi. % ---------------------------------------------------------------% Menghitung statistik. mk=mkov(teta(1),teta(2),teta(3),teta(4),teta(5),teta(6),teta(7),te ta(8),te); stderr = sqrt(diag(mk)); % Menghitung standar error. % Mencetak Output if (i>maxit), fixseed(teta,alpa,te), end; fprintf('\n'); fprintf(' teta\t Std. Error\n '); fprintf('---------------------------\n'); for h=1:8; fprintf([h,'%12.5f %12.8f \n'], [teta(h) stderr(h)]); fprintf('\n'); end; clear global;
--------------------------------------------------------------------------------------------------%Script file: estimatepar.m %Tujuan: menampilkan tampilan awal proses pendugaan parameter dari % fungsi loglikelihood % Record of revisions: % Date Programmer % ==== ========== % 05/29/12 Abdul Baist % % Define variables: % alpa, te -- an input number
Description of change ===================== Original code
clc disp('Program ini untuk menduga parameter dari fungsi loglikelihood'); disp('dengan menggunakan algoritma BHHH'); fprintf('\n'); alpa=input('Masukkan angka untuk SeedRandom: '); % Prompt the user to enter a number. te=input('Banyaknya data: '); % Prompt the user to enter a number. stream=RandStream('mcg16807', 'Seed',alpa); % Membangkitkan nilai acak. beta=[-5+10*rand(stream,1,6) 1+5*rand(stream,1,1) 2+8*rand(stream,1,1)]'; % Nilai awal yang dibangkitkan dengan seed random. espar2(beta,te,alpa); % Memanggil file pendugaan parameter.
--------------------------------------------------------------------------------------------------%Script file: fgs_rt.m
55
%Tujuan: untuk menghitung fungsi sebaran return menyebar Student's-t % % % %
Record of revisions: Date Programmer ==== ========== 05/29/12 Abdul Baist
Description of change ===================== Original code
function y=fgs_rt(m,g,alp,dlt,n,t) y1=(gamma ((n + 1)/2)/gamma (n/2))*(pi*(n-2)*exp(alp-dlt))^(1/2)*(1+(r(t)-m-g*r(t-5))^2/(exp(alp-dlt)*(n-2)))^(-(n+1)/2); y2=(gamma ((n + 1)/2)/gamma (n/2))*(pi*(n-2)*exp(alp))^(1/2)*(1+(r(t)-m-g*r(t-5))^2/(exp(alp)*(n-2)))^(-(n+1)/2); y3=(gamma ((n + 1)/2)/gamma (n/2))*(pi*(n-2)*exp(alp+dlt))^(1/2)*(1+(r(t)-m-g*r(t-5))^2/(exp(alp+dlt)*(n-2)))^(-(n+1)/2); y=[y1;y2;y3];
--------------------------------------------------------------------------------------------------%Script file: fixseed.m %Tujuan: menampilkan tampilan awal proses pendugaan parameter dari % fungsi loglikelihood % Record of revisions: % Date Programmer % ==== ========== % 05/29/12 Abdul Baist % % Define variables: % alpa, te -- an input number
Description of change ===================== Original code
function y=fixseed(pmtr,snumb,t) clc pmtr1=pmtr; fprintf('Parameter sebelumnya:%10.5f\n', [pmtr1(1) pmtr1(2) pmtr1(3) pmtr1(4) pmtr1(5) pmtr1(6) pmtr1(7) pmtr1(8)]); fprintf('Angka SeedRandom sebelumnya:%2.0f\n',snumb); stream=RandStream('mcg16807', 'Seed',snumb+1); % Membangkitkan nilai acak. y=[-5+10*rand(stream,1,6) 1+5*rand(stream,1,1) 2+8*rand(stream,1,1)]'; % Nilai awal yang dibangkitkan dengan seed random. fprintf('Angka SeedRandom saat ini:%2.0f\n',snumb+1); fprintf('Banyak data:%2.0f\n',t); espar2(y,t,snumb+1); % Memanggil file pendugaan parameter.
--------------------------------------------------------------------------------------------------%Script file: floglh.m %Tujuan: untuk menghitung nilai fungsi loglikelihood % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
56
function y=floglh(mu,g,alp,dlt,a,b,p,nu,t) ztt=zet_t(mu,g,alp,dlt,a,b,p,nu,t); y1=zeros(1,t-1); for k=1:t-1 y1(1,k)=log(ones(1,3)*((mat_trans(a,b,p,k)*ztt(:,k)).*fgs_rt(mu,g, ... alp,dlt,nu,k+1))); end y=log(ones(1,3)*((mat_trans(a,b,p,0)*zet_t(mu,g,alp,dlt,a,b,p,nu,0 )).*... fgs_rt(mu,g,alp,dlt,nu,1)))+sum(y1);
--------------------------------------------------------------------------------------------------%Script file: grad_an.m %Tujuan: untuk menghitung vektor gradien pada waktu t>1 % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=grad_an(m,g,alp,dlt,a,b,p,n,zet,zet0,pkim,t)
s=[exp(alp-dlt);exp(alp);exp(alp+dlt)]; dlogf_dmu=zeros(3,1); for i=1:3 dlogf_dmu(i)=dlogfrt_dmu(m,g,n,s(i),t)*pkim(i); end y1=sum(dlogf_dmu); dlogf_dg=zeros(3,1); for i=1:3 dlogf_dg(i)=dlogfrt_dg(m,g,n,s(i),t)*pkim(i); end y2=sum(dlogf_dg); dlogf_dalp=zeros(3,1); for i=1:3 dlogf_dalp(i)=dlogfrt_dalp(m,g,n,s(i),t)*pkim(i); end y3=sum(dlogf_dalp); dlogf_ddlt=-dlogf_dalp(1)+dlogf_dalp(3); y4=dlogf_ddlt; da=dlmtm1_da(a,b,p,t-1); dlogf_da=zeros(3,3); for i=1:3 for j=1:3 dlogf_da(i,j)=zet0(j)*(pkim(i)/zet(i))*da(i,j);
57 end end y5=sum(sum(dlogf_da)); db=dlmtm1_db(a,b,p,t-1); dlogf_db=zeros(3,3); for i=1:3 for j=1:3 dlogf_db(i,j)=zet0(j)*(pkim(i)/zet(i))*db(i,j); end end y6=sum(sum(dlogf_db)); dp=dlmtm1_dpsi(a,b,p,t-1); dlogf_dp=zeros(3,3); for i=1:3 for j=1:3 dlogf_dp(i,j)=zet0(j)*(pkim(i)/zet(i))*dp(i,j); end end y7=sum(sum(dlogf_dp)); dlogf_dnu=zeros(3,1); for i=1:3 dlogf_dnu(i)=dlogfrt_dnu(m,g,n,s(i),t)*pkim(i); end y8=sum(dlogf_dnu); y=[y1;y2;y3;y4;y5;y6;y7;y8];
--------------------------------------------------------------------------------------------------%Script file: grad_an1.m %Tujuan: untuk menghitung vektor gradien pada waktu t=1 % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=grad_an1(m,g,alp,dlt,a,b,p,n) t=1; pkim=kim_smooth(m,g,alp,dlt,a,b,p,n); zet=zet_t(m,g,alp,dlt,a,b,p,n,t); zet0=zet_t(m,g,alp,dlt,a,b,p,n,0); zet01=zet0.*(mat_trans(a,b,p,0)*(zet(:,1)./(mat_trans(a,b,p,0)*zet (:,1)))); s=[exp(alp-dlt);exp(alp);exp(alp+dlt)]; dlogf_dmu=zeros(3,1); for i=1:3 dlogf_dmu(i)=dlogfrt_dmu(m,g,n,s(i),t)*pkim(i,1); end y1=sum(dlogf_dmu); dlogf_dg=zeros(3,1);
58 for i=1:3 dlogf_dg(i)=dlogfrt_dg(m,g,n,s(i),t)*pkim(i,1); end y2=sum(dlogf_dg); dlogf_dalp=zeros(3,1); for i=1:3 dlogf_dalp(i)=dlogfrt_dalp(m,g,n,s(i),t)*pkim(i,1); end y3=sum(dlogf_dalp); dlogf_ddlt=-dlogf_dalp(1)+dlogf_dalp(3); y4=dlogf_ddlt; da=dlmtm1_da(a,b,p,t-1); dlogf_da=zeros(3,3); for i=1:3 for j=1:3 dlogf_da(i,j)=zet01(j)*(pkim(i,1)/zet(i))*da(i,j); end end y5=sum(sum(dlogf_da)); db=dlmtm1_db(a,b,p,t-1); dlogf_db=zeros(3,3); for i=1:3 for j=1:3 dlogf_db(i,j)=zet01(j)*(pkim(i,1)/zet(i))*db(i,j); end end y6=sum(sum(dlogf_db)); dp=dlmtm1_dpsi(a,b,p,t-1); dlogf_dp=zeros(3,3); for i=1:3 for j=1:3 dlogf_dp(i,j)=zet01(j)*(pkim(i,1)/zet(i))*dp(i,j); end end y7=sum(sum(dlogf_dp)); dlogf_dnu=zeros(3,1); for i=1:3 dlogf_dnu(i)=dlogfrt_dnu(m,g,n,s(i),t)*pkim(i,1); end y8=sum(dlogf_dnu); y=[y1;y2;y3;y4;y5;y6;y7;y8];
--------------------------------------------------------------------------------------------------%Script file: kim_smooth.m %Tujuan: untuk menghitung Kim smoother % % %
Record of revisions: Date Programmer ==== ==========
Description of change =====================
59 %
07/16/12
Abdul Baist
Original code
function y=kim_smooth(m,g,alp,dlt,a,b,p,n) format long zet=zet_t(m,g,alp,dlt,a,b,p,n,917); ye=mat_trans(a,b,p,917)*zet(:,917); y=zeros(3,917); y(:,917)=ye; for k=916:-1:1, ye=zet(:,k).*(mat_trans(a,b,p,k)'*(ye./(mat_trans(a,b,p,k)*zet(:,k )))); y(:,k)=ye; end
--------------------------------------------------------------------------------------------------%Script file: mat_trans.m %Tujuan: untuk menghitung matriks peluang transisi % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=mat_trans(a,b,p,t) y1=1normcdf(a+b*abs(r(t)),0,1);y2=normcdf(a+b*abs(r(t)),0,1)/2;... y3=normcdf(a+b*abs(r(t)),0,1); if (r(t)<=0),m1=[y1 y2 0;y3 y1 y3;0 y2 y1]; else m1=[1-y3/p p*y2 0;y3/p 1-(p+1/p)*(y2) p*y3;0 y2/p 1-p*y3]; end y=m1;
--------------------------------------------------------------------------------------------------%Script file: mkov.m %Tujuan: untuk menghitung matriks kovarian % % % %
Record of revisions: Date Programmer ==== ========== 05/29/12 Abdul Baist
Description of change ===================== Original code
function y=mkov(mu,g,alp,dlt,a,b,p,nu,t) if (rcond(op_grad(mu,g,alp,dlt,a,b,p,nu,t))<10^(-16)),y=eye(8); else y=inv(op_grad(mu,g,alp,dlt,a,b,p,nu,t)); end
--------------------------------------------------------------------------------------------------%Script file: op_grad.m %Tujuan: untuk menghitung outer product gradient %
Record of revisions:
60 % % %
Date ==== 07/16/12
Programmer ========== Abdul Baist
Description of change ===================== Original code
function y=op_grad(m,g,alp,dlt,a,b,p,n,t) pkim=kim_smooth(m,g,alp,dlt,a,b,p,n); zet=zet_t(m,g,alp,dlt,a,b,p,n,t); y1=zeros(8,8); for i=2:t zet0=zet(:,i-1).*(mat_trans(a,b,p,i-1)*(zet(:,i)./... (mat_trans(a,b,p,i-1)*zet(:,i-1)))); y1=y1+grad_an(m,g,alp,dlt,a,b,p,n,zet(:,i),zet0,pkim(:,i),i)*... grad_an(m,g,alp,dlt,a,b,p,n,zet(:,i),zet0,pkim(:,i),i)'; end y=grad_an1(m,g,alp,dlt,a,b,p,n)*grad_an1(m,g,alp,dlt,a,b,p,n)'+y1;
--------------------------------------------------------------------------------------------------%Script file: sum_grad.m %Tujuan: untuk menghitung total vektor gradien dari t=1 s/d t=T % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=sum_grad(m,g,alp,dlt,a,b,p,n,t) pkim=kim_smooth(m,g,alp,dlt,a,b,p,n); zet=zet_t(m,g,alp,dlt,a,b,p,n,t);
y1=zeros(8,t); for i=2:t zet0=zet(:,i-1).*(mat_trans(a,b,p,i-1)'*(zet(:,i)./... (mat_trans(a,b,p,i-1)*zet(:,i-1)))); y1(:,i)=grad_an(m,g,alp,dlt,a,b,p,n,zet(:,i),zet0,pkim(:,i),i); end y=grad_an1(m,g,alp,dlt,a,b,p,n)+sum(y1,2);
--------------------------------------------------------------------------------------------------%Script file: upd_bhhh4.m %Tujuan: untuk menghitung update BHHH % % % %
Record of revisions: Date Programmer ==== ========== 05/29/12 Abdul Baist
Description of change ===================== Original code
function [va] =upd_bhhh4(m,g,alp,dlt,a,b,p,n,t)
61 va=mat_ex(m,g,alp,dlt,a,b,p,n,t)\ones(t,1); % Vektor arah dihitung dengan menggunakan least square.
--------------------------------------------------------------------------------------------------%Script file: zet_t.m %Tujuan: untuk menghitung rekursi filter Hamilton % % % %
Record of revisions: Date Programmer ==== ========== 07/16/12 Abdul Baist
Description of change ===================== Original code
function y=zet_t(m,g,alp,dlt,a,b,p,n,t) format long ye=[1/4;1/2;1/4]; y=zeros(3,t); if (t==0),y=ye; end for k=1:t, ye=((mat_trans(a,b,p,k1)*ye).*fgs_rt(m,g,alp,dlt,n,k))/(ones(1,3)*((mat_trans(a,b,p,k1)*ye).*fgs_rt(m,g,alp,dlt,n,k))); y(:,k)=ye; end
---------------------------------------------------------------------------------------------------
62
Lampiran 5 Pemrograman menggunakan software Mathematica 8.0
63
64
65
66