1  Johdanto

1.1 Bayes-tilastotiede lyhyesti

Bayes-tilastotiede tarjoaa systemaattisen tavan ennakkotiedon ja datan yhdistämiseen. Kaiken epävarmuuden kuvaamiseen käytetään todennäköisyyksiä. Ennakkotietoa parametreista \(\theta\) kuvataan priorijakaumalla \(p(\theta)\). Dataa ehdolla parametrit kuvataan mallilla \(p(y | \theta)\). Tavoitteena on selvittää posteriorijakauma \(p(\theta | y)\). Aineisto siis päivittää priorijakauman posteriorijakaumaksi. Ehdollisen todennäköisyyden määritelmää käyttäen päädytään Bayesin kaavaan

\[ p(\theta|y) = \frac{p(y|\theta)p(\theta)}{p(y)}. \tag{1.1}\]

Bayes-päättelyssä tilastotieteilijän on siis

  1. Määritettävä priorijakauma \(p(\theta)\).

  2. Määritettävä malli \(p(y|\theta)\).

  3. Laskettava posteriorijakauma Bayesin kaavan avulla.

  4. Arvioitava mallin sopivuutta dataan.

Kaikkiin näihin vaiheisiin liittyy merkittäviä haasteita käytännön tilanteessa.

1.2 Epävarmuuden lajit

Epävarmuus voidaan jakaa satunnaiseen eli aleatoriseen epävarmuuteen ja tietämykselliseen eli episteemiseen epävarmuuteen. Aleatorinen epävarmuus on seurausta aidosta satunnaisuudesta, jota ei ole mahdollista poistaa keräämällä lisää havaintoja. Esimerkkejä ovat rahanheitto (“alea iacta est”) ja kvanttimekaniikan ilmiöt. Episteeminen epävarmuus taas liittyy siihen, että emme tiedä ilmiöstä niin paljon kuin olisi mahdollista tietää. Esimerkiksi epävarmuus väestön keskipituudesta pienenee, kun poimimme väestöstä satunnaisotoksen ja mittaamme otokseen valittujen henkilöiden pituuden.

1.3 Priorin määrittäminen

Ennakkotietoa parametreista kuvataan priorijakauman avulla. Vahvan ennakkotiedon perusteella muodostettua prioria kutsutaan informatiiviseksi. Subjektiivisesta priorista puhuttaessa korostetaan sitä, että eri henkilöiden ennakkotiedot ja -käsitykset saattavat poiketa toisistaan huomattavasti. Herkkyystarkasteluissa tutkitaan, kuinka erilaisten priorien käyttö vaikuttaa posteriorijakaumiin. Mitä enemmän dataa on käytettävissä, sitä vähemmän priorilla on merkitystä. Poikkeuksena on tilanne, jossa priorijakauman tiheysfunktio on nolla jollakin parametrin arvolla. Tällöin posteriorijakauman tiheysfunktiokin on aina nolla tällä parametrin arvolla.

Bayes-tilastotiedettä kohtaan esitetty kritiikki kohdentuu usein priorijakaumien käyttöön. Usein huolena on, että posteriorijakauma määräytyy liian voimakkaasti pelkästään priorijakauman perusteella. Tätä huolta on pyritty vähentämään käyttämällä epäinformatiivisia prioreita, jotka levittävät todennäköisyysmassan mahdollisimman tasaisesti parametrin määrittelyjoukon ylitse.

Modernissa Bayes-tilastotieteessä suositaan usein heikosti informatiivisia prioreita. Tällöin lähtötilanne voi olla informatiivinen priori, jota laimennetaan jakamalla todennäköisyysmassa lähtötilannetta tasaisemmin.

Toinen mahdollinen huolenaihe on se, että ennakkotiedon esittäminen jakaumamuodossa voi olla hankalaa. Paras ennakkokäsitys tutkittavasta ilmiöstä saattaa olla asiantuntijalla, jolla on vain vähäiset tiedot tilastotieteestä. On epärealistista olettaa, että asiantuntija tällöin pystyisi esittämään tietämyksensä suoraan tilastollisena jakaumana. Välittäjäksi tarvitaan tilastotieteilijä. Huolellisesti valittujen kysymysten avulla tilastotieteilijä saavuttaa ymmärryksen asiantuntijan näkemyksistä ja esittää ne priorijakaumana. Tätä kutsutaan tietämyksen koostamiseksi (elicitation).

1.4 Mallin määrittäminen

Mallin määrittäminen on tärkein tilastotieteilijän tekemä valinta sekä frekventistisessä että bayesiläisessä tilastotieteessä. Toisin kuin priorilla, mallilla on lähes aina suuri merkitys analyysin lopputulokseen. Mallin tulee olla yhdenmukainen sekä ilmiötä koskevan tietämyksen että datankeruuprosessin kanssa. Bayes-tilastotieteessä käytetään usein hierarkkisia malleja, joissa varsinaisten malliparametrien jakauma riippuu hyperparametreista.

1.5 Posteriorin laskeminen

Bayesin kaava 1.2 määrittelee posteriorijakauman yksikäsitteisesti, mutta kaavan käyttöön liittyy laskennallisia hankaluuksia. Tutkija määrittelee mallin \(p(y | \theta)\) ja priorin \(p(\theta)\), mutta datan reunajakauma tulisi laskea kaavalla:

\[ p(y) = \int p(y|\theta)p(\theta)\,d\theta, \tag{1.2}\] missä \(\theta\) yleensä on moniulotteinen. Poikkeustapauksia lukuun ottamatta tämä integraali ei kuitenkaan ole lausuttavissa suljetussa muodossa. Mahdollisia ratkaisuja tähän ongelmaan ovat:

  • Konjugaattiprioreiden käyttö. Tällöin priori ja malli valitaan siten, että posteriorijakauman muoto tunnetaan. Esimerkiksi jos ilmiötä mallinnetaan Poisson-jakaumalla ja intensiteettiparametrille käytetään priorina Gamma-jakaumaa, parametrin posteriorijakaumakin on Gamma-jakauma. Ratkaisu ei sovellu käytettäväksi monimutkaisten hierarkkisten mallin kanssa. Yksinkertaisissakin tapauksissa konjugaattipriorilla ei välttämättä ole mahdollista kuvata ennakkotietoja totuudenmukaisesti.
  • Analyyttinen integrointi. Joissakin tapauksissa integraalin 1.2 laskeminen analyyttisesti voi olla mahdollista.
  • Numeerinen integrointi. Käytännössä tämä yleensä mahdollista vain, jos parametrivektorin dimensio on yksi tai kaksi.
  • Approksimointi. Oletetaan esimerkiksi, että posteriorijakauma on normaalijakauma ja määritetään tämän jakauman parametrit datasta.
  • Riippumattomien havaintojen tuottaminen posteriorijakaumasta. Tässä tapauksessa luovutaan integraalin laskemista ja pyritään sen sijaan tuottamaan otos posteriorijakaumasta. Päättely perustuu tähän otokseen. Tärkeysotanta kuuluu tähän ryhmään.
  • Riippuvien havaintojen tuottaminen posteriorijakaumasta. Bayes-laskennan yleisimmin käytetty työväline Markovin ketju Monte Carlo (Markov chain Monte Carlo, MCMC) tuottaa riippuvia havaintoja posteriorijakaumasta.

1.6 Mallin sopivuuden arviointi

Keskeinen osa Bayes-päättelyä on mallinnuksen tuloksena saadun posteriorijakauman kriittinen tarkastelu. Tutkija arvioi mallin sopivuutta dataan ja posteriorijakaumasta seuraavien päätelmien realistisuutta. Tarkasteluissa käytetään erityisesti posterioriennustejakaumasta generoituja havaintoja, koska niitä voidaan verrata aineistoon. Priorijakaumaan ja mallioletuksiin liittyvillä herkkyystarkasteluilla on myös tärkeä rooli. Mikäli tutkija ei ole tyytyväinen malliin, hän voi palata priorin ja mallin määrittämiseen.

1.7 Ohjelmistot

BUGS (Bayesian inference using Gibbs sampling) on deklaratiivinen ohjelmointikieli, jolla kuvaillaan millainen malli on mutta ei määritellä, kuinka se estimoidaan. BUGS-kehitystyö jatkui OpenBUGS-version (http://www.openbugs.net/) parissa, mutta vanhempi WinBUGS-versio (http://www.mrc-bsu.cam.ac.uk/software/bugs/) on myös edelleen käytettävissä. R-paketin R2OpenBUGS avulla OpenBUGS-ohjelmaa voi käyttää suoraan R:n kautta (OpenBUGS tulee asentaa ennen R2OpenBUGS-pakettia).

JAGS (Just Another Gibbs Sampler, http://mcmc-jags.sourceforge.net/) on vaihtoehtoinen BUGS-toteutus. Se on koodattu C++-kielellä, toisin kuin aiemmat toteutukset, jotka on koodattu vähemmän tunnetulla Component Pascal -kielellä. Tämä tekee siitä alustariippumattoman ja helpommin kehitettävän. OpenBUGS-mallit ovat yleensä käytettävissä JAGSissa suoraan tai pienten muokkausten jälkeen. JAGSia voi käyttää R-paketin rjags kautta.

NIMBLE (http://r-nimble.org/) on vähemmän tunnettu mutta kokeilemisen arvoinen ohjelmisto, joka käyttää ja laajentaa BUGS-syntaksia. Siinä BUGS-mallit ovat ohjelmoitavia R-olioita. Ohjelmakoodi käännetään C++-kielen välityksellä laskennan nopeuttamiseksi. BUGS:in alkuperäisten algoritmien lisäksi NIMBLen on implementoitu SMC (Sequential Monte Carlo). Käyttäjän on helppo implementoida uusia algoritmeja ja jakaumia. NIMBLEä voi käyttää R-paketin nimble kautta.

Stan (http://mc-stan.org/) on aktiivisesti kehitetty ohjelmisto, jonka syntaksi poikkeaa BUGS-syntaksista. Toisin kuin BUGS:issa, mallit määritellään imperatiivisella ohjelmointikielellä, joka määrittelee, mitä tehdään ja missä järjestyksessä. Staniin on implementoitu MCMC-menetelmistä ainoastaan HMC (Hamiltonin Morte Carlo) ja muunnelma sen adaptiivisesta versiosta NUTS (No U-Turn Sampling). HMC on yleensä (oikein säädettynä) tehokas suuriulotteisissa tapauksissa, kun posteriorijakauma on epäsäännöllisen muotoinen ja estimoitavilla parametreilla voimakkaita lineaarisia tai epälineaarisia riippuvuuksia. Algoritmi ei kuitenkaan toimi diskreeteillä posteriorijakaumilla, minkä vuoksi Stania ei voi käyttää malleissa, joissa on diskreettejä parametreja tai diskreettejä latentteja muuttujia. Joissain tapauksissa on mahdollista marginalisoida tällaiset parametrit tai muuttujat pois mallista. Saattaa olla myös toimivaa korvata diskreetit latentit muuttujat vastaavanlaisilla jatkuvilla muuttujilla. (Esim. Poisson-jakauman voisi korvata Gamma(\(\alpha\),1)-jakaumalla, jolla on sama odotusarvo ja varianssi.) Stan on yleensä JAGSia hitaampi sovitettaessa yksinkertaisia malleja mutta saattaa olla selvästi tehokkaampi sovitettaessa monimutkaisia malleja. Stanissa on myös implementoitu variaatiopäättely (Variational Inference, VI), joka on simuloinnille vaihtoehtoinen lähestymistapa approksimatiiviselle Bayes-päättelylle. Kun Stan on asennettu, sitä voidaan käyttää suoraan R-paketin rstan kautta.

Muissa data-analyysiin käytetyissä ohjelmointikielissä on enemmän vaihtoehtoja. Julia-kieleen sisältyy paketti Turing, joka implementoi tavallisten algoritmien lisäksi kaikki edellä mainitut tehokkaat Bayes-laskennan menetelmät: SMC, VI, HMC, ja NUTS. Nämä ovat kaikki ohjelmoitu suoraan Julialla. Bayes-laskentaa (ja yleisemmin probabilistista ohjelmointia) voi tehdä Pythonin paketeilla PyMC3, Pyro ja Edvard, joista PyMC3 on tällä hetkellä pisimmälle kehitetty ja joka myös sisältää kaikki edellä mainitut menetelmät. Stania voi käyttää Pythonissa PyStan-paketin avulla.