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 Algorit-
ma Metropolis-Hastings dan Algoritma Gibbs Sampling. Algoritma Metropolis-Hastings meru-
pakan algoritma untuk membangkitkan barisan sampel menggunakan mekanisme penerimaan
dan penolakan (accept-reject) dari suatu distribusi probabilitas yang sulit untuk dilakukan pe-
narikan sampel. Algoritma Gibbs Sampling dapat dianggap sebagai kasus khusus dari Algorit-
ma 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 L
A
T
E
X2

adi a08@yahoo.com
1
1 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 semacamini seringkali muncul dalamberbagai macamaplikasi sains
contohnya pada bidang statistika, komputer sains, dan sika statistik.
Markov Chain Monte Carlo memberikan solusi secara tidak langsung pada permasala-
han 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 Al-
goritma 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). Algorit-
ma 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 sika statistik pada tahun
1953, dan digeneralisasikan oleh Hastings (1970). Algoritma ini dan variasinya digunakan
pula pada aplikasi berbagai bidang seperti: pengolahan citra, aplikasi nansial, 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.
2 KAJIAN TEORI
2.1 Rantai Markov
Denisi 2.1 (Rantai Markov) Proses stokastik {X
n
, n = 0, 1, . . .} adalah rantai Markov jika
memenuhi syarat Markov, yaitu:
P{X
n+1
= j|X
n
= i, X
n1
= i
n1
, . . . , X
1
= i
1
, X
0
= i
0
} = P(X
n+1
= j|X
n
= i) = P
ij
Denisi 2.2 Rantai X dikatakan homogen jika
P(X
n+1
= j|X
n
= i) = P(X
1
= j|X
0
= i)
untuk semua n, i, j di N. Matriks transisi P = (P
ij
) adalah matriks |S| |S| probabilitas
transisi
P
ij
= P(X
n+1
= j|X
n
= i)
2
Denisi 2.3 (Periode, Periodik, dan Aperiodik) Suatu state i disebut memiliki periode d jika
P
n
ii
= 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 P
n
ii
> 0. Su-
atu state dengan periode sama dengan satu disebut aperiodik, sedangkan state dengan periode
2 disebut periodik.
Denisi 2.4 (Positive recurrent dan Null recurrent) Suatu state disebut berulang positif (Pos-
itive 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 bi-
langan hingga (nite). state recurrent yang tidak positive recurrent disebut null recurrent.
Denisi 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.
Denisi 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)
lim
n
P
(n)
ij
ada dan nilainya tidak tergantung dari i

j
= lim
n
P
(n)
ij
, j 0

j
adalah solusi unik non negatif dari

j
=

j=0

i
P
ij
, j 0 dan

j=0

j
= 1 (1)
Teorema 2.8 Andaikan bahwa M = {X
n
}

n=
adalah rantai Markov dengan matriks tran-
sisi P, adalah distribusi stasioner tunggal, dan untuk semua n, X
n
didistribusikan sebagai
. Madalah reversibel jika dan hanya jika

i
P
ij
=
j
P
ji
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 sam-
pel dari sebuah densitas f = (
1
K
)f
1
hanya diketahui f
1
jika ada suatu densitas h sedemikian
sehingga (adalah mungkin untuk membangkitkan sampel dari h dan)
f
1
(x) Mh(x) x
Algoritma diberikan di bawah ini dikenal sebagai rejection sampling
3
1) Bangkitkan sampel acak dari distribusi dengan densitas h. Misal y
2) Terima y sebagai sampel dengan probabilitas
_
f
1
(y)
Mh(y)
_
3) Jika langkah ke 2 tidak berhasil kembali ke langkah 1.
3 PEMBAHASAN
3.1 Algoritma Metropolis-Hastings
Algoritma M-H bisa ditulis sebagai berikut: Dimulai dengan sebarang X
0
, pada setiap
iterasi n = 1, . . . , N
1) Ambil sampel j q
ij
Q = {q
ij
}
2) Bangkitkan U U (0, 1) dimana U distribusi seragam pada (0, 1)
3) Dengan probabilitas

ij
= min
_
1,

j
q
ji

i
q
ij
_
atur
X
n+1
=
_
j, jika U
ij
percobaan baru, selainnya.
3.1.1 Simulasi Algoritma Metropolis-Hastings
Contoh 3.1 Lakukan pengambilan sampel dari distribusi normal N (0, 1) dengan menggu-
nakan Algoritma Metropolis-Hastings
1) Denisikan kandidat Q untuk setiap iterasi n, bangkitkan kandidat sampel Y U {X
n

a, X
n
+a}, dimana a > 0 adalah konstan. Dan test rasio (TR)
TR :=
(Y )q(X
n
|Y )
(X
n
)q(Y |X
n
)
= exp
1
2
[X
2
n
Y
2
]
2) terima / tolak (accept / reject): probabilitas penerimaan (acceptance probability) yang diten-
tukan dengan formula Metropolis-Hastings
(X
n
|Y ) = min
_
1, TR
_
jika TR 1, atur X
n+1
= Y , jika TR < 1, atur X
n+1
= Y dengan probabilitas TR; atur
X
n+1
= X
n
dengan probabilitas 1-TR.
Gambar 1 dan 2 menunjukkan histogram dari sampling dengan Algoritma M-H
4
Histogram of normvec
normvec
F
r
e
q
u
e
n
c
y
1 0 1 2 3
0
2
0
0
4
0
0
6
0
0
8
0
0
Gambar 1: Histogram hasil simulasi N (0, 1), dengan N=10000 dan a=0.1
Histogram of normvec
normvec
F
r
e
q
u
e
n
c
y
4 2 0 2 4
0
5
0
0
1
0
0
0
1
5
0
0
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 proba-
bility distribution) tidak diketahui secara eksplisit, tetapi distribusi bersyarat (conditional dis-
tribution) dari tiap-tiap variabel diketahui. Algoritma Gibbs sampling bisa dituliskan sebagai
berikut:
1) Tentukan nilai awal x
0
=
_
x
(0)
1
, . . . , x
(0)
p
_
2) Ulangi langkah untuk j = 1, 2, . . . , M
Bangkitkan X
(j+1)
1
dari f
1
_
x
1
|x
(j)
2
, x
(j)
3
, . . . , x
(j)
p
_
Bangkitkan X
(j+1)
2
dari f
2
_
x
2
|x
(j+1)
1
, x
(j)
3
, . . . , x
(j)
p
_
.
.
.
Bangkitkan X
(j+1)
p
dari f
p
_
x
p
|x
(j+1)
1
, . . . , x
(j+1)
p1
_
3) Kembalikan nilai {x
1
, x
2
, . . . , x
M
}
densitas f
1
, f
2
, . . . , f
p
disebut distribusi bersyarat penuh, dan densitas yang digunakan untuk
simulasi. Walaupun dalam dimensi tinggi semua simulasi adalah univariate. Dalam gibbs sam-
pling 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 bi-
variate 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 bivari-
ate normal adalah:
f(x, y|) =
1
2
_
1
2
exp
_

x
2
2xy +y
2
2(1
2
)
_
(3)
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:
f(x|y) exp
_

x
2
x(2y)
2(1
2
)
_
exp
_

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

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

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

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

(y x)
2
2(1
2
)
_
setelah didapatkan distribusi bersyarat f(x|y) dan f(y|x), dapat dilihat bahwa f(x|y) adalah
menyebar N (y,
_
(1
2
)), dan f(y|x) adalah menyebar N (x,
_
(1
2
)). Sehingga da-
pat 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
6
mat[i, ] <- c(x, y)
}
mat
} #Cara Pemanggilan
bvn<-gibbs(10000,0.98)
3 2 1 0 1 2 3

1
1
3
bvn[,1]
3 2 1 0 1 2 3

1
1
3
bvn[,1]
Time
0 2000 4000 6000 8000 10000

1
1
3
Time
0 2000 4000 6000 8000 10000

1
1
3
Histogram of bvn[, 1]
bvn[, 1]
3 2 1 0 1 2 3
0
2
0
0
6
0
0
Histogram of bvn[, 2]
bvn[, 2]
4 2 0 2
0
2
0
0
6
0
0
Gambar 3: Hasil simulasi Gibbs sampling pada distribusi bivariate Normal
4 KESIMPULAN
Algoritma Metropolis-Hastings berguna untuk membangkitkan barisan sampel dari su-
atu 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 q
ij
= q
ji
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 proba-
bilitas penerimaan() selalu satu, berguna untuk membangkitkan barisan sampel dari distribusi
probabilitas bersama dua atau lebih variabel acak. Barisan tersebut bertujuan untuk meng-
aproksimasi distribusi bersama dengan sebuah histogram atau menghitung ekspektasi.Gibbs
Sampling memerlukan distribusi bersyarat (conditional distribution) dari tiap-tiap variabel. Pa-
da 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 meng-
gunakan bantuan komputer.
7
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, Springer-
Verlag, New York.
Roberts G.O., and Rosenthal J.S. 2003. Markov chain Monte Carlo, http://
probability.ca/jeff/ftpdir/mcmcact.pdf
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
8

Anda mungkin juga menyukai