Az MCMC algoritmus és néhány alkalmazása

Hasonló dokumentumok
Markov-láncok stacionárius eloszlása

Legyen adott egy S diszkrét halmaz. Leggyakrabban S az egész számoknak egy halmaza, például S = {0, 1, 2,..., N}, {0, 1, 2,... }.

12. előadás - Markov-láncok I.

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

A maximum likelihood becslésről

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1

Sztochasztikus folyamatok alapfogalmak

e (t µ) 2 f (t) = 1 F (t) = 1 Normális eloszlás negyedik centrális momentuma:

egyenletesen, és c olyan színű golyót teszünk az urnába, amilyen színűt húztunk. Bizonyítsuk

x, x R, x rögzített esetén esemény. : ( ) x Valószínűségi Változó: Feltételes valószínűség: Teljes valószínűség Tétele: Bayes Tétel:

Gauss-Seidel iteráció

KÖZELÍTŐ INFERENCIA II.

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Valószínűségi változók. Várható érték és szórás

biometria II. foglalkozás előadó: Prof. Dr. Rajkó Róbert Matematikai-statisztikai adatfeldolgozás

Biomatematika 12. Szent István Egyetem Állatorvos-tudományi Kar. Fodor János

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Készítette: Fegyverneki Sándor

KÖZELÍTŐ INFERENCIA II.

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

Least Squares becslés

(Diszkrét idejű Markov-láncok állapotainak

Elemi statisztika. >> =weiszd= << december 20. Szerintem nincs sok szükségünk erre... [visszajelzés esetén azt is belerakom] x x = n

Nagy számok törvényei Statisztikai mintavétel Várható érték becslése. Dr. Berta Miklós Fizika és Kémia Tanszék Széchenyi István Egyetem

Általánosan, bármilyen mérés annyit jelent, mint meghatározni, hányszor van meg

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a

Hipotéziselmélet - paraméteres próbák. eloszlások. Matematikai statisztika Gazdaságinformatikus MSc szeptember 10. 1/58

Monte Carlo módszerek a statisztikus fizikában. Az Ising modell. 8. előadás

BIOMATEMATIKA ELŐADÁS

4. Az A és B események egymást kizáró eseményeknek vagy idegen (diszjunkt)eseményeknek nevezzük, ha AB=O

előadás Diszkrét idejű tömegkiszolgálási modellek Poisson-folyamat Folytonos idejű Markov-láncok Folytonos idejű sorbanállás

Matematikai geodéziai számítások 6.

[Biomatematika 2] Orvosi biometria

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Függvények növekedési korlátainak jellemzése

1. Adatok kiértékelése. 2. A feltételek megvizsgálása. 3. A hipotézis megfogalmazása

Adatok statisztikai értékelésének főbb lehetőségei

Kabos: Statisztika II. t-próba 9.1. Ha ismert a doboz szórása de nem ismerjük a

1. Példa. A gamma függvény és a Fubini-tétel.

Hipotézis STATISZTIKA. Kétmintás hipotézisek. Munkahipotézis (H a ) Tematika. Tudományos hipotézis. 1. Előadás. Hipotézisvizsgálatok

Számelméleti alapfogalmak

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

A következő feladat célja az, hogy egyszerű módon konstruáljunk Poisson folyamatokat.

Matematikai geodéziai számítások 6.

A mérési eredmény megadása

Statisztikai következtetések Nemlineáris regresszió Feladatok Vége

2013 ŐSZ. 1. Mutassa be az egymintás z-próba célját, alkalmazásának feltételeit és módszerét!

Statisztikai módszerek a skálafüggetlen hálózatok

Abszolút folytonos valószín ségi változó (4. el adás)

Véletlenszám generátorok és tesztelésük HORVÁTH BÁLINT

Valószínűségszámítás összefoglaló

Normák, kondíciószám

Véletlen szám generálás

Matematikai alapok és valószínőségszámítás. Statisztikai becslés Statisztikák eloszlása

Bevezetés a hipotézisvizsgálatokba

Megoldások. ξ jelölje az első meghibásodásig eltelt időt. Akkor ξ N(6, 4; 2, 3) normális eloszlású P (ξ

Mesterséges Intelligencia MI

egyetemi jegyzet Meskó Balázs

GVMST22GNC Statisztika II. Keleti Károly Gazdasági Kar Vállalkozásmenedzsment Intézet

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Matematika A3 Valószínűségszámítás, 5. gyakorlat 2013/14. tavaszi félév

Matematikai statisztika c. tárgy oktatásának célja és tematikája

Hipotézis, sejtés STATISZTIKA. Kétmintás hipotézisek. Tudományos hipotézis. Munkahipotézis (H a ) Nullhipotézis (H 0 ) 11. Előadás

Mérési hibák

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

(Independence, dependence, random variables)

STATISZTIKA. A maradék független a kezelés és blokk hatástól. Maradékok leíró statisztikája. 4. A modell érvényességének ellenőrzése

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Gazdasági matematika II. vizsgadolgozat megoldása A csoport

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Diszkrét idejű felújítási paradoxon

Elméleti összefoglaló a Valószín ségszámítás kurzushoz

Bevezetés. 1. előadás, február 11. Módszerek. Tematika

A valószínűségszámítás elemei

Diagnosztika és előrejelzés

January 16, ψ( r, t) ψ( r, t) = 1 (1) ( ψ ( r,

Korreláció és lineáris regresszió

KOVÁCS BÉLA, MATEMATIKA I.

Biomatematika 13. Varianciaanaĺızis (ANOVA)

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

Keresztmetszet másodrendű nyomatékainak meghatározása

Mérhetőség, σ-algebrák, Lebesgue Stieltjes-integrál, véletlen változók és eloszlásfüggvényeik

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

A valószínűségszámítás elemei

Gépi tanulás és Mintafelismerés

17. előadás: Vektorok a térben

Biomatematika 2 Orvosi biometria

y ij = µ + α i + e ij STATISZTIKA Sir Ronald Aylmer Fisher Példa Elmélet A variancia-analízis alkalmazásának feltételei Lineáris modell

Hidden Markov Model. March 12, 2013

Matematika A3 Valószínűségszámítás, 6. gyakorlat 2013/14. tavaszi félév

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Matematikai geodéziai számítások 5.

Principal Component Analysis

Fraktálok. Klasszikus fraktálpéldák I. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék

[Biomatematika 2] Orvosi biometria

Diszkrét matematika II., 8. előadás. Vektorterek

Azonos és egymással nem kölcsönható részecskékből álló kvantumos rendszer makrókanónikus sokaságban.

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

Átírás:

Eötvös Loránd Tudományegyetem Természettudományi Kar Az MCMC algoritmus és néhány alkalmazása BSc Szakdolgozat Készítette: Kelemen Kitti Matematika BSc, matematikai elemző szakirány Témavezető: Csiszár Villő Valószínűségelméleti és Statisztika Tanszék Budapest, 2017

Tartalomjegyzék Bevezetés 3 1. Markov láncok 4 1.1. Véges állapotterű Markov láncok........................ 4 1.1.1. Stacionárius eloszlás........................... 5 1.1.2. A konvergencia sebessége........................ 7 1.2. Folytonos állapotterű Markov láncok...................... 8 1.2.1. Stacionárius eloszlás........................... 8 2. MCMC algoritmus 10 2.1. Motiváció..................................... 10 2.2. A Metropolis-Hastings algoritmus........................ 11 2.3. A Gibbs mintavételező algoritmus........................ 13 3. Az MCMC algoritmus néhány alkalmazása 15 3.1. Kriptográfia.................................... 15 3.1.1. Egy saját példa.............................. 18 3.2. Lemezek a dobozban............................... 19 3.3. Hepatitis B tanulmány.............................. 22 4. MCMCpack 27 Összefoglalás 31 Függelék 32 2

Bevezetés A statisztikában gyakran előfordul, hogy ahhoz, hogy következtetést vonhassunk le egy modellről, többdimenziós eloszlások integrálját kellene kiszámolni, amelyek megvalósítása analitikusan lehetetlennek bizonyulhat. A Monte Carlo módszerek megoldást nyújtanak az ilyen problémákra. Monte Carlo módszereken olyan eljárásokat értünk, amelyek véletlenszám-sorozatok generálásán alapulnak. Elnevezésük is erre utal, a kaszinójáról híres Monte Carlo után kapták nevüket, ugyanis a rulettjáték eredményei véletlen számsorozatoknak is tekinthetőek. Ezeket a módszereket manapság nagyon széleskörűen alkalmazzák. Népszerűségüknek oka az, hogy segítségükkel az analitikusan követhetetlen feladatok eredményei is közelíthetőek. Ezen eljárások családjába tartozik a szakdolgozatom témájának választott Markov Lánc Monte Carlo (MCMC) algoritmus is. Az MCMC módszer Markov lánc segítségével állítja elő a véletlenszám-sorozatot. Szakdolgozatom célja betekintést nyújtani az algoritmus működésébe, illetve alkalmazásának sokszínű lehetőségeibe. Az első fejezet az eljárás megértéséhez elengedhetetlen elméleti hátteret tárgyalja. Bevezetjük a véges, és folytonos állapotterű Markov láncok definícióját, illetve megismerjük néhány fontos tulajdonságukat. A második fejezet az algoritmus leírásával foglalkozik. Egy rövid motivációs bevezetés után a két leggyakrabban alkalmazott MCMC módszert ismerjük meg, a Metropolis- Hastings algoritmust, és egy speciális esetét, a Gibbs mintavételező eljárást. A harmadik fejezetben három alkalmazás kerül bemutatásra, mindegyik más-más területről. Elsőként egy valós példán keresztül ismerhetjük meg, hogyan lehet az algoritmus segítségével egy titkosított szöveget visszafejteni. Ezután, egy fizikai vonatkozású példa következik. Az utolsó példa, egy gambiai Hepatitis B tanulmányt prezentál, amely védőoltással ellátott csecsemők vérmintáit vizsgálja, és a vér antitest szintjét modellezi. A negyedik, és egyben utolsó fejezet az R statisztikai program MCMCpack nevű csomagjának néhány függvényét mutatja be, egy adathalmaz elemzésén keresztül. 3

1. fejezet Markov láncok Ez a fejezet a Markov láncok elméleti hátterét tárgyalja, amely szükséges a Markov Lánc Monte Carlo algoritmus megértéséhez. Munkámat Csiszár Villő ([1]) és Tóth Imre Péter ([2]) elektronikus jegyzetei, valamint Timo Koski ([3]) és George Deligiannidis ([4]) cikkei segítették. 1.1. Véges állapotterű Markov láncok 1.1.1. Definíció. Legyen adott egy S megszámlálható halmaz. Egy S értékű X 0, X 1, X 2,... valószínűségi változó sorozatot Markov láncnak nevezünk, ha n 0 egész szám és j, i n,..., i 0 esetén teljesül a P (X n+1 = j X n = i n, X n 1 = i n 1,..., X 0 = i 0 ) = P (X n+1 = j X n = i n ) egyenlőség, és ez nem függ n-től, csak az i n és j állapotoktól. Tehát X n+1 feltételes eloszlása adott X 0, X 1,..., X n mellett, csak az X n értékétől függ. Az S halmazt a Markov lánc állapotterének nevezzük. A továbbiakban feltesszük, hogy S véges halmaz. Ha az indexre úgy gondolunk, mint az idő paraméterére, akkor a Markov lánc valamilyen időben változó véletlen jelenséget ír le. A következő két objektum már meghatározza a folyamatot: A kezdeti eloszlás, azaz X 0 eloszlása. Az egylépéses átmenetvalószínűség, azaz X n+1 feltételes eloszlása X n ismerete mellett. Véges állapottér esetén a kezdeti eloszlás egy λ = [λ i, i S] vektorral adható meg, úgy, hogy az i-edik elem annak a valószínűsége, hogy a kezdeti időpontban a Markov lánc az i 4

állapotban van, P (X 0 = i) = λ i, i S. Az átmenetvalószínűségek egy mátrixban is megadhatóak, melynek az i-edik sorának j-edik eleme a P (X n+1 = j X n = i) = p ij valószínűség. P az S S -es átmenetmátrix. Ezen mátrix segítségével felírható annak a valószínűsége, hogy a Markov lánc az i 0 pontból kiindulva, az i 1, i 2,..., i n állapotokba lép. P (X n = i n, X n 1 = i n 1,..., X 2 = i 2, X 1 = i 1 X 0 = i 0 ) = = P (X 1 = i 1 X 0 = i 0 ) P (X n = i n X 0 = i 0,..., X n 1 = i n 1 ) = = p i0 i 1 p i1 i 2 p in 1 i n. Így egy Markov láncot meg lehet feleltetni egy irányított, súlyozott gráfon való bolyongásnak: az i 0 állapotból i 1 állapotba lépésnek a valószínűsége p i0 i 1, az i 1 állapotból az i 2 állapotba lépésnek a valószínűsége p i1 i 2, és így tovább. Az egylépéses átmenetmátrixhoz hasonlóan definiálhatjuk az n lépéses átmenetmátrixot (jelölje P (n) ), melynek elemei a n lépéses átmenetvalószínűségek. A P (X n = i n X 0 = i 0 ) átmenetvalószínűség azt adja meg, hogy a Markov lánc mekkora eséllyel jut el n lépés alatt i 0 -ból i n -be. A P (n) mátrix (i, j) koordinátájú helyén a valószínűség áll. p (n) ij = P (X n = j X 0 = i) 1.1.2. Állítás. Az n lépéses átmenetmátrix megegyezik az egylépéses átmenetmátrix n-edik hatványával. P (n) = P n. 1.1.1. Stacionárius eloszlás 1.1.3. Definíció. Egy X 0, X 1,... Markov láncot stacionárius folyamatnak nevezünk, ha minden n 0, m 1 és i 0, i 1,..., i n S esetén P (X 0 = i 0, X 1 = i 1,..., X n = i n ) = P (X m = i 0, X m+1 = i 1,..., X m+n = i n ). Azaz, ha a véges dimenziós eloszlások eltolás-invariánsak. 1.1.4. Definíció. Legyen a π sorvektor az S állapottéren egy adott eloszlás (π=[π i, i S]). π stacionárius eloszlás, ha πp = π. 5

Ez azt jelenti, hogy ha π szerint választunk egy i-t, annak a valószínűsége, hogy a következő időpontban a j állapotban lesz a folyamat π j, ugyanis X 0 eloszlása: P (X 0 = j) = π j, j S, megegyezik X 1 eloszlásával: P (X 1 = j) = [πp ] j, j S, és ebből következik, hogy minden n esetén X n -nek ugyanaz az eloszlása: P (X n = j) = π j, n 0, j S. 1.1.5. Állítás. Ha a Markov lánc kezdeti eloszlása a π stacionárius eloszlás (λ = π), akkor a Markov lánc stacionárius. A stacionárius eloszlás létezése és egyértelműsége bizonyos feltételekhez kötött, de ezeknek a tárgyalása előtt, szükséges néhány fogalmat definiálni. Azt mondjuk, hogy j elérhető az i állapotból (i j), ha létezik pozitív valószínűségű út i-ből j-be, és i érintkezik a j állapottal, ha i elérhető j-ből, és j is elérhető i-ből (i j). Ez ekvivalenciareláció, tehát osztályokra bontja az állapotteret, úgy, hogy az egymással érintkező állapotok egy osztályba tartoznak. Ha csak egy osztály létezik, akkor a Markov láncot irreducibilisnek nevezzük. Az i állapot rekurrens vagy visszatérő, ha az i állapotból indulva, a lánc 1 valószínűséggel visszatér, különben tranziens. Ha i rekurrens, akkor az átlagos visszatérési idő m i = (n) n=1 nf ii, ahol f (n) ii jelöli annak a valószínűségét, hogy az i állapotból indulva a lánc először az n. lépésben tér vissza az i állapotba. Ha m i <, akkor az i-t pozitív rekurrensnek, ha m i =, nulla rekurrensnek nevezzük. Egy állapot lényeges, ha i j esetén j i is teljesül. Mind a lényegesség, mind a visszatérőség osztálytulajdonság, tehát egy osztályon belül vagy csak lényeges, vagy csak lényegtelen állapotok vannak, így beszélhetünk lényeges és lényegtelen osztályokról, és ugyanez igaz a visszatérőségre. A lényegtelen osztályok olyanok, hogy ki lehet belőlük jutni, ezek tranziensek. Ezzel szemben a lényeges osztályokból nem lehet kijutni, visszatérőség szempontjából lehetnek tranziensek, nulla rekurrensek, vagy pozitív rekurrensek is. Egy Markov láncnak akkor van stacionárius eloszlása, ha van legalább egy pozitív rekurrens osztálya, és ha pontosan egy van, akkor az eloszlás egyértelmű. Ha az állapottér véges, akkor minden lényeges osztály pozitív rekurrens, és mivel legalább egy lényeges osztálynak lennie kell, ezért mindig létezik stacionárius eloszlás. Ha pontosan egy van, akkor a lényegtelen állapotoktól el lehet tekinteni, tehát ekkor egy lényeges osztály van, és azon a lánc irreducibilis. A következő tételhez szükséges az aperiodikusság fogalma is. Az i állapot akkor aperiodikus, ha a periódusa, azaz az {n > 0 : P (X n = i X 0 = i) > 0} halmaz legnagyobb közös osztója 1. Az egy osztályban lévő állapotok periódusa megegyezik, tehát ebben az esetben minden állapot aperiodikus. 6

1.1.6. Tétel. Ha egy Markov láncnak létezik egyértelmű stacionárius eloszlása, és aperiodikus, akkor X n eloszlása n növekedésével konvergál a stacionárius eloszláshoz, függetlenül attól, hogy mi a kezdeti eloszlás. Azaz, P λ (X n = j) π j, n j. Ugyanez mátrixos formában felírva λp n π, n. 1.1.2. A konvergencia sebessége Ha konvergenciáról van szó, mindig érdekes annak a sebessége. Véges állapotterű Markov láncokra ez a sebesség exponenciálisan gyors, ezt mondja ki a következő tétel. 1.1.7. Tétel. Ha egy véges állapotterű Markov lánc irreducibilis és aperiodikus (ekkor az előzőek szerint létezik egyértelmű stacionárius eloszlása), akkor max P λ (X n = j) π j Cδ n, j ahol C > 0 és 0 < δ < 1, ahol δ a Markov lánc átmenetmátrixának második legnagyobb abszolút értékű sajátértéke (a legnagyobb az 1). Ugyanez mátrixos formában felírva [λp n ] j π j Cδ n. A konvergenciasebességet becsülhetjük megállási időkkel is. Ehhez először szükséges definiálni a következőt. Nevezzük τ-t ügyes megállási időnek, ha olyan, hogy ha tudjuk, hogy a lánc a k-adik lépésben áll meg, akkor ebben az időpontban az eloszlása épp a stacionárius eloszlás, azaz minden k és minden i állapot esetén. P (X k = i τ = k) = π i, 1.1.8. Tétel. Ha τ ügyes megállási idő, akkor minden kezdeti eloszlásra a p k i = P (X k = i) eloszlás és a stacionárius eloszlás távolságára teljesül, hogy p k π T V P (τ > k). A T V a variációs távolság, mellyel két eloszlás távolságát szokás mérni, a definíciója p k π T V = max A S pk (A) π(a). 7

1.2. Folytonos állapotterű Markov láncok Ebben az alfejezetben az előzőekben bemutatott definíciókat és tételeket ismertetem folytonos állapottér esetén. Ebben az esetben az átmenetvalószínűségek nem adhatóak meg egy mátrixban, helyette definiáljuk az átmenetmagot. Legyen az (S, B) egy mérhető tér. A K(x, dy) átmenetmag egy K(x, ) valószínűségi mérték minden x S-re. A K(x, A) annak a feltételes valószínűsége, hogy az x állapotból, az A S mérhető halmazba lép a folyamat. Definíció szerint K(x, A) = P (X n+1 A X n = x) = K(x, dy). 1.2.1. Definíció. Legyen adott egy K átmenetmag. Az {X n } n 0 sorozat Markov lánc, ha minden n és x 0, x 1,..., x n esetén az X n+1 feltételes eloszlása adott X n = x n, X n 1 = x n 1,..., X 0 = x 0 esetén P (X n+1 A X n = x n, X n 1 = x n 1,..., X 0 = x 0 ) = P (X n+1 A X n = x n ) = K(x n, A), ahol az A S mérhető halmaz. Az átmenetmagot iterálva kaphatjuk meg a többlépéses átmenetmagokat, így például annak a valószínűségét, hogy az x állapotból két lépésben jutunk el az A halmazba P (X 2 A X 0 = x) = K 2 (x, A) = K(z, A)K(x, dz). Általánosan P (X n A X 0 = x) = K n (x, A) = 1.2.1. Stacionárius eloszlás S S A K n 1 (z, A)K(x, dz). A π valószínűségi mértéket a Markov lánc stacionárius eloszlásának nevezzük, ha π(a) = K(x, A)π(dx) S teljesül minden A S mérhető halmazra. A diszkrét állapotterű esetben látott konvergencia itt is érvényesül, de a tétel kimondásához szükséges először a következő fogalmakat definiálni. 1.2.2. Definíció. Legyen adott egy µ eloszlás az S állapottéren. Egy Markov láncot µ- irreducibilis- nek nevezünk, ha minden x S és minden olyan A mérhető halmaz esetén, amelyre µ(a) > 0, létezik n, hogy K n (x, A) > 0. 8

A tételben π-irreducibilis Markov láncokról lesz szó, ahol π a stacionárius eloszlás. 1.2.3. Definíció. Egy µ-irreducibilis Markov láncot periodikusnak nevezünk, ha létezik nemüres, diszjunkt mérhető halmazok egy sorozata, A 1, A 2,..., A n (n 2) úgy, hogy 1 ha j = i + s mod n i, j, t, s : P (X t+s A j X t A i ) = 0 különben. Különben a Markov lánc aperiodikus. Ezen tulajdonságok ismeretében kimondható a következő tétel. 1.2.4. Tétel. Legyen K az átmenetmag π stacionárius eloszlással, és tegyük fel, hogy K π-irreducibilis. Ekkor a π stacionárius eloszlás egyértelmű. Ha K aperiodikus is, akkor majdnem minden x esetén K n (x, ) π T V 0, n. Ha K Harris-rekurrens, akkor minden x-re teljesül a konvergencia. Jelöljük η A -val, hogy hány alkalommal jár a folyamat az A S halmazban. 1.2.5. Definíció. Egy A S halmaz Harris-rekurrens, ha P x (η A = ) = 1, minden x S esetén. Egy Markov lánc akkor Harris-rekurrens, ha µ-irreducibilis és minden olyan A halmaz, melyre µ(a) > 0, Harris-rekurrens. 9

2. fejezet MCMC algoritmus A Markov lánc Monte Carlo módszer olyan véletlen mintavételező eljárás, mely egy olyan Markov láncot generál, amely a kívánt eloszláshoz konvergál. A Markov lánc megkonstruálásának több módja is van, de mindegyik módszer a Metropolis-Hastings algoritmus speciális esete. Ebben a fejezetben egy rövid motivációs bevezetés után, bemutatom az általános Metropolis-Hastings algoritmust, illetve a Gibbs mintavételező algoritmust. Ehhez Dr. Stephen Sauchi Lee ([5]), és Stephen P. Brooks ([6]) írásait használtam fel. 2.1. Motiváció Az MCMC eljárásokat széleskörűen alkalmazzák a bayes-i és klasszikus statisztikában egyaránt. A módszer népszerűségének oka az, hogy a nagyon bonyolult, többdimenziós problémák is közelíthetőek vele. Jelölje D a megfigyelt adatokat, és θ a modell paramétereit. A bayes-i statisztikában θ is valószínűségi változó, amelyet becsülni akarunk. A D és a θ együttes eloszlása (P (D, θ)) az a priori eloszlás (P (θ)), és a likelihood (P (D θ)) szorzata P (D, θ) = P (D θ)p (θ). A Bayes-tételt felhasználva meghatározható a θ D-re vonatkozó feltételes eloszlása P (θ D) = P (θ)p (D θ). P (θ)p (D θ)dθ Ezt θ a posteriori eloszlásának nevezzük. Az olyan mennyiségek, mint például a momentumok kifejezhetőek a θ függvényeinek feltételes várható értékével, ahol D ismert, E[f(θ) D] = f(θ)p (θ)p (D θ)dθ P (θ)p (D θ)dθ. 10

A kifejezésben szereplő integrálok analitikus kiszámítása gyakran lehetetlen, főként többdimenziós esetben. Ez a probléma a klasszikus statisztikában is gyakran felmerül. A fenti levezetés általános esetben is felírható. Legyen X egy véletlen változókból álló vektor, π( ) eloszlással. A feladat itt is a várható érték kiszámítása, ahol f valamilyen függvénye X-nek E[f(X)] = f(x)π(x)dx π(x)dx. Feltesszük, hogy X eloszlását a normalizáló állandótól eltekintve ismerjük, így az π(x)dx értéke ismeretlen. A probléma megoldásának alternatív megközelítése lehet a numerikus kiszámítása de ez bonyolult, és több mint 20 dimenzió esetén nagyon pontatlan is lehet, és az analitikus közelítése például Monte Carlo integrálással. Monte Carlo integrálással E[f(X)]-et közelíthetjük olyan X t -k (t = 1,..., n) segítségével, amelyeket a π( ) eloszlásból veszünk. Így E[f(X)] 1 n n f(x t ). Ha az X t minták függetlenek, akkor a nagy számok törvénye miatt a mintaelemszám emelésével a becslés pontossága is növelhető. Ugyanakkor általában nem lehet függetlenül venni mintákat a π( ) eloszlásból, és nem is szükséges. Mintavételezhetünk egy Markov lánc segítségével, amelynek π( ) a stacionárius eloszlása. Ezt nevezzük Markov lánc Monte Carlo módszernek. A MCMC tehát lényegében olyan Monte Carlo integrálás, amely Markov láncokat használ. t=1 2.2. A Metropolis-Hastings algoritmus Ebben a részben a Markov lánc megkonstruálásának legáltalánosabb módszerét mutatom be, melyet Hastings dolgozott ki Metropolis korábbi algoritmusa alapján. Az algoritmussal véletlen mintákat veszünk úgy, hogy minden x állapotban, a következő állapotot úgy választjuk meg, hogy veszünk egy y jelöltet egy q( x) eloszlásból. Ez az eloszlás függhet a jelenlegi, x állapottól. Az y jelölt elfogadásáról az α(x, y) valószínűséggel döntünk, ahol ( α(x, y) = min 1, π(y)q(x y) ). (2.1) π(x)q(y x) Ha az α(x, y) = 1, azaz a tört értéke 1, akkor y-t 1 valószínűséggel elfogadjuk. Ha az α(x, y) < 1, azaz a tört értéke < 1, akkor y-t α(x, y) valószínűséggel választjuk (amely ebben az esetben a (2.1)-ben szereplő tört értékével lesz egyenlő). Ilyenkor tehát előfordulhat, hogy y-t nem fogadjuk el, ez esetben a következő állapot megegyezik a jelenlegivel. 11

Az algoritmus minden mintát függetlenül generál a q eloszlásból, de a sorozat elemei nem függetlenek egymástól, gyakori, hogy az egymást követő állapotok azonosak. A q(x y) sokféleképpen megválasztható, néhány speciális esetet mutatok be, amelyek gyakran előfordulnak a gyakorlatban. 1. Ha a q(y x) függvény szimmetrikus, azaz q(y x) = q(x y), akkor az elfogadási valószínűség leegyszerűsíthető az ( α(x, y) = min 1, π(y) ) π(x) alakra. Ezt az esetet dolgozta ki Metropolis. 2. Ha a q(y x) független a jelenlegi állapottól, azaz q(y x) = q(y), akkor az algoritmust független Metropolis-Hastings algoritmusnak nevezzük. Ekkor az elfogadási valószínűség ( α(x, y) = min 1, π(y)q(x) ). π(x)q(y) 3. Véletlen bolyongású Metropolis-Hastings: ekkor az y jelölteket az y = x+ɛ egyenlettel kapjuk, amelyben ɛ g(ɛ) eloszlású, és q(y x) = g(y x). Megmutatható, hogy az algoritmus egy Markov láncot generál, amely konvergál a π stacionárius eloszláshoz. Ehhez azt kell látni, hogy a Markov lánc reverzibilis, azaz a π függvény olyan, hogy teljesül rá a π(x)p (y x) = π(y)p (x y) egyenlőség, ahol P (y x) és P (x y) az átmenetvalószínűségek. Ugyanis, ha a Markov lánc kielégíti ezt a feltételt, akkor π a hozzá tartozó stacionárius eloszlás. Az átmenetmag a Metropolis-Hastings algoritmus esetén a következőképpen néz ki q(y x) ha y x, α(x, y) 1 P (y x) = q(y x)α(x, y) ha y x, α(x, y) < 1 q(y x) + z:α(x,z)<1 q(z x)(1 α(x, z)) ha y = x, (2.2) ha a Markov lánc állapottere véges. Az átmenetmag felírható folytonos állapotterű Markov lánc esetén is, ekkor az y = x esetben összegzés helyett integrálunk. Ha x = y, akkor a reverzibilitás teljesül. A következőekben az x y esetet vizsgáljuk, külön megnézve az α(x, y) < 1 és α(x, y) = 1 eseteket. Belátható, hogy ha α(x, y) < 1, akkor π(y)q(x y) π(x)q(y x) < 1. Ekkor az ( α(y, x) = min 1, π(x)q(y x) ) π(y)q(x y) 12 (2.3)

egyenlő lesz 1-gyel, ugyanis π(y)q(x y) π(x)q(y x) < 1, így ennek a reciproka 1-nél nagyobb. Hasonlóan, ha α(x, y) = 1, akkor α(y, x) < 1. A (2.1) egyenletből következik, hogy ha α(x, y) < 1, akkor π(x)q(y x) = π(y)q(x y)α(y, x), amelyből a (2.2)-t felhasználva megkapható, hogy π(x)p (y x) = π(y)p (x y). Ha α(x, y) = 1, azaz α(y, x) < 1, akkor a (2.3) egyenletből következik, hogy π(y)q(x y) = π(x)q(y x)α(x, y), melyből megkapható, hogy π(y)p (x y) = π(x)p (y x). Látható, hogy a π eloszlás normalizáló állandója minden számolásnál kiesik, így ennek ismeretétől eltekinthetünk. Ha a π(x)p (y x) = π(y)p (x y) egyenlőség mindkét oldalát összegezzük x szerint, akkor a következőt kapjuk π(x)p (y x) = π(y). (2.4) Így tehát π a Metropolis-Hastings algoritmus által generált Markov lánchoz tartozó stacionárius eloszlás. A (2.4) azt mondja meg, hogy ha x-et a π stacionárius eloszlás szerint választottuk, akkor y-t is π szerint fogjuk, és ez igaz minden későbbi mintára. 2.3. A Gibbs mintavételező algoritmus Az algoritmus során felosztjuk az állapotvektort komponensekre, majd ezeket a komponenseket módosítjuk egymás után. Jelöljön az x = (x 1,..., x k ) R p (k p) egy felosztást. Ekkor az x i -nek az összes többi komponensre vett feltételes eloszlásából mintavételezünk egy y i -t, és erre az értékre módosítjuk x i -t. Formálisan, legyen x (i) = (x 1,..., x i 1, x i+1,..., x k ), az új y i értéket a π(x i x (i) ) eloszlásból vesszük, minden i = 1,..., k, (1 < k p) esetén. Ha az x i komponenst módosítottuk, akkor az utána következő komponensek feltételes eloszlását már az x i módosított értékével számoljuk. Ideális esetben a π(x i x (i) ) valamilyen standard eloszlás, de ellenkező esetben is ismert számos eljárás a mintavételezésre. Megmutatható, hogy a Gibbs mintavételező a Metropolis-Hastings algoritmus egy speciális esete. Tegyük fel, hogy az i-edik komponenst szeretnénk módosítani, ekkor a q eloszlást a következőképpen választjuk meg π(y i x (i) ) ha x (i) = y (i) q(y x) =. 0 különben. 13

Ekkor az elfogadási valószínűség levezethető úgy, hogy a π(y)q(x y) π(x)q(y x) képletbe behelyettesítjük a fenti q megválasztást. Így π(y)π(x i y (i) ) π(x)π(y i x (i) ) = π(y)/π(y i x (i) ) π(x)/π(x i y (i) ) = π(y)/π(y i y (i) ) π(x)/π(x i x (i) ). Az utolsó egyenlőség igaz, mert tudjuk, hogy x (i) = y (i). Továbbá felhasználva a feltételes valószínűség definícióját az egyenlőség tovább egyszerűsíthető, és így kapjuk, hogy π(y (i) ) π(x (i) ) = 1. Ekkor az elfogadási valószínűség is 1-gyel egyenlő, mivel ( α(x, y) = min 1, π(y)π(x ) i y (i) ) = 1. π(x)π(y i x (i) ) Ez azt jelenti, hogy minden lépés után a lehetséges y jelöltek azok lesznek, amelyeknek minden komponensük (az i-edik kivételével) megegyezik az aktuális, x állapot komponenseivel, és az ilyen y-okat el is fogadjuk. 14

3. fejezet Az MCMC algoritmus néhány alkalmazása Ez a fejezet az algoritmus három alkalmazását mutatja be. Az első és második szakasz alapjául Persi Diaconis cikke ([7]) szolgál. A harmadik szakasz egy tanulmányt ismertet, melyet D. J. Spiegelhalter, N. G. Best, W. R. Gilks és H. Inskip dolgoztak ki ([9]). 3.1. Kriptográfia A kriptográfia olyan algoritmusokkal foglalkozó tudományág, melyekkel üzeneteket lehet titkosítani, és visszafejteni. Ebben a részben egy konkrét valós példán keresztül szeretném bemutatni, hogyan lehet a Markov lánc Monte Carlo algoritmust erre a célra felhasználni. A bemutatott példát a Stanford Egyetem Statisztika Tanszékének munkatársai, Mark Coram és Phil Beineke oldották meg. A kódolt szöveggel az állami börtön foglyai üzentek egymásnak, ennek egy részlete látható a 3.1 ábrán. A rejtjelezés többféle módon történhet, ez esetben helyettesítő rejtjelről lesz szó. Ez azt jelenti, hogy a titkosított szövegben minden szimbólum egy számot, betűt, írásjelet, vagy szóközt helyettesít. Így, van egy ismeretlen f függvényünk, amely a kódtér minden egyes eleméhez hozzárendel egy számot, betűt, írásjelet vagy szóközt. A feladat annak az f függvénynek a megtalálása, amellyel a visszafejtett szöveg értelmes. Ahhoz, hogy két f függvényt összehasonlíthassunk, bevezetjük a P l(f) értéket, amely kiszámításához felhasználunk egy referencia szöveget. Jelölje M(x, y) azt a mátrixot, melyben az egymást követő (x, y) szimbólumok arányait gyűjtöttük össze. Ezzel P l(f) = i M(f(s i ), f(s i+1 )), 15

3.1. ábra. Az állami börtön foglyai által használt kódírás ahol s i a kódolt szöveg i-edik szimbóluma, és f(s i ) azt a betűt jelöli, amelyet az f függvény hozzárendel az s i -hez. Ekkor megnézzük minden i-re, hogy a referencia szövegünkben, ami ezesetben legyen a Háború és Béke angol nyelven, mekkora valószínűséggel szerepelnek egymás után az f(s i ) és f(s i+1 ) betűk. Ezeknek a valószínűségeknek a szorzata adja a P l(f) értékét. Azok az f függvények lesznek jó jelöltek, melyekre P l(f) értéke nagy. Célunk tehát maximalizálni a P l(f)-et, és ehhez a Markov lánc Monte Carlo algoritmust használjuk. Egy kezdeti f függvényből indulunk ki. Kiszámoljuk P l(f)-et. Módosítjuk f-et úgy, hogy kiválasztunk a kódolt szövegből két szimbólumot és a hozzárendelt értékeket felcseréljük, így megkapunk egy f függvényt. Kiszámoljuk P l(f )-ot, és ha P l(f ) > P l(f), akkor elfogadjuk f -ot. Ha P l(f ) P l(f), akkor P l(f ) P l(f) valószínűséggel elfogadjuk f -ot. Az utolsó lépés lehetővé teszi, hogy olyan f függvényt is elfogadjunk, melyre P l(f ) < P l(f), és ezzel megakadályozzuk, hogy az algoritmus megakadjon egy lokális maximum helyen. 16

3.2. ábra. A visszafejtés eredménye Az algoritmus futtatása után a 3.2. ábra szövegét kapjuk eredményül. Látható, hogy sikeres volt a visszafejtés, annak ellenére is, hogy az angol nyelvű szöveg spanyol és börtön szleng kifejezéseket is tartalmaz. A Markov lánc S állapotterét azok az f függvények alkotják, amelyek a kód minden szimbólumához az {A, B, C,..., Z, 1, 2,..., 9, 0,,.,?,...} halmaz egy elemét rendelik. Ekkor legyen a Markov lánchoz tartozó stacionárius eloszlás π(f) = z 1 i M(f(s i ), f(s i+1 )), ahol M ismert. A z normalizáló állandó ismeretlen, a következőképpen definiált z = (M(f(s i )f(s i+1 ))). f i Tegyük fel, hogy a kódolt szövegben m különböző szimbólum van, és az {A, B,..., Z, 1, 2,..., 9, 0,,,,?,...} halmaz elemszáma n (n m). Így az állapottér bár véges, de nagyon nagy, S = n(n 1) (n m+1). A Metropolis algoritmussal ekkor is egyszerűen mintavételezhetünk. Ha f a jelenlegi függvényünk, akkor a következő f függvényt a q(f f) eloszlásból választjuk, ahol 2 q(f m(m 1)(n m+2)(n m+1) ha f és f legfeljebb két értékben tér el, f) = 0 különben. Itt a tört reciproka azt adja meg, hogy m különböző szimbólum közül hányféleképpen tudjuk kettőnek a hozzárendelési értékét megváltoztatni (akár ugyanarra, mint ami eredetileg 17

is volt). Mivel a q(f f) szimmetrikus függvény, ezért az eloszlásból vett f -t a következő elfogadási valószínűséggel fogadjuk el ( π(f α(f, f ) ) ) = min π(f), 1 3.1.1. Egy saját példa ( P l(f ) ) = min P l(f), 1. A fenti kriptográfiai algoritmust egy saját példán is bemutatom, amely az R statisztikai programban készült. A forráskód ([8]) eredetileg az angol ábécé betűit felhasználva fejtette vissza a kódolt szövegeket, de némi változtatás után már az ékezetes betűket is ismeri, így magyar szövegek esetén is alkalmazható. A visszafejtéshez szükséges referencia szövegnek az Egri csillagokat választottam, melyben megvizsgáljuk az átmenetvalószínűségeket, azaz, hogy mekkora valószínűséggel következnek egymás után az egyes betűk. A betűkön felül egy 37. karaktert is figyelembe vettünk, idesorolva minden írásjelet és szóközt. Ez azért volt hasznos, mert így azt is meg lehet állapítani, hogy melyek azok a betűk, amelyekkel a legnagyobb valószínűséggel végződnek, vagy kezdődnek a szavak. A valószínűségek kiszámításához egy ciklus végigmegy a referencia szövegen, megszámolja, hogy egy adott betűt hány alkalommal követ egy másik, majd ezeket a számokat egy 37 37-es mátrixba gyűjti, és minden elemét leosztja a sorösszeggel. Ez az átmenetmátrix látható a következő ábrán, a konkrét számok helyett színnel jelölve a valószínűségeket. Minél sötétebb a cella, annál nagyobb abban az esetben a valószínűség. 3.3. ábra. Átmenetvalószínűségek az Egri csillagok című regény alapján 18

Az ábráról leolvasható, hogy nagy valószínűséggel követik egymást például a C és S, H és A, Ü és L, G és Y betűk. Feltűnhet az is, hogy viszonylag magas a valószínűsége a WE betűpárnak is, ami a magyar nyelvre annyira nem jellemző, de ennek oka az, hogy kevésszer fordul elő a szövegben, viszont ha igen, akkor leggyakrabban a Werbőczy névben. A visszafejtéshez Hamlet híres Lenni vagy nem lenni kezdetű monológjának első néhány sorát használtam fel. Ennek minden betűjét egy függvény segítségével kicseréltem egy másikra, így megkapva a kódolt szöveget, amelyen az algoritmust alkalmaztam. 3.4. ábra. Hamlet híres monológjának első néhány sora kódolva Tehát minden L betű helyére K került, minden E helyére É, és így tovább. A visszafejtés ennek a szövegnek egy véletlenszerű dekódolásából indul ki, és ezt próbálja tovább javítgatni a korábban leírt algoritmussal. 2000 különböző dekódolást próbál ki az algoritmus a futása során, ezek közül csak a legjobb eredményt ragadtam ki a következő ábrán. 3.5. ábra. Az algoritmus futtatása után kapott eredmény Az eredmény nem lett tökéletes, az É, O, és Ű betűket nem sikerült eltalálnia az algoritmusnak, ennek az egyik oka az lehet, hogy ezek csak kevésszer fordulnak elő a szövegben. Egy másik lehetséges indok, hogy túl rövid volt a szöveg amelyet visszafejtettem, de egy hosszabb szöveg dekódolása nagyon időigényes lenne. 3.2. Lemezek a dobozban Legyen adott n darab ɛ sugarú lemez. Célunk a lemezek véletlenszerű elhelyezése az egységnégyzeten úgy, hogy a lemezek között ne legyen átfedés és mindegyiket teljes egészében tartalmazza a négyzet. A véletlen mintavételezéshez a Metropolis algoritmust alkalmazzuk. Legyen az állapottér az n darab ɛ sugarú lemez, egységnégyzeten történő lehetséges elhelyezéseinek halmaza, melyet S(n, ɛ)-nal jelölünk. Így tehát a Markov lánc állapottere folytonos. Indítsuk az algoritmust egy tetszőleges x S(n, ɛ) állapotból. 1 n valószínűséggel kiválasztjuk az egyik lemez középpontját, és megpróbáljuk elmozdítani a középponttól legfeljebb h távolságra lévő pontba. Ha az így kapott x egy, a feltételeknek megfelelő elhe- 19

lyezését adja a lemezeknek, tehát x S(n, ɛ), akkor elfogadjuk az új állapotot, különben nem változtatunk. Ez a probléma eredetileg a fizikából származik, ahol a fázisátalakulások kapcsán merült fel. A különböző anyagok halmazállapot változásait sokan vizsgálják, ezeket a következő ábrához hasonló hőmérséklet-nyomás diagramon szokás ábrázolni. 3.6. ábra. Fázisdiagram Az ilyen ábrákról leolvasható, hogy milyen hőmérséklet és nyomás mellett változik meg az anyag halmazállapota, például szilárdról folyékonyra. Látható, hogy van egy pont, ahol a három halmazállapot találkozik (T tr ). Ebből a pontból indul tovább a szilárd folyékony, és a folyékony gáz átmenet, és míg az utóbbi egy kritikus pontban (T crit ) véget ér, a szilárd folyékony átmenet egyenese látszólag a végtelenbe tart. Tehát az átalakulás bármikor előfordul, ha kellően magas a hőmérséklet és a nyomás is. A fázisátalakulásra vonatkozóan vonhatunk le következtetéseket a lemezek elhelyezkedéséből. Ha a lemezek sűrűsége alacsony az egységnégyzeten, akkor könnyen kiválaszthatjuk az egyik lemez középpontját, és tolhatjuk el legfeljebb h távolságra, úgy, hogy az új elrendezés is átfedésmentes legyen. Ha egy anyagban az atomok úgy helyezkednek el, mint a lemezek a 4.4. ábrán az η = 0.48 esetben, akkor az folyékony halmazállapotú anyagnak felelne meg. Ha a lemezek sűrűsége magas (körülbelül 0.72), akkor a lemezek már nem mozdíthatóak el könnyen, ez fázisátalakulást jelezhet. 0.71-nél alacsonyabb sűrűség esetén a lemezek elhelyezkedése véletlenszerű, szabálytalan, míg 0.71-nél magasabb sűrűségnél a lemezek egyre inkább rácsos alakzatba rendeződnek. Azt, hogy egy elrendezés mennyire szabályos, különböző függvényekkel szokták számszerűsíteni. Például, legyen 1 n 1 f(x) = e 6iθ jk n n j, j=1 ahol n a lemezek száma. Itt a belső szummában a k végigmegy a j-edik lemez minden szomszédján, és a θ jk jelöli a j-edik és k-adik lemez által bezárt szöget. Az f(x) érték akkor 20 k

kicsi, ha a lemezek szabályosan helyezkednek el, ekkor a j-edik lemez körül a szomszédai hatszög alakzatba rendeződnek. 3.7. ábra. A lemezek egy ritkább, és egy sűrűbb elrendezése A Metropolis algoritmus működésének elvéről már volt szó a fejezet elején, most ennek a matematikai megfogalmazása következik. Legyen az állapottér az S R 2n korlátos, nyílt halmaz. Legyen ezen a halmazon a p(x) = z 1 p(x) egy sűrűségfüggvény, ahol p > 0, és z = S p(x)dx a normalizáló állandó. Ekkor a feladat adott p mellett mintákat venni S-ből a p eloszlása szerint. Ahogy azt korábban már láttuk, a z normalizáló állandó általában ismeretlen, és a meghatározása nem lehetséges. Induljunk ki az x S elrendezésből (x R 2n, egy 2n hosszúságú vektor, amely a lemezek középpontjainak koordinátáit tartalmazza), és módosítsuk, az alábbi lépések szerint. Válasszunk ki x-ből egy (x 2k 1, x 2k ) pontpárt, amely az egyik lemez középpontja, és mozdítsuk el legfeljebb h távolsággal, ahol h egy kicsi nemnegatív szám. Tegyük fel, hogy a h sugarú körből egyenletes eloszlás szerint választjuk ki a pontot, ahová elmozdítjuk a lemez középpontját. Az így kapott y elrendezés (y R 2n ), legfeljebb két koordinátájában tér el az x-től. Ha p(y) p(x), akkor válasszuk y-t. Ha p(y) < p(x), akkor válasszuk y-t p(y) p(x) valószínűséggel, különben maradjunk x-ben. Mivel ebben a példában egyenletes eloszlás szerint választunk, p(x) = 1, ezért ez az eset sosem áll fent. Tehát, ha y a lemezeknek egy feltételek megfelelő elrendezése, akkor elfogadjuk. Ha a lemezek elhelyezkedése sűrű, akkor az algoritmus sebessége nagyon belassul. Ennek a szemléltetésére szolgál a következő ábra. A képeken a két sötétszürke lemez ugyanaz. Látható, hogy több, mint 25 milliárd lépés után is csak alig mozdult el. 21

3.8. ábra. Sűrűn elhelyezkedő lemezek a kezdeti állapotban, és több mint 25 milliárd iteráció után 3.3. Hepatitis B tanulmány Ebben a részben egy olyan modellt fogok bemutatni, amely az előzőektől eltérően a Gibbs mintavételező algoritmust alkalmazza. A hepatitis B a világ egyik legelterjedtebb fertőző megbetegedése. Nyugat-Afrikában a népesség jelentős része már gyermekkorában megbetegszik a hepatitis B vírus által. Sőt, a fertőzöttek 20%-a különösen azok, akik életük nagyon korai szakaszában fertőzödnek meg a vírus hordozóivá válnak. Ezen hordozóknál a májrák és egyéb krónikus máj megbetegedések kialakulásának kockázata fokozott. Gambiában egy nemzetközi hepatitis B védőoltás program indult, azzal a céllal, hogy csökkentsék a vírus hordozóinak számát. Az eredményesség azon múlik, hogy az oltás mennyire tartósan nyújt védelmet a vírus ellen. Ennek tanulmányozására olyan csecsemők (szám szerint 106) vérmintáit vizsgálták, akik megkapták a védőoltást. Az utolsó oltás időpontjában, és utána többször vettek vérmintát a csecsemőktől, és a vérben lévő antitestnek a szintjét mérték. Ennek a tanulmánynak a célja a vér antitest szintjének modellezése volt. Az adatok elemzése után arra a következtetésre jutottak, hogy minden csecsemőre, az antitest szintje fordítottan arányos az utolsó oltás óta eltelt idővel. Az arány mértéke csecsemőnként változó lehet. Ez azzal ekvivalens, hogy az antitest szintjének logaritmusa (y) és az idő logaritmusa (log t) között lineáris kapcsolat van. Ezért minden csecsemő mérési eredményeire egy-egy egyenest illesztettek különböző paraméterekkel. Így az i-edik csecsemő utolsó oltása után vett j-edik mérésnek a várható értéke E[y ij ] = α i + β i (log t ij log 730), ahol a t ij az i-edik csecsemő oltása és j-edik mérése között eltelt időt jelenti. A log t standardizálása log 730 körül a numerikus stabilitás miatt volt szükséges. 22

A modell felépítése három lépésben történt. Elsőként a mennyiségeket, paramétereket és azok közötti minőségi kapcsolatokat határozták meg, majd a valószínűségi összefüggéseket, végül a paraméterek a priori eloszlását. Az adatok struktúráját illetően a következő feltételezésekkel élünk. Legyenek az y ij értékek egymástól függetlenek µ ij várható értékkel, és σ mintavételi hibával. Minden i esetén, a várható értékek egy növekedési görbén helyezkednek el, tehát a µ ij az időnek egy függvénye az α i, β i paraméterekkel. Az α i értékeket egymástól függetlenül választjuk egy α 0, σ α paraméterű eloszlásból. Hasonlóan, a β i paramétereket a β 0, σ β paraméterű eloszlásból választjuk. 3.9. ábra. Összefüggések a modell paraméterei között Ezeket az összefüggéseket ábrázolja a fenti irányított, aciklikus gráf. A gráf csúcsaiban vannak a modell paraméterei, és a csúcsok között lévő irányított élek jelzik az összefüggéseket. Két különböző függést különböztetünk meg. A µ ij az α i, β i és t ij egy függvénye, ezt jelöljük szaggatott nyíllal, míg ezzel szemben a többi nyíl valószínűségi függőségre utal. A külső téglalap jelöli a vizsgált csecsemőt, a belső pedig a tőle vett vérminta sorszámát, tehát hogy az oltás óta hanyadjára vettek tőle mintát. A mennyiségeket is három különböző csoportba sorolhatjuk. A t ij mennyiséget, azaz, hogy hányszor és mikor veszünk vérmintát egy csecsemőtől, fixnek vesszük. Ezt jelöli a dupla négyzet. Az y ij, azaz a csecsemők vérmintái megfigyelt mennyiségek, ezt jelöli a szimpla négyzet. Az összes többi mennyiség ismeretlen, ezeket kör jelöli. Az irányított gráf azt a feltételezést ábrázolja, hogy ha bármelyik csúcs szüleinek értéke 23

ismert, akkor semelyik másik csúcs nem nyújt plusz információt a csúccsal kapcsolatban, kivéve annak a közvetlen leszármazottai. Ezzel felírhatjuk a modell paramétereinek együttes eloszlását, P (V ) = v V P (v v szülei), ahol V -vel jelöljük a gráf csúcsainak halmazát. A következő feltételezésekkel élünk a modell paramétereinek eloszlásait illetően. Feltesszük, hogy a csecsemők vérmintái (y ij ) normális eloszlásúak, µ ij várható értékkel és σ 2 varianciával. A várható értékre teljesül a korábban tárgyalt lineáris kapcsolat, azaz µ ij = α i + β i (log t ij log 730), melynek α i, β i paramatéreit normális eloszlásúnak feltételezzük (α 0, σα), 2 illetve (β 0, σβ 2 ) várható értékekkel és varianciákkal. A teljes valószínűségi modell felépítéséhez szükség van még az a priori eloszlásokra, azaz a σ 2, α 0, σα, 2 β 0 és σβ 2 paraméterek eloszlásaira. A gráfban ezek azok a csúcsok, amelyeknek nincsenek szülei. Ebben az elemzésben ezen eloszlások megválasztása a következőképpen történt, α 0, β 0 N(0, 10000), σ 2, σα 2, σ 2 β Gamma(0.01, 0.01). Így minden szükséges paraméter ismert a Gibbs mintavételező algoritmus alkalmazásához. A cél a modell paramétereinek (α i, β i, α 0, β 0, σ 2, σα 2, σ 2 β ) meghatározása a következő módon. Az eljárással mintákat veszünk a gráf ismeretlen értékeinek teljes feltételes eloszlásából. A teljes feltételes eloszlás alatt azt értjük, hogy nézzük a gráf ismeretlen csúcsainak feltételes eloszlását egyesével az összes többi csúcs ismerete mellett. Tehát, ha a csúcsok halmazát V -vel jelöljük, akkor jelölje V v azt a részhalmazát V -nek, amely a v csúcsot nem tartalmazza. Ekkor P (v V v ) = P (v v szülei) w W P (w w szülei) K, ahol W jelöli v közvetlen leszármazottainak halmazát és K konstans. Tehát a feltételes eloszlás minden csúcs esetén csak annak szüleitől, közvetlen leszármazottaitól és ezeknek a leszármazottaknak a többi szülőjétől függ. Így a teljes feltételes eloszlás minden v-re egy a priori komponensből (P (v v szülei)) és egy likelihood komponensből áll. Példaként tekintsük az α i paraméter teljes feltételes eloszlását. Az a priori eloszlása, azaz α i eloszlása a szülei, α 0 és σ 2 α mellett ismert, feltettük korábban, hogy normális eloszlású α 0 várható értékkel és σ 2 α szórásnégyzettel. A másik komponens az α i leszármazottainak (y ij -k, összesen n i darab) eloszlása, a szülei ismeretének feltétele mellett (α i, β i ). Ezek is normális eloszlásúak, és egymástól függetlenek. Az y ij várható értéke µ ij, szórásnégyzete 24

pedig σ 2. Így az α i teljes feltételes eloszlása n i + 1 normális eloszlás sűrűségfüggvényének szorzata, azaz 1 P (α i V αi ) = exp { (α i α 0 ) 2 } 1 σ α 2π σ n i exp { [y ij α i β i (log t ij log 730)] 2 } 2π 2σ 2, 2σ 2 α ahol n i az i-edik csecsemőre vonatkozó megfigyelések a száma. A műveletek elvégzése után látható, hogy a P (α i V αi ) egy normális eloszlás. A teljes feltételes eloszlás ugyanígy végigszámolható a többi paraméterrel is, így megkapva, hogy a β i, α 0 és β 0 paraméterek teljes feltételes eloszlása normális, míg a σα 2, σ 2 β és σ 2 paramétereké gamma eloszlású. Így a Gibbs algoritmussal becslést kapunk a paraméterek a posteriori eloszlására, például azt kapjuk, hogy a β 0 eloszlása 1 körül mozog. A következő ábra a β 0 értékeinek alakulását mutatja 3 különböző futás során, ahol az x tengely az iterációk számát jelöli. Látható, hogy mindhárom esetben 1 körül stabilizálódik a paraméter értéke. j=1 3.10. ábra. A β 0 értékének változása az algoritmus három különböző futása során Ahhoz, hogy tesztelni tudjuk, hogy mennyire jó a modell illeszkedése, kiszámoljuk az r ij reziduálist minden iteráció során, legyen r ij = y ij µ ij. σ Azt feltételezzük, hogy a modell esetén a reziduálisok értékének eloszlása normális, 0 várható értékkel és 1 szórásnégyzettel. A reziduálisok tapasztalati negyedik momentumával ) megállapítható, hogy mennyire tér el az eloszlása a feltételezett normális el- ( 1 288 ij r4 ij oszlástól, ugyanis ha valóban normális, akkor a negyedik momentum értéke 3-hoz közeli. 25

Ebben a modellben a negyedik momentum várható értéke 4.9, az értékek 95%-a 3.2 és 7.2 közé esik, tehát jelentősen eltér 3-tól. Ez azt jelzi, hogy az r ij értékek eloszlása nem normális. A modell tovább finomítható, ha a kiugró értékeket is figyelembe vesszük az elemzés során. Ennek egy megközelítése lehet normális eloszlás helyett vastagfarkú (például t-eloszlás) alkalmazása az α i, β i paraméterekre és az y ij µ ij hibára. 26

4. fejezet MCMCpack Ebben a fejezetben egy rövid elemzés bemutatása következik, amely az R programmal készült. A felhasznált függvényeket az MCMCpack nevű csomag tartalmazza. Az elemzés segítségéül szolgált David E. Giles írása ([10]). Az adatok a http://kaggle.com oldalról származnak. Az elemzett adathalmazban egy cég dolgozóiról vannak információk. A cél az volt, hogy egy dolgozó elégedettségét magyarázzuk a következő változókkal: az utolsó értékeléssel, azaz hogy a legutóbbi felméréskor mennyire volt elégedett, a befejezett projektjeinek a számával, az egy hónapban átlagosan ledolgozott munkaóráival, a cégnél eltöltött éveivel, azzal, hogy volt-e balesete a munkahelyen (0=nem, 1=igen), azzal, hogy léptették-e elő az elmúlt 5 évben (0=nem, 1=igen), azzal, hogy melyik részlegen dolgozik, és a fizetésével (magas, közepes vagy alacsony). A dolgozó elégedettségét egy 0 és 1 közötti szám jelöli. Minél közelebb van a szám az 1-hez, annál elégedettebb a dolgozó a munkahelyével. A cél megvalósításához bayes-i regressziót (MCMCregress) alkalmazunk, amely egy lineáris regressziós modell a posteriori eloszlásából vesz mintákat a Gibbs algoritmussal. A modell tehát y i = x i β + ɛ i 27

alakú, ahol feltesszük az ɛ i hibatagokról, hogy normális eloszlásúak, és ɛ i N(0, σ 2 ), ( σ 2 c0 Gamma 2, d ) 0. 2 Továbbá feltesszük, hogy a β i együtthatók független, normális eloszlásúak, β i N(b 0, B 1 0 ). Közönséges lineáris regresszióval megvizsgálva, azt az eredményt kapjuk, hogy az átlagos havi munkaórák száma és az, hogy volt-e előléptetése a dolgozónak az elmúlt 5 évben, nem szignifikánsak a modellben. Így ezeket a változókat a bayes-i regresszióban nem használjuk fel. A regresszió az alábbi utasítással adható meg. 4.1. ábra. Az MCMC regresszió megadása A modell megadása a közönséges lineáris regresszióéhoz nagyon hasonló, először megadjuk, hogy melyik változót szeretnénk magyarázni, majd felsoroljuk a magyarázó változókat. Ebben a példában a b 0 és B 0 paraméterek 0, illetve 0.01 értéket kaptak, illetve a marginális valószínűség kiszámításának módjául a Laplace közelítést választjuk, ez későbbi elemzés szempontjából szükséges. Ezeken a paramétereken felül meg lehet még például adni a c 0, d 0 értékeket, a β vektor kezdeti értékét, vagy az iterációk számát is, de ez a modell ezeknek az alapértelmezett értékeit használja. A summary(breg1) utasítással meghívva a modellt megkapjuk minden változóra a tapasztalati várható értékeket, a szórásokat, és az eloszlásaiknak a kvantiliseit. A plot(breg1) utasítás ábrázolja az eredményeket, a változók értékeinek változását az iterációk során, és az eloszlásukat. Ennek egy részlete látható az alábbi ábrán. 28

4.2. ábra. A változók értékeinek változása az iterációk során, és az eloszlásuk A lineáris regressziótól eltérően tehát, nem egy-egy értéket kapunk a β i együtthatókra, hanem azoknak az a posteriori eloszlását. Az alábbi ábrán látható utasítások további három regressziós modellt adnak meg, ugyanezekkel a b 0, B 0 paraméterekkel, de különböző magyarázó változókkal. 4.3. ábra. További három modell, különböző magyarázó változókkal Megmutatható, hogy a négy modell közül melyik magyarázza leginkább az adatainkat. Ehhez a modellek páronként vett Bayes faktorait kell kiszámolni, melyet a BayesFactor( breg1,breg2,breg3,breg4) utasítással tehetünk meg. A print(bf) utasítással az 4.4. ábrán látható két mátrixot kapjuk. Az első a páronként vett Bayes faktorok értékeit tartalmazza, a második pedig azoknak a logaritmusát. Az elsőt értelmezés során előnyösebb alkalmazni, míg az utóbbi a vizualizációt teheti könnyebbé. 29

4.4. ábra. A modellek páronként számolt Bayes faktorai, és azok logaritmusai A Bayes faktor egy statisztikai index, amely számszerűsíti, hogy két hipotézis közül melyik mellett nagyobb a megfigyelt adatok valószínűsége. Formálisan felírhatjuk a következőképpen BF = p(d H 1) p(d H 0 ), ahol D a megfigyelt adat, H 0 a nullhipotézis, és H 1 az ellenhipotézis. Ha a Bayes faktor 1, az azt jelenti, hogy a két hipotézis mellett ugyanolyan valószínűségű a megfigyelt adat. Ez az oka annak, hogy a mátrix főátlójában csupa egyes van. Ha a Bayes faktor nagyobb mint 1, akkor az ellenhipotézis mellett magasabb az adatok valószínűsége, ha kisebb mint 1, akkor pedig a nullhipotézis mellett. Megfigyelhető, hogy ebben a példában az első modell nagyon dominál. Például az első sor második eleméről leolvasható, hogy az első modell mellett sokkal magasabb (3.12 10 74 - szer) a megfigyelt adatok valószínűsége, mint a második modellnél. A harmadik és negyedik modellel összehasonlítva még magasabb ez az érték. Végül a PostProbMod(BF) utasítás megadja a modelleknek az a posteriori valószínűségét. A valószínűségek összege 1, de a példában az első modell annyira dominál, hogy a második, harmadik és negyedik modellekre ez az érték nagyon közel van a nullához. 4.5. ábra. A modellek a posteriori valószínűségei 30

Összefoglalás Szakdolgozatom a szükséges elméleti háttér ismertetése után, a két leggyakrabban alkalmazott Markov Lánc Monte Carlo módszerrel foglalkozik. Ezek, a Metropolis-Hastings, és a Gibbs mintavételező algoritmusok. A második fejezetben láthattuk, hogy az MCMC eljárások közül, a Metropolis-Hastings a legáltalánosabb, és a többi, köztük a Gibbs algoritmus is, ennek a speciális esetei. A harmadik fejezet három alkalmazásukat mutatja be. Elsőként egy kriptográfiai példa ismerteti, hogyan lehet a Metropolis algoritmus segítségével egy kódolt szöveget visszafejteni. A bemutatott példát a Stanford Egyetem Statisztika Tanszékének munkatársai oldották meg. A következő példa n darab lemez egységnégyzeten történő véletlen elhelyezését modellezi, szintén a Metropolis algoritmussal. Ennek a problémának a fizikában gyakran vizsgált, fázisátalakulásokkal van kapcsolata. Az utolsó példa egy gambiai Hepatitis B tanulmányt mutat be, amely az előzőektől eltérően, a Gibbs algoritmus alkalmazására nyújt szemléltetést. 31

Függelék Ez a szakasz tartalmazza a 3.1.1 alfejezetben bemutatott program forráskódját. #A referenciaszöveg beolvasása reference=readlines("egricsillagok.txt") reference=toupper(reference) #Az átmenetmátrix konstruálása betuk <- c("a","á","b","c","d","e","é", "f", "g", "h", "i", "í", "j", "k", "l","m", "n","o", "ó", "ö", "ő", "p", "q", "r", "s", "t", "u", "ú", "ü", "ű", "v", "w", "x", "y", "z") trans.mat=matrix(0,36,36) rownames(trans.mat)=colnames(trans.mat)=c(toupper(betuk),"") lastletter="" for (ln in 1:length(reference)) { if (ln %% 100 ==0) {cat("line",ln,"\n")} for (pos in 1:nchar(reference[ln])) { curletter=substring(reference[ln],pos,pos) if (curletter %in% toupper(betuk)) { trans.mat[rownames(trans.mat)==lastletter, colnames(trans.mat)==curletter]= trans.mat[rownames(trans.mat)==lastletter, colnames(trans.mat)==curletter]+1 lastletter=curletter } else { if (lastletter!="") { trans.mat[rownames(trans.mat)==lastletter,36]= trans.mat[rownames(trans.mat)==lastletter,36]+1 lastletter="" 32

} } } curletter="" if (lastletter!="") { trans.mat[rownames(trans.mat)==lastletter,36]= trans.mat[rownames(trans.mat)==lastletter,36]+1 } lastletter="" } trans.prob.mat=sweep(trans.mat+1,1,rowsums(trans.mat+1),fun="/") #Az átmenetmátrix ábrázolása ggplot(melt(trans.prob.mat),aes(var2,var1))+geom_tile(aes(fill=value))+ scale_fill_gradient(low="white",high="black",limits=c(0,1))+ labs(x="a második betű valószínűsége",y="az adott betű mellett", fill="valószínűség")+ scale_y_discrete(limits = rev(levels(melt(trans.prob.mat)$var1)))+ coord_equal() #Felhasznált függvények létrehozása decode <- function(mapping,coded) { coded=toupper(coded) decoded=coded for (i in 1:nchar(coded)) { if (substring(coded,i,i) %in% toupper(betuk)) { substring(decoded,i,i)=toupper(betuk[mapping==substring(coded,i,i)]) } } decoded } log.prob <- function(mapping,decoded) { logprob=0 lastletter="" for (i in 1:nchar(decoded)) { 33

curletter=substring(decoded,i,i) if (curletter %in% toupper(betuk)) { logprob=logprob+log(trans.prob.mat[rownames(trans.mat)==lastletter, colnames(trans.mat)==curletter]) lastletter=curletter } else { if (lastletter!="") { logprob=logprob+log(trans.prob.mat[rownames(trans.mat)==lastletter,36]) lastletter="" } } } if (lastletter!="") { logprob=logprob+log(trans.prob.mat[rownames(trans.mat)==lastletter,36]) lastletter="" } logprob } #Az eredeti szöveg beolvasása és kódolása correcttxt="lenni VAGY NEM LENNI AZ ITT A KÉRDÉS AKKOR NEMESB E A LÉLEK HA TŰRI BALSORSA MINDEN NYŰGÉT S NYILAIT VAGY HA KISZÁLL TENGER FÁJDALMA ELLEN S FEGYVERT RAGADVA VÉGET VET NEKI" coded=decode(sample(toupper(betuk)),correcttxt) #A kód visszafejtése, egy random dekódolásból kiindulva mapping=sample(toupper(betuk)) i=1 iters=2000 cur.decode=decode(mapping,coded) cur.loglike=log.prob(mapping,cur.decode) max.loglike=cur.loglike max.decode=cur.decode 34

while (i<=iters) { proposal=sample(1:35,2) # select 2 letters to switch prop.mapping=mapping prop.mapping[proposal[1]]=mapping[proposal[2]] prop.mapping[proposal[2]]=mapping[proposal[1]] prop.decode=decode(prop.mapping,coded) prop.loglike=log.prob(prop.mapping,prop.decode) if (runif(1)<exp(prop.loglike-cur.loglike)) { mapping=prop.mapping cur.decode=prop.decode cur.loglike=prop.loglike if (cur.loglike>max.loglike) { max.loglike=cur.loglike max.decode=cur.decode } cat(i,cur.decode,"\n") i=i+1 } } 35