Anda di halaman 1dari 8

SIMULASI STOKASTIK MENGGUNAKAN ALGORITMA

METROPOLIS HASTINGS
Adi Asriadi
Jurusan Matematika FMIPA UNJ

ABSTRAK
Dalam tulisan ini akan dibahas proses simulasi dan cara kerja Algoritma Markov Chain
Monte Carlo (MCMC). Algoritma Markov Chain Monte Carlo adalah suatu kelas algoritma
untuk melakukan sampling dari distribusi probabilitas dengan membangun rantai Markov pada
suatu distribusi tertentu yang stasioner. Algoritma MCMC yang akan dibahas adalah Algoritma Metropolis-Hastings dan Algoritma Gibbs Sampling. Algoritma Metropolis-Hastings merupakan algoritma untuk membangkitkan barisan sampel menggunakan mekanisme penerimaan
dan penolakan (accept-reject) dari suatu distribusi probabilitas yang sulit untuk dilakukan penarikan sampel. Algoritma Gibbs Sampling dapat dianggap sebagai kasus khusus dari Algoritma Metropolis-Hastings yang memerlukan semua distribusi bersyarat dari distribusi target yang
bisa diambil sampelnya secara tepat. Sebagai aplikasi dari Algoritma Metropolis-Hastings dan
Algoritma Gibbs Sampling dalam simulasi, dibuat program komputer menggunakan perangkat
lunak R-Statistik.
Kata Kunci: Rantai Markov, Metode Monte Carlo, Simulasi, Algoritma Markov Chain Monte
Carlo, Algoritma Metropolis-Hastings, Algoritma Gibbs Sampling, R-Statistik.

Typesetting with LATEX 2


adi a08@yahoo.com

PENDAHULUAN

Salah satu kegunaan dari teori rantai Markov ergodik adalah Markov Chain Monte Carlo
atau MCMC. Misalkan akan dilakukan simulasi dari suatu probabilitas (atau disebut juga
densitas target) permasalahan muncul karena simulasi secara langsung tidak mungkin dilakukan
atau infeasible dikarenakan dimensi yang tinggi. Maka MCMC membantu menyelesaikan
masalah ini, Permasalahan semacam ini seringkali muncul dalam berbagai macam aplikasi sains
contohnya pada bidang statistika, komputer sains, dan fisika statistik.
Markov Chain Monte Carlo memberikan solusi secara tidak langsung pada permasalahan yang didasarkan pada observasi dengan membangun sebuah rantai Markov ergodik dan
sebagai ukuran probabilitas stasioner. Ini lebih efektif dibandingkan melakukan simulasi
secara langsung pada (Robert & Rosenthal,2003). Salah satu Algoritma MCMC adalah Algoritma Metropolis-Hastings yang menggunakan sebarang rantai Markov dan juga mekanisme
penerimaan dan penolakan (accept-reject), untuk memastikan bahwa stasioner pada proses
akhir.
Algoritma Metropolis-Hastings menggunakan mekanisme penerimaan dan penolakan
(accept-reject) untuk membangkitkan barisan sampel dari suatu distribusi, yang sulit untuk
dilakukan penarikan sampel. Barisan ini digunakan dalam MCMC untuk mengaproksimasi
suatu distribusi dengan histogram, atau menghitung integral (seperti nilai harapan). Algoritma Metropolis-Hastings dapat menarik sampel dari distribusi probabilitas (x) apapun dengan
syarat bahwa densitas dapat dihitung pada x (wikipedia,2007). Algoritma ini pada awalnya
diperkenalkan oleh Metropolis dan rekan-rekannya dalam bidang fisika statistik pada tahun
1953, dan digeneralisasikan oleh Hastings (1970). Algoritma ini dan variasinya digunakan
pula pada aplikasi berbagai bidang seperti: pengolahan citra, aplikasi finansial, ekonometrik,
stochastic volatility process, model mixture, model hirarki dan lain-lain.
Berdasarkan uraian di atas, maka dalam tulisan ini penulis akan membahas cara kerja
algoritma MCMC yaitu algoritma Metropolis-Hastings dan algoritma Gibbs sampling (sebagai
kasus khusus algoritma Metropolis-Hastings), serta membuat sebuah perangkat lunak sebagai
aplikasi dari kedua algoritma tersebut.

KAJIAN TEORI

2.1 Rantai Markov


Definisi 2.1 (Rantai Markov) Proses stokastik {Xn , n = 0, 1, . . .} adalah rantai Markov jika
memenuhi syarat Markov, yaitu:
P {Xn+1 = j|Xn = i, Xn1 = in1 , . . . , X1 = i1 , X0 = i0 } = P (Xn+1 = j|Xn = i) = Pij
Definisi 2.2 Rantai X dikatakan homogen jika
P (Xn+1 = j|Xn = i) = P (X1 = j|X0 = i)
untuk semua n, i, j di N. Matriks transisi P = (Pij ) adalah matriks |S| |S| probabilitas
transisi
Pij = P (Xn+1 = j|Xn = i)

Definisi 2.3 (Periode, Periodik, dan Aperiodik) Suatu state i disebut memiliki periode d jika
Piin = 0 untuk semua n yang tidak habis dibagi d, dan d adalah bilangan bulat terbesar yang
memenuhi sifat ini. Dengan kata lain, suatu state i disebut memiliki periode d jika d adalah
persekutuan pembagi terbesar (the greatest common divisor(gcd)) bagi n sehingga Piin > 0. Suatu state dengan periode sama dengan satu disebut aperiodik, sedangkan state dengan periode
2 disebut periodik.
Definisi 2.4 (Positive recurrent dan Null recurrent) Suatu state disebut berulang positif (Positive Recurrent) jika state tersebut adalah berulang (recurrent) serta berlaku: jika proses dimulai
dari state i maka nilai harapan dari waktu sampai proses tersebut kembali ke state i adalah bilangan hingga (finite). state recurrent yang tidak positive recurrent disebut null recurrent.
Definisi 2.5 (Rantai Markov Tak-tereduksi) Rantai Markov dikatakan tak-tereduksi jika hanya
terdapat satu kelas state, yaitu jika semua state berhubungan satu dengan yang lainnya.
Definisi 2.6 (Ergodik) Rantai Markov dengan state positive recurrent dan aperiodik disebut
ergodik.
Teorema 2.7 Untuk rantai Markov ergodik (positive reccurent, aperiodik, dan tak tereduksi)
(n)
lim Pij ada dan nilainya tidak tergantung dari i
n

(n)

j = lim Pij ,
n

j0

j adalah solusi unik non negatif dari


j =

i Pij ,

j 0 dan

j=0

j = 1

(1)

j=0

Teorema 2.8 Andaikan bahwa M = {Xn }


n= adalah rantai Markov dengan matriks transisi P, adalah distribusi stasioner tunggal, dan untuk semua n, Xn didistribusikan sebagai
. M adalah reversibel jika dan hanya jika
i Pij = j Pji untuk semua i, j S

(2)

keadaan ini sering disebut kondisi setimbang yang terperinci (detailed balanced condition)

2.2

Monte Carlo

Algoritma Monte Carlo adalah metode Monte Carlo numerik yang digunakan untuk
menemukan solusi problem matematis (yang dapat terdiri dari banyak variabel) yang susah
dipecahkan, misalnya dengan kalkulus integral, atau metode numerik lainnya.
Pada tahun 1951 Von Neumann memberikan suatu metode untuk membangkitkan sam1
pel dari sebuah densitas f = ( )f1 hanya diketahui f1 jika ada suatu densitas h sedemikian
K
sehingga (adalah mungkin untuk membangkitkan sampel dari h dan)
f1 (x) M h(x) x
Algoritma diberikan di bawah ini dikenal sebagai rejection sampling
3

1) Bangkitkan sampel acak dari distribusi dengan densitas h. Misal y

f1 (y)
2) Terima y sebagai sampel dengan probabilitas
M h(y)
3) Jika langkah ke 2 tidak berhasil kembali ke langkah 1.

PEMBAHASAN

3.1 Algoritma Metropolis-Hastings


Algoritma M-H bisa ditulis sebagai berikut: Dimulai dengan sebarang X0 , pada setiap
iterasi n = 1, . . . , N
1) Ambil sampel j qij
Q = {qij }
2) Bangkitkan U U (0, 1) dimana U distribusi seragam pada (0, 1)
3) Dengan probabilitas

j qji
ij = min 1,
i qij
(

atur
Xn+1 =

3.1.1

j,
jika U ij
percobaan baru, selainnya.

Simulasi Algoritma Metropolis-Hastings

Contoh 3.1 Lakukan pengambilan sampel dari distribusi normal N (0, 1) dengan menggunakan Algoritma Metropolis-Hastings
1) Definisikan kandidat Q untuk setiap iterasi n, bangkitkan kandidat sampel Y U {Xn
a, Xn + a}, dimana a > 0 adalah konstan. Dan test rasio (TR)
T R :=

1
(Y )q(Xn |Y )
= exp [Xn2 Y 2 ]
(Xn )q(Y |Xn )
2

2) terima / tolak (accept / reject): probabilitas penerimaan (acceptance probability) yang ditentukan dengan formula Metropolis-Hastings

(Xn |Y ) = min 1, T R
jika TR 1, atur Xn+1 = Y , jika TR < 1, atur Xn+1 = Y dengan probabilitas TR; atur
Xn+1 = Xn dengan probabilitas 1-TR.
Gambar 1 dan 2 menunjukkan histogram dari sampling dengan Algoritma M-H

Frequency

200 400 600 800

Histogram of normvec

normvec

Gambar 1: Histogram hasil simulasi N (0, 1), dengan N=10000 dan a=0.1

1000
0

500

Frequency

1500

Histogram of normvec

normvec

Gambar 2: Histogram hasil simulasi N (0, 1), dengan N=10000 dan a=1

3.2 Algoritma Gibbs sampling


Gibbs Sampling bisa diterapkan apabila distribusi probabilitas bersama (joint probability distribution) tidak diketahui secara eksplisit, tetapi distribusi bersyarat (conditional distribution) dari tiap-tiap variabel diketahui. Algoritma Gibbs sampling bisa dituliskan sebagai
berikut:
(0)
(0)
1) Tentukan nilai awal x0 = x1 , . . . , xp
2) Ulangi langkah untuk j = 1, 2, . . . , M

(j+1)
(j) (j)
(j)
Bangkitkan X1
dari f1 x1 |x2 , x3 , . . . , xp

(j+1)
(j+1) (j)
(j)
Bangkitkan X2
dari f2 x2 |x1
, x3 , . . . , xp
..
.

(j+1)
(j+1)
(j+1)
Bangkitkan Xp
dari fp xp |x1
, . . . , xp1
3) Kembalikan nilai {x1 , x2 , . . . , xM }
densitas f1 , f2 , . . . , fp disebut distribusi bersyarat penuh, dan densitas yang digunakan untuk
simulasi. Walaupun dalam dimensi tinggi semua simulasi adalah univariate. Dalam gibbs sampling tidak ada mekanisme penerimaan dan penolakan semua sampel hasil simulasi diterima.
5

3.2.1

Simulasi Algoritma Gibbs sampling

Simulasi Gibbs sampling pada distribusi bivariate normal


Distribusi bivariate normal adalah kasus dari distribusi multivariate dimana dimensi dari bivariate adalah 2, dan variabel x dan y berhubungan dengan adanya parameter korelasi , Akan
digunakan densitas standar bivariate normal dimana rataan dan variansi dari x dan y adalah 0
dan 1, diasumsikan diketahui (misal 0.9). fungsi kepadatan probabilitas dari distribusi bivariate normal adalah:

1
x2 2xy + y 2
f (x, y|) = p
exp
(3)
2(1 2 )
2 1 2
untuk melakukan Gibbs sampling dari x dan y, harus ditentukan distribusi bersyarat untuk
kedua variabel tersebut, yaitu f (x|y) dan f (y|x) Gibbs sampling tidak memerlukan konstanta
normal. Untuk distribusi bersyarat f (x|y) penjabarannya adalah sebagai berikut:

y2
x2 x(2y)
exp
f (x|y) exp
2(1 2 )
2(1 2 )

(x2 x(2y) + (y)2 (y)2 )


f (x|y) exp
2(1 2 )

2
(x y) (y)2
f (x|y) exp
2(1 2 )

(x y)2
f (x|y) exp
2(1 2 )
Dengan cara yang sama didapat distribusi bersyarat f (y|x)

(y x)2
f (y|x) exp
2(1 2 )
setelah didapatkanpdistribusi bersyarat f (x|y) dan f (y|x), dapat dilihat
p bahwa f (x|y) adalah
2
menyebar N (y, (1 )), dan f (y|x) adalah menyebar N (x, (1 2 )). Sehingga dapat dibuat program untuk melakukan simulasi Gibbs sampling pada distribusi bivariate normal,
berikut adalah kode program dengan menggunakan R-Statistik.
# Gibbs sampling untuk kasus bivariate normal...
# Gibbs sampling dengan n=banyaknya iterasi dan rho=parameter korelasi
gibbs<-function(n, rho) {
#Alokasi matriks
mat <- matrix(ncol = 2, nrow = n)
#nilai awal
x <- 0
y <- 0
mat[1, ] <- c(x, y)
#Loop
for (i in 2:n) {
#Komponen x
x <- rnorm(1, rho * y, sqrt(1 - rho2))
#Komponen y
y <- rnorm(1, rho * x, sqrt(1 - rho2))
#Matriks hasil simulasi

3
1
1
3

mat[i, ] <- c(x, y)


}
mat
} #Cara Pemanggilan
bvn<-gibbs(10000,0.98)

bvn[,1]

bvn[,1]

2000

4000

6000

8000

10000

2000

4000

6000

8000

10000

0 200

0 200

600

Time
Histogram
of bvn[, 2]

600

Time
Histogram
of bvn[, 1]

bvn[, 1]

bvn[, 2]

Gambar 3: Hasil simulasi Gibbs sampling pada distribusi bivariate Normal

KESIMPULAN

Algoritma Metropolis-Hastings berguna untuk membangkitkan barisan sampel dari suatu distribusi probabilitas yang sulit untuk dilakukan penarikan sampel dengan menggunakan
mekanisme penerimaan dan penolakan. Barisan ini dapat digunakan untuk mengaproksimasi
distribusi dengan histogram, atau untuk menghitung integral. Algoritma Metropolis-Hastings
dibagi menjadi tiga bagian yaitu:
a) Algoritma Metropolis yang sebenarnya qij = qji
b) Gerak Acak Metropolis-Hastings: q(i, j) = q(j i)
c) Independen sampling: q(i, j) = q(j) independen dari i
Gibbs Sampling adalah kasus khusus dari algoritma Metropolis-Hastings dengan probabilitas penerimaan() selalu satu, berguna untuk membangkitkan barisan sampel dari distribusi
probabilitas bersama dua atau lebih variabel acak. Barisan tersebut bertujuan untuk mengaproksimasi distribusi bersama dengan sebuah histogram atau menghitung ekspektasi.Gibbs
Sampling memerlukan distribusi bersyarat (conditional distribution) dari tiap-tiap variabel. Pada Gibbs Sampling semua simulasi adalah univariate dan semua sampel hasil simulasi diterima.
Kedua algoritma yang telah dibahas merupakan algoritma Markov chain Monte Carlo
yang termasuk dalam bagian algoritma aproksimasi yang menggunakan teknik simulasi menggunakan bantuan komputer.

DAFTAR PUSTAKA
Brooks, S. 1998. Markov Chain Monte Carlo Methods and Its Application, The Statistician, 47,
69-100.
Casella, G., and E. I. George. 1992. Explaining the Gibbs sampler. American Statistician. 46,
167-174.
Chib, S., and E. Greenberg. 1995. Understanding the Metropolis-Hastings algorithm. American
Statistician. 49, 327-335.
Fishman, George S. 1996. Monte Carlo: Concepts, Algorithm, And Applications, SpringerVerlag, New York.
Roberts G.O., and Rosenthal J.S. 2003. Markov chain Monte Carlo,
probability.ca/jeff/ftpdir/mcmcact.pdf

http://

Ross, S.M. 1993. Introduction to Probability Models, 5th ed., Academic Press, Orlando, FL.
Walsh, B. Markov Chain Monte Carlo and Gibbs Sampling. Lecture Notes for EEB 581. 2004.
http://www.r-projects.org
http://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo
http://en.wikipedia.org/wiki/Metropolis-Hastings_algorithm
http://en.wikipedia.org/wiki/Gibbs_sampling
http://id.wikipedia.org/wiki/Metode_Monte_Carlo
http://www.mas.ncl.ac.uk/ndjw1/teaching/sim/
www.math.auckland.ac.nz/phy707/notes/chap7.pdf

Anda mungkin juga menyukai