Tutkimustiedonhallinnan peruskurssi

Samankaltaiset tiedostot
Satunnaislukujen generointi

Tutkimustiedonhallinnan peruskurssi

Parametrin estimointi ja bootstrap-otanta

The Metropolis-Hastings Algorithm

Harjoitus 2: Matlab - Statistical Toolbox

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Tilastollisia peruskäsitteitä ja Monte Carlo

Generointi yksinkertaisista diskreeteistä jakaumista

Satunnaismuuttujien muunnokset ja niiden jakaumat

Sovellettu todennäköisyyslaskenta B

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Sovellettu todennäköisyyslaskenta B

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

Johdatus todennäköisyyslaskentaan Satunnaismuuttujien muunnokset ja niiden jakaumat. TKK (c) Ilkka Mellin (2004) 1

Tutkimustiedonhallinnan peruskurssi

Osa 2: Otokset, otosjakaumat ja estimointi

Todennäköisyyslaskun kertaus. Vilkkumaa / Kuusinen 1

Todennäköisyyslaskun kertaus. Heliövaara 1

Lisää Diskreettejä jakaumia Lisää Jatkuvia jakaumia Normaalijakaumasta johdettuja jakaumia

Ilkka Mellin Tilastolliset menetelmät Osa 2: Otokset, otosjakaumat ja estimointi Estimointi

Johdatus tilastotieteeseen Estimointi. TKK (c) Ilkka Mellin (2005) 1

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

2. Jatkoa HT 4.5:teen ja edelliseen tehtavään: Määrää X:n kertymäfunktio F (x) ja laske sen avulla todennäköisyydet

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Sovellettu todennäköisyyslaskenta B

Tehtäväsarja I Tehtävät 1-5 perustuvat monisteen kappaleisiin ja tehtävä 6 kappaleeseen 2.8.

Otosavaruus ja todennäköisyys Otosavaruus Ë on joukko, jonka alkiot ovat kokeen tulokset Tapahtuma on otosavaruuden osajoukko

Teoria. Satunnaismuuttujan arvonta annetusta jakaumasta

Ilkka Mellin Todennäköisyyslaskenta. Osa 2: Satunnaismuuttujat ja todennäköisyysjakaumat. Momenttiemäfunktio ja karakteristinen funktio

(b) Onko hyvä idea laske pinta-alan odotusarvo lähetmällä oletuksesta, että keppi katkeaa katkaisukohdan odotusarvon kohdalla?

7.4 Sormenjälkitekniikka

HY, MTO / Matemaattisten tieteiden kandiohjelma Todennäköisyyslaskenta IIa, syksy 2018 Harjoitus 3 Ratkaisuehdotuksia.

Todennäköisyyslaskenta IIa, syys lokakuu 2019 / Hytönen 3. laskuharjoitus, ratkaisuehdotukset

Estimointi. Estimointi. Estimointi: Mitä opimme? 2/4. Estimointi: Mitä opimme? 1/4. Estimointi: Mitä opimme? 3/4. Estimointi: Mitä opimme?

Todennäköisyysjakaumia

Tilastomatematiikka Kevät 2008

Käytetään satunnaismuuttujaa samoin kuin tilastotieteen puolella:

Ilkka Mellin Todennäköisyyslaskenta. Osa 2: Satunnaismuuttujat ja todennäköisyysjakaumat. Kertymäfunktio. TKK (c) Ilkka Mellin (2007) 1

Johdatus todennäköisyyslaskentaan Momenttiemäfunktio ja karakteristinen funktio. TKK (c) Ilkka Mellin (2005) 1

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1

Sovellettu todennäköisyyslaskenta B

Tilastotieteen kertaus. Vilkkumaa / Kuusinen 1

Gripenberg. MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi Tentti ja välikoeuusinta

Miten voidaan arvioida virheellisten komponenttien osuutta tuotannossa? Miten voidaan arvioida valmistajan kynttilöiden keskimääräistä palamisaikaa?

H0: otos peräisin normaalijakaumasta H0: otos peräisin tasajakaumasta

Algoritmit 2. Luento 13 Ti Timo Männikkö

Väliestimointi (jatkoa) Heliövaara 1

30A02000 Tilastotieteen perusteet

1. Kuusisivuista noppaa heitetään, kunnes saadaan silmäluku 5 tai 6. Olkoon X niiden heittojen lukumäärä, joilla tuli 1, 2, 3 tai 4.

MAT Todennäköisyyslaskenta Tentti / Kimmo Vattulainen

4. laskuharjoituskierros, vko 7, ratkaisut

3. laskuharjoituskierros, vko 6, ratkaisut

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Harjoitus 7: NCSS - Tilastollinen analyysi

Jatkuvat satunnaismuuttujat

2 exp( 2u), kun u > 0 f U (u) = v = 3 + u 3v + uv = u. f V (v) dv = f U (u) du du f V (v) = f U (u) dv = f U (h(v)) h (v) = f U 1 v (1 v) 2

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

D ( ) E( ) E( ) 2.917

MS-A0503 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Todennäköisyyden ominaisuuksia

Sovellettu todennäköisyyslaskenta B

Tilastollisen analyysin perusteet Luento 6: Korrelaatio ja riippuvuus tilastotieteessä

Kertausluento. Tilastollinen päättely II - 2. kurssikoe

Sovellettu todennäköisyyslaskenta B

0 kun x < 0, 1/3 kun 0 x < 1/4, 7/11 kun 1/4 x < 6/7, 1 kun x 1, 1 kun x 6/7,

ABHELSINKI UNIVERSITY OF TECHNOLOGY

riippumattomia ja noudattavat samaa jakaumaa.

Algoritmit 1. Demot Timo Männikkö

Johdatus todennäköisyyslaskentaan Kertymäfunktio. TKK (c) Ilkka Mellin (2005) 1

Shorin algoritmin matematiikkaa Edvard Fagerholm

Normaalijakaumasta johdettuja jakaumia

MTTTA1 Tilastomenetelmien perusteet 5 op Luento Kokonaisuudet johon opintojakso kuuluu

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

Johdatus tilastotieteeseen Testit laatueroasteikollisille muuttujille. TKK (c) Ilkka Mellin (2004) 1

tilastotieteen kertaus

Tilastotieteen kertaus. Kuusinen/Heliövaara 1

MS-A0502 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Satunnaismuuttujan odotusarvo ja laskusäännöt

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

Estimointi. Vilkkumaa / Kuusinen 1

5. laskuharjoituskierros, vko 8, ratkaisut

Poisson-prosessien ominaisuuksia ja esimerkkilaskuja

MTTTA1 Tilastomenetelmien perusteet 5 op Luento , osa 1. 1 Kokonaisuudet johon opintojakso kuuluu

Mat Tilastollisen analyysin perusteet, kevät 2007

/1. MTTTP5, luento Normaalijakauma (jatkuu) Binomijakaumaa voidaan approksimoida normaalijakaumalla

Esimerkki: Tietoliikennekytkin

Signaalien generointi

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Jatkuvia jakaumia

D ( ) Var( ) ( ) E( ) [E( )]

6. laskuharjoitusten vastaukset (viikot 10 11)

Satunnaismuuttujat ja todennäköisyysjakaumat Kertymäfunktio

Sovellettu todennäköisyyslaskenta B

Ilkka Mellin (2008) 1/5

Lisätehtäviä ratkaisuineen luentomonisteen lukuihin 2-4 liittyen

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Ilkka Mellin Todennäköisyyslaskenta. Osa 3: Todennäköisyysjakaumia. Diskreettejä jakaumia. TKK (c) Ilkka Mellin (2007) 1

Generoivat funktiot, Poisson- ja eksponenttijakaumat

Johdatus todennäköisyyslaskentaan Jatkuvia jakaumia. TKK (c) Ilkka Mellin (2005) 1

Transkriptio:

Tutkimustiedonhallinnan peruskurssi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo hannu.toivonen, marko.salmenkivi, inkeri.verkamo@cs.helsinki.fi Helsingin yliopisto Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi 1/275 Kevät 2004

Satunnaislukujen generointi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 222/275 Kevät 2004

Lähteet Knuth, D., The Art of Computer Programming, Volume 2: Seminumerical Algorithms, luku 3 Numerical Recipes in C, luku 7 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 223/275 Kevät 2004

Johdanto edellä olemme tutustuneet menetelmiin, jotka perustuvat satunnaislukujen generointiin satunnaistustestaus: muodostetaan (kahden) otoksen permutaatioita bootstrap: generoidaan pseudo-otoksia valitsemalla satunnaisesti alkioita otoksesta takaisinpanolla Monte Carlo -testi usein: generoidaan arvoja tunnetusta populaatiojakaumasta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 224/275 Kevät 2004

Johdanto (2) satunnaistus ja bootstrap edellyttävät satunnaislukujen generoimista tasaisesta jakaumasta tasaisesti jakautuneiden satunnaislukujen generointiin ohjelmointikielissä kirjastofunktiot Monte Carlo -testauksen kohdalla populaatiojakauma voi luonnollisesti olla mikä tahansa jakauma kuinka generoidaan satunnaislukuja muista kuin tasaisista jakaumista? vaikka populaatiojakauma tunnettaisiinkin, ei välttämättä ole aivan suoraviivaista generoida siitä otoksia Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 225/275 Kevät 2004

Diskreettejä jakaumia satunnaismuuttuja X noudattaa aina jotakin todennäköisyysjakaumaa jos muuttujan arvot ovat diskreettejä jakauma on diskreetti diskreetin todennäköisyysjakauman määrittää pistetodennäköisyysfunktio p(x), jolle i p(i) = 1 keskeisiä diskreettejä jakaumia: diskreetti tasainen jakauma binomijakauma Poisson-jakauma geometrinen jakauma Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 226/275 Kevät 2004

Keskeisiä jatkuvia jakaumia muuttujan arvot jatkuvia jakauma jatkuva jatkuvan jakauman määrittää tiheysfunktio f(x = x), jolle f(x)dx = 1 tiheysfunktion integraalifunktiota F (x) = P (X x) nimitetään jakaumafunktioksi (kertymäfunktioksi) keskeisiä jatkuvia jakaumia tasainen jakauma, X T as(a, b) f(x = x) = 1 b a, a < x < b normaalijakauma eksponenttijakauma gammajakauma Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 227/275 Kevät 2004

Satunnaislukujen generointi If the numbers are not random, they are at least higgledy-piggledy ( sikin sokin ) GEORGE MARSAGLIA (1984) tietokoneen generoimat satunnaisluvut ovat pseudo-satunnaislukuja deterministisesti määräytyneitä, ei oikeasti satunnaisia mikä on riittävän satunnaista yhdelle sovellukselle ei välttämättä ole sitä toiselle olemassa tilastollisia testejä, joilla testataan satunnaisuutta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 228/275 Kevät 2004

Linear congruential method m modulus a kertoja c lisäys X 0 alkuarvo satunnaislukusekvenssi saadaan rekursioyhtälöstä X n+1 = (ax n + c) mod m, n 0 yleisin tasaisesti jakautuneiden satunnaislukujen generoimismenetelmä parametrien m, a, c valinta on erittäin keskeinen kysymys toimivuuden kannalta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 229/275 Kevät 2004

Em. menetelmän ominaisuuksia menetelmä on syklinen sykliä nimitetään periodiksi sama siemenluku periodi alkaa samasta kohdasta sama sarja satunnaislukuja käytännössä siemenluvun voi ottaa esim. systeemin kellonajasta testausvaiheessa on hyvä että siemenluvun voi asettaa käsin Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 230/275 Kevät 2004

Kertymäfunktion käänteisfunktio todennäköisyysjakauma voidaan siis ilmaista sen kertymäfunktion F (x) = P (X x) avulla F (x) on aina monotoninen (kasvava) funktio siis F (x 1 ) F (x 2 ), jos x 1 x 2 F saa arvot välillä [0, 1] kun F (x) on jatkuva ja aidosti kasvava, sillä on käänteisfunktio F 1 (y), 0 < y < 1 y = F (x) jos ja vain jos x = F 1 (y) käänteisfunktiota voidaan käyttää satunnaislukujen generoimiseen kyseisestä jakaumasta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 231/275 Kevät 2004

Transformaatiomenetelmä olkoon f(x) sen jakauman tiheysfunktio, josta halutaan generoida satunnaislukuja, ja F (x) vastaava kertymäfunktio oletetaan että kertymäfunktiolla on käänteisfunktio x = F 1 (y), 0 < y < 1 transformaatiomenetelmä: 1. generoi satunnaisluku y T as(0, 1) 2. x = F 1 (y) on satunnaisluku joka noudattaa haluttua jakaumaa Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 232/275 Kevät 2004

Esimerkki: eksponenttijakauma keskeisin jakauma tasaisen jakauman ja normaalijakauman jälkeen jos tulostimelle saapuu keskimäärin µ tulostuspyyntöä aikayksikköä kohti ja saapumisajat ovat satunnaisia, niiden välit x i noudattavat eksponenttijakaumaa, X i Exp(µ) p(x = x) = µe µx E(X) = 1/µ, var(x) = 1/µ 2 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 233/275 Kevät 2004

exponenttijakauman kertymäfunktio: F (x) = 1 e x/µ, x > 0 F 1 (y) = µ log(1 y) µ log(1 U) Exp(µ) 1 U on tasaisesti jakautunut silloin kun U on x = µ log U on eksponenttijakautunut odotusarvolla µ Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 234/275 Kevät 2004

Hylkäämismenetelmä rejection sampling myös hyväksymis-hylkäämismenetelmä ei edellytä kertymäfunktion eikä sen käänteisfunktion tuntemista on tunnettava apufunktio g(x), joka saa kaikkialla suuremman arvo kuin f(x) josta otoksia halutaan g:n alan oltava äärellinen Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 235/275 Kevät 2004

Algoritmi olkoon g(x) f(x), kaikilla x R olkoon A = g(x)dx ja G(x) vastaava integraalifunktio ( kertymäfunktio ) jolla on käänteisfunktio joka pystytään laskemaan 1. generoi luku y T as(0, A) 2. kandidaatti x saadaan transformaatiomenetelmellä x = G 1 (y) 3. generoi Z T as(0, g(x)) 4. if z < f(x) tulosta x else goto 1 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 236/275 Kevät 2004

Toinen muotoilu menetelmälle oletetaan että (i) h on sellaisen jakauman H tiheysfunktio, josta voidaan generoida arvoja (ii) f(x) c h(x), kaikille x, jollakin vakiolla c Algoritmi 1. generoi kandidaatti z H 2. generoi u T as(0, 1) 3. if u f(z)/(ch(z)) return z; else goto 1 tehokkuus riippuu suhteesta f(z)/ch(z) eli c:stä Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 237/275 Kevät 2004

Hyvin simppeli esimerkki halutaan generoida satunnaislukuja jakaumasta, jonka tiheysfunktio on neljännesympyrän kehä G(x)=cx g(x)=c πr 2 = 4 πr 2 /4 = 1 r = 2/ (π) Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 238/275 Kevät 2004

olkoon apufunktio g(x) = c, c > r G(x) = cx 1. generoidaan satunnaisluku y T as(0, c 2 ) 2. määritetään kandidaatti x = G 1 (y) = y/c 3. generoidaan satunnaisluku u T as(0, g(x) = c) 4. jos f(x) = ( 4 π x2 ) < u palautetaan x muuten palataan kohtaan 1 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 239/275 Kevät 2004

Tosielämässä monista keskeisistä jakaumista voidaan generoida satunnaislukuja hylkäämismenetelmää käyttäen esim. normaali-, gamma-, Poisson-, binomijakaumat keskeinen apufunktio g on Lorentzin jakauma tiheysfunktio; kyseisen jakauman integraalifunktio on tangenttifunktio Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 240/275 Kevät 2004

Arvojen riippumattomuus hylkäämismenetelmässä jokainen kandidaatti generoitiin siten, että peräkkäiset arvot eivät riippuneet toisistaan jos vakio c suuri, vain pieni osa arvauksista osuu oikeaan avaruus on liian harva, arvaukset osuvat liian harvoin hyvin monimutkaisista jakaumista (paljon ulottuvuuksia ja riippuvuuksia niiden välillä) ei riippumattomia arvoja voi generoida tilastollisessa mallintamisessa saatetaan tarvita otoksia hyvin hankalista jakaumista Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 241/275 Kevät 2004

MCMC-menetelmä Markovin ketju Monte Carlo sallitaan, että peräkkäiset arvot ovat toisistaan riippuvia kun on tehty hyvä arvaus, kokeillaan seuraavaksi jotakin lähellä olevaa arvoa joka kerta kun generoidaan arvoa halutusta jakaumasta, otetaan huomioon edellinen arvo, mutta ei muita Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 242/275 Kevät 2004

Markovin ketju Markovin ketju on jono satunnaismuuttujia siten, että jonon seuraava muuttuja riippuu edellisestä (mutta ei muista) P r(x n X 1,..., X n 1 ) = P r(x n X n 1 ) idea: generoidaan ketju, jonka tilojen jakauma on otos halutusta jakaumasta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 243/275 Kevät 2004

Algoritmi (Metropolis-Hastings) valitse alkutila x 0 toista K kertaa (n = 0,..., K 1): generoi kandidaatti x jostakin jakaumasta Q(x n ) todennäköisyydellä α(x n, x ) aseta x n+1 := x muussa tapauksessa aseta x n+1 := x n aseta n := n + 1 tulosta x n yllä Q(x) on x:n ehdotusjakauma q(x, x ) on Q:n tiheysfunktio Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 244/275 Kevät 2004

Käänteisyysehto M-H -algoritmi perustuu käänteisyysehtoon jos kaikille pareille x, y E pätee ketjun tilojen jakauma on f f(x) T (x, y) = f(y) T (y, x) x T(y,x) y T(x,y) kuinka valita siirtymätodennäköisyydet T (x, y)? Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 245/275 Kevät 2004

Milloin pitää hylätä? ilmaistaan käänteisyysehto seuraavasti: f(x) q(x, x ) α(x, x ) = f(x ) q(x, x), α(x, x ) on siis todennäköisyys, että kandidaatti hyväksytään jos f(x) q(x, x ) > f(x ) q(x, x) hyväksytään aina muuten α(x, x ) = f(x ) q(x, x) f(x) q(x, x ). Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 246/275 Kevät 2004

Hyväksymistodennäköisyys M-H -algoritmi edellyttää vain, että f(x ) f(x) pystytään laskemaan ei muita oletuksia jakaumasta käytännön kannalta sopivan ehdotusjakauman Q löytäminen tärkeää Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 247/275 Kevät 2004

Konvergenssi alkutila vaikuttaa tilojen jakaumaan jotta vaikutus eliminoitaisiin tarvitaan lämmittelyjakso, jonka aikana ei vielä kerätä generoituja arvoja mikä on sopiva lämmittelyjakson pituus? vaikea ongelma toinen keskeinen ongelma on, kuinka kauan simulaatiota pitää jatkaa, jotta otos olisi kattava Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 248/275 Kevät 2004

Yhteenveto satunnaislukujen generoiminen halutusta jakaumasta on tarpeen esimerkiksi Monte Carlo -testauksen yhteydessä tietokoneen generoimat satunnaisluvut ovat pseudo-satunnaislukuja tasaisesti jakautuneiden satunnaislukujen avulla voidaan generoida muita jakaumia noudattavia lukuja transformaatiomenetelmä käyttää halutun jakauman kertymäfunktion käänteisfunktiota hylkäämismenetelmässä käytetään apufunktiota josta osataan generoida otoksia ja joka sulkee sisäänsä halutun tiheysfunktion Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Satunnaislukujen generointi 249/275 Kevät 2004

Otokset tietokannoista Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 250/275 Kevät 2004

Lähteet Jeffrey Scott Vitter: Faster Methods for Random Sampling, Communications of ACM 27, 7, 703 718, 1984. Numerical Recipes in C, luku 7.3 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 251/275 Kevät 2004

Luennon runko käydään läpi neljä algoritmia joilla voidaan tehdä otantaa tietokannoista yksinkertaisimmasta tehokkaimpaan kaksi algoritmeista hyödyntää aiemmin käsiteltyjä transformaatio- ja hylkäämismenetelmiä näin saadaan kuvaa näistä menetelmistä myös realistisemmassa ympäristössä kuin viime luennon esimerkeissä Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 252/275 Kevät 2004

Johdanto usein tarpeellinen tehtävä on valita n < N tietuetta satunnaisesti tietokannasta, jossa N tietuetta talletettuna toissijaiseen muistiin hitaalle välineelle kriittinen seikka on kuinka hyvin voidaan välttää turhat luku/kirjoitusoperaaatiot halutaan saada tuloksia, jotka pätevät koko aineistoon, joutumatta käymään läpi koko aineistoa ei samaa tietuetta kahdesti myös tietuekoko voi olla suuri esim. laaduntarkkailu, ostoskorianalyysi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 253/275 Kevät 2004

Perusmenetelmä P 1. do { 2. generoi satunnainen kokonaisluku 1 k N 3. valitse k:s tietue, ellei sitä ole jo valittu 4. } until n tietuetta valittu Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 254/275 Kevät 2004

vaatii O(n) satunnaisluvun generoimista generointiaika O(n), mikäli 3. askelen vaatima tarkistus tapahtuu vakioajassa tämä vaatii tilaa O(N) jos tarkistukseen käytetään binääristä taulukkoa, tai O(n) osoitinta hajauttamalla n (levy)hakua, mahdollisesti useita hakuja samaan levylohkoon tms. Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 255/275 Kevät 2004

Sijaintijärjestys algoritmi valitsee tietueet ottamatta huomioon niiden sijaintijärjestystä tiedostossa esim. 84. tietue voi tulla valituksi ennen 16. tietuetta jos otoksen tietueet halutaan poimia järjestyksessä (esim. yhdellä tietokannan läpikäynnillä), tietuenumerot täytyy lajitella ennen poimintaa lajitteluaika O(n log n), esim. quicksort, heapsort poimintaa ei voida aloittaa, ennen kuin kaikki tietuenumerot on generoitu myöskään tulostusta ei voi tehdä on-line Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 256/275 Kevät 2004

Otanta järjestyksessä generoidaan otokseen tulevien tietueiden numerot suoraan järjestyksessä (on-line) ratkaisuperiaate: kun N tietueesta on valittava n kpl, kunkin yksittäisen tietueen valinnan todennäköisyys on n/n N on vielä käsittelemättömien tietueiden määrä n on otokseen vielä tarvittavien tietueiden määrä jokaisen tietueen kohdalla valinta todennäköisyydellä n/n kun n = 0, algoritmi päättyy Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 257/275 Kevät 2004

Algoritmi S 1. do { 2. generoi satunnaisluku u T as(0, 1) 3. if u n/n valitse seuraava tietue otokseen ja aseta n n 1 4. else ohita seuraava tietue 5. aseta N N 1 6. } while n > 0 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 258/275 Kevät 2004

Algoritmin S analyysia jos jossakin vaiheessa n = N kaikki jäljellä olevat tietueet valitaan otokseen koska jokaisen tietueen kohdalla on tehtävä päätös, otetaanko se mukaan vai ei O(N)-aikavaativuus Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 259/275 Kevät 2004

Etäisyyksien generointi nopeammissa algoritmeissa generoidaan suoraan peräkkäisten mukaan otettavien tietueiden etäisyyksiä: merkitään S(n, N):llä satunnaismuuttujaa, joka kertoo, kuinka monta seuraavaa tietuetta hylätään ratkaisuperiaate: toistetaan seuraavia askelia, kunnes n = 0 1. generoidaan satunnaisluku S(n, N) 2. hylätään seuraavat S(n, N) tietuetta ja valitaan niitä seuraava 3. N N S(n, N) 1, n n 1 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 260/275 Kevät 2004

Satunnaismuuttuja S(n, N) diskreetti satunnaismuuttuja, joka saa arvoja väliltä 0,..., N n merkitään seuraavassa lyhyesti S pistetodennäköisyysfunktio P (S = s) = f(s) ilmaisee, mikä on todennäköisyys, että sivuutetaan täsmälleen s arvoa jakaumafunktio P (S(n, N) s) = s i=0 f(i) = F (s) ilmaisee, mikä on todennäköisyys että sivuutetaan enintään s arvoa Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 261/275 Kevät 2004

f(0) = n/n f(s) = P (sivuutetaan yli s 1 arvoa) P (valitaan s + 1:s arvo sivuutetaan yli s 1 arvoa) = (1 F (s 1)) n/(n s) f:n ja F :n suljetut muodot hankalia laskea f(s) = n(n n)!(n s 1)! N!(N n s)! huom: laskeminen paljon tehokkaampaa kun kertomien osamääriä on ensin sievennetty Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 262/275 Kevät 2004

Transformaatiomenetelmä seuraava algoritmi A perustuu transformaatiomenetelmään (sovellettuna diskreettiin jakaumaan) tavoitteena generoida satunnaismuuttuja s = S(n, N) jakaumasta F (tai paremminkin F (n, N)) apumuuttuja u T as(0, 1) käänteisfunktiota F 1 (u) ei tunneta sen sijaan tarkastellaan F (s):n arvoja valitaan s jolla F (s 1) < u F (s) F (i):n ja f(i):n arvot lasketaan tehokkaasti edellisistä arvoista F (i 1) ja f(i 1) Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 263/275 Kevät 2004

Algoritmi A 1. do { 2. generoi satunnaisluku u T as(0, 1) 3. s 0; F (0) n/n 4. while u > F (s) sivuuta tietue: 5. s s + 1; f(s) (1 F (s 1))n/(N s); F (s) F (s 1) + f(s) 6. valitse s + 1:s tietue 7. aseta n n 1, N N s 1 8. } while n > 0 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 264/275 Kevät 2004

Algoritmin A analyysiä do-silmukka suoritetaan n kertaa while-silmukka (askel 5) vie kaikkiaan aikaa luokkaa O(N), koska jokainen tietue käydään läpi kerran algoritmin aikavaativuus on siis O(N) (kuten Algoritmi S) generoitavien satunnaislukujen määrä on n eli huomattavasti pienempi Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 265/275 Kevät 2004

Hylkäämismenetelmä seuraavassa algoritmissa D käytetään satunnaismuuttuja S(n, N):n generointiin hylkäämismenetelmää (sekä transformaatiomenetelmää apujakaumalle g) apujakauma g on jatkuva muunnetaan diskreetti pistetodennäköisyysfunktio jatkuvaksi porrasfunktioksi portaan pituus on 1 ja funktion arvo i:nnellä portaalla on pistetodennäköisyys p(i 1) ks. kuva Numerical Recipes, s. 294 hylkäysmenetelmässä s:n arvoksi käytetään vain kokonaislukuosaa x Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 266/275 Kevät 2004

tehtävä siis: generoi satunnaislukuja S:n jakaumasta olkoon g sopiva apujakauma, joka approksimoi jakaumaa F (s) hyvin etsitään c 1 jolle f( x ) cg(x) kaikilla x relevantilla arvoalueella generoidaan jakaumasta g kandidaatti x generoidaan satunnaisluku u väliltä 0,..., 1 jos u > f( x )/(cg(x)) hylätään x muuten hyväksytään s x Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 267/275 Kevät 2004

Litistys (squeeze method) ehdon u > f( X )/(cg(x)) testaaminen vie jonkin verran aikaa, koska f on työläs laskea hylkäämisen todennäköisyys on pieni aikaa voidaan säästää korvaamalla f(s) funktiolla h(s) joka voidaan laskea nopeammin ja jolle h(s) f(s) f( X ) täytyy laskea vain kun u > h( X )/cg(x) litistystekniikka: h( X ) f( X ) cg(x) litistys ei tietysti ole välttämätöntä algoritmin toiminnan kannalta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 268/275 Kevät 2004

Algoritmi D 1. do { 2. generoi satunnaisluku u T as(0, 1) 3. generoi satunnaisluku x jakaumasta g(x) 4. if u h( x )/(cg(x)) aseta s x 5. else if u f( x )/(cg(x)) aseta s x 6. else goto 2 7. sivuuta s tietuetta ja valitse sen jälkeen seuraava otokseen 8. aseta n n 1, N N s 1 9. } while n > 0 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 269/275 Kevät 2004

Sopivan funktion g valinta mikä on sopiva apufunktio g? S:n arvo on pienin n:stä kokonaisluvusta, jotka on generoitu ( ilman takaisinpanoa ) toisistaan riippumattomasti väliltä 0,..., N generoidaan otos vastaavasta jatkuvasta jakaumasta ( takaisinpanolla ) olkoon X satunnaismuuttuja ko. jakaumasta X:n arvo voidaan ajatella pienimmäksi n:stä riippumattomasta reaaliluvusta Tas(0, N)-jakaumasta Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 270/275 Kevät 2004

Kandidaattien generointi kandidaatin x generoiminen jakaumasta g on helppoa ja nopeaa käytetään transformaatiomenetelmää merkitään Z 1, Z 2,..., Z n riippumattomia Tas(0, N)-jakautuneita reaalilukuja näitä lukuja ei suinkaan tarvitse generoida, niitä käytetään tässä vain g:tä vastaavan jakaumafunktion G(x) johtamiseen G(x) = P (X x) = 1 P (X > x) = 1 P (Z k > x) = 1 (1 x N )n. 1 k n Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 271/275 Kevät 2004

Kandidaattien generointi (2) haluttu x saadaan siis transformaatiomenetelmällä x = G 1 (u) edellyttää tietysti että sellainen on (tässä sivuutetaan sen näyttäminen intuitioon vedoten, samoin tekninen käänteisfunktion johtaminen) saadaan G 1 (u) = N(1 (1 u) 1/n ) koska muuttuja 1 U on tasaisesti jakautunut kun U:kin on, saadaan kandidaatti x asettamalla x N(1 u 1/n ) Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 272/275 Kevät 2004

Muut parametrit myös vakio c ja litistämiseen käytettävä funktio h valittava h:n oltava tiukka alaraja, toisaalta sellainen että se pystytään laskemaan nopeasti h(s) = n N c = N N n + 1 ( 1 s N n + 1 ) n 1 Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 273/275 Kevät 2004

Algoritmin analyysiä kun n on suuri suhteessa N:ään, algoritmi saattaa olla hitaampi kuin algoritmi A do-silmukka suoritetaan n kertaa enää ei tarvitse käydä sen sisällä läpi tietueita vaan sivuutettavien tietueiden lukumäärä saadaan generoitua suoraan satunnaislukuna vastaavan satunnaismuuttujan jakaumasta algoritmin aikavaativuus on siis O(n) Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 274/275 Kevät 2004

Yhteenveto usein tarpeellinen tehtävä on valita otos satunnaisesti tietokannasta turhien luku-/kirjoitusoperaatioiden välttäminen tärkeää siksi tietueet on syytä valita järjestyksessä jossa ne on talletettu hylkäämismenetelmään perustuva algoritmi suoriutuu tehtävästä lineaarisessa ajassa suhteessa otoksen kokoon Hannu Toivonen, Marko Salmenkivi, Inkeri Verkamo Tutkimustiedonhallinnan peruskurssi Otokset tietokannoista 275/275 Kevät 2004