Arena Pro
Graafisia kuvioita, jotka kuvaavat erilaisia käyriä.

Kuva: Adobe Stock

Tilastotieteilijän työkalupakissa maksuttomuus ja monipuolisuus R-ohjelman valtteina

Teknologia ja teollisuus Yhteiskunta ja ilmiöt

Tilastoasiantuntijan tehtävässä vaaditaan monipuolista osaamista – tyypillisiä toiveita ovat aineistoista piirretyt teemakartat, tunnuslukutaulukoiden laskeminen ja tutkimusten tilastoanalyysit, joiden menetelmien kirjoa vain tutkijan mielikuvitus rajoittaa.

Paitsi tilastomatemaattisten tehtävien, myös tilastollisten ohjelmistojen kirjo on varsin laaja. Kaikkien ohjelmistojen hallinta voi olla asiantuntijallekin haastavaa ja ohjelmistolisenssien kustannusten myötä organisaatiolle epäkannattavaa. Tässä artikkelissa kuvaan tilastolliseen datankäsittelyyn ja päättelyyn tarkoitettujen suosituimpien ohjelmistojen eroavaisuuksia. Vertailen erityisesti point and click -periaatteella toimivaa SPSS-ohjelmaa (aik. engl. Statistical Package for Social Sciences) ja omalla ohjelmointikielellään komennettavaa R-ympäristöä. Tutkimustietoon ja käyttäjäkokemukseeni perustuen johdattelen, miksi R-ohjelman opiskelu ja käyttöönotto tutkimuksen työkaluna voi olla pitkällä aikavälillä edullisempi ratkaisu määrällisen tutkimuksen tekijälle tutkimusalasta riippumatta.

Ohjelmointiorientoituneelle tutkijalle löytyy muitakin vaihtoehtoja. Python-kieli (Python Software Foundation 2023) on noussut viime vuosina hyvin suosituksi alustaksi (PYPL Index 2023). Python soveltuu mm. massa-aineistojen tilastolliseen analyysiin ja samalla ammattimaiseen ohjelmistokehitykseen. Pythonin kiemuroihin kannattaa tutustua erityisesti, jos on aikeissa laatia analyysiin pohjautuvaa kaupalliseen tai muutoin laajempaan levitykseen tarkoitettua sovellusta. Se ei kuitenkaan ole ainakaan toistaiseksi vetänyt vertoja tilastotieteeseen erikoistuneille ohjelmille, kun tarkastellaan laskennallisissa tehtävissä vaadittavaa numeerisesta tarkkuutta (esim. Gallagher & Trendafilov 2018). Pienemmillä käyttäjämäärillä suosituimpien ohjelmointikielten listalta löytyy perinteisiä tilastotieteilijöille tuttuja kieliä (esim. MATLAB ja VBA) sekä potentiaalisia uusia tulokkaita kuten Julia (PYPL Index 2023). Tässä artikkelissa keskitytään akateemisessa maailmassa ainakin toistaiseksi valta-asemaa pitävän kahden tilasto-ohjelman, eli R:n ja SPSS:n vertailuun.

Klikaten vai koodaten?

Jotain tilastollisten ohjelmistojen kentän laajuudesta kertoo se, että ainakin 14 eri ohjelmistoa käytetään kanadalaisten yliopistojen psykologian opiskelijoille suunnatuissa tilastotieteen opinnoissa (Davidson ym. 2019). Ylivoimaisesti käytetyin ohjelmisto 65 yliopiston tarjoamien 321 kurssien joukossa oli SPSS (IBM Corp. 2020). SPSS:ssä kiehtonee erityisesti intuitiivinen hiirellä ohjailtava, valikoiden pohjalle rakennettu käyttöliittymä sekä tutkimusaineiston jatkuva esilläolo dataeditori-ikkunassa. Käytettävyyden ja aineiston esillä pysymisen voi ajatella tuovan soveltavan alan tutkijalle turvaa tilanteessa, jossa analyysimenetelmät itsessään eivät välttämättä ole täysin tuttuja. Haittapuolena voinee pitää kustannuksia: SPSS-lisenssien hinnat vaihtelevat käytettävän paketin laajuuden perusteella tuhansista euroista kymmeniintuhansiin (Ozgur ym. 2015). Sama pätee erityisesti lääketieteen kliinisissä tutkimuksissa käytettyyn SAS-ohjelmistoon (SAS Institute Inc. 2013) – ohjelmistolisenssin hankintahinta on tuhansia euroja ja vuosittainen lisäkustannuskin on merkittävä (Ozgur ym. 2015).

Toista ääripäätä edustaa edellä mainitun kanadalaisen tutkimuksen (Davidson ym. 2019) toiseksi käytetyin ohjelmisto R (R Core Team 2022). Ilmaisen, avoimen lähdekoodin R-ohjelman perusversiossa klikattavien valikoiden kautta voidaan tehdä vain hyvin rajallinen määrä asioita. Varsinainen aineistonkäsittely ja tilastollinen analyysi toteutetaan ohjelmoimalla R-kielellä (ks. Kuva 1). Niin ikään vasten SPSS:n toimintaperiaatteita, R:llä analysoitaessa tutkimusaineisto on piilossa, ja sen saa esille vain käyttäjän niin erikseen komentaessa. R-ohjelmaa saatetaan näistä syistä pitää vaikeampana omaksua, ja kenties siksi sitä opetetaan useammin erityisesti matemaattisiin aloihin erikoistuville opiskelijoille SPSS:n palvellessa laajempaa kenttää sovellusalojen tutkimuksen ohjelmistona.

R:n laajempaa käyttöä taas puoltaisi sen avoimuus, maksuttomuus, mahdollisuus käyttää rajattomasti muiden käyttäjien luomia lisäosia sekä osaamisen karttuessa luoda itse tutkimusasetelmaan räätälöityjä analysointimenetelmiä. Tätä artikkelia kirjoittaessa avoimesta R-kirjastosta on ladattavissa jo yli 20 000 pakettia (CRAN 2023), jotka eri tehtäviin räätälöityinä helpottavat monimutkaisten tilastollisten analyysien sekä yleisemminkin tietojenkäsittelyn menetelmien käyttöä. R onkin monipuolisuutensa ansiosta kasvanut hyvin suosituksi ohjelmointikieleksi kiilaten kaikkien ohjelmointikielten käyttöasteiden vertailussa jo seitsemännelle sijalle (PYPL Index 2023).

Totuttautumalla yli R-ohjelman negatiivisen ensivaikutelman

Sovellusalojen opiskelijoille R:n ja SPSS:n hyvin erilaiset toimintaperiaatteet näyttäytyvät erityisesti tilastollisten tulosten tulkitsemisen koetussa ensivaikutelmassa. R:llä tuotettujen analyysitulosten tarkastelu johti pääaineiltaan heterogeenisissä yhteiskuntatieteellisten alojen opiskelijaryhmissä aluksi tilastollisesti merkitsevästi suurempaan ahdistukseen ja heikompaan itseluottamukseen kuin SPSS-tulosteiden tarkastelu (Rode & Ringel 2019). Kuitenkin tilastotieteen ymmärryksen kasvaessa opintojakson aikana, erot R:n ja SPSS:n välillä katosivat sekä opiskelijoiden kokemassa ahdistuksessa että luottamuksessa. Tämä tapahtui riippumatta siitä, kumpaa ohjelmaa opintojaksolla oli käytetty (Rode & Ringel 2019). Ainakin tämän tutkimuksen valossa R:n käyttöä voitaisiin suositella muillekin kuin matemaattisten alojen opiskelijoille ja tutkijoille.

Objektiin voi kohdistaa komentoja, joilla sitä voi laajentaa, karsia, osittaa tai muuntaa ilman että itse lähdetiedostolle tapahtuu mitään.

Vaikka R-ohjelmalla analysoidessa ei lähtökohtaisesti näe jatkuvasti tutkimusdataansa, voi R:n työympäristöön ladata lähes minkä tahansa tiedostotyypin aineistoja (mm. Excelin, SPSS:n tai SAS:n muodossa tallennettuja aineistoja sekä mitä tahansa tekstimuotoista aineistoa). Ladattu tutkimusaineisto on R:n virtuaalisessa työtilassa tyypillisesti datakehikko-tyypin objekti vastaten SPSS:n dataeditorin näkymää. Objektiin voi kohdistaa komentoja, joilla sitä voi laajentaa, karsia, osittaa tai muuntaa ilman että itse lähdetiedostolle tapahtuu mitään.

Tämä onkin R:n käytön yksi suurimmista hyödyistä: kun SPSS:n tai vaikkapa Excelin kanssa operoitaessa tutkimusaineistojen muutoksen jälkeen tallennetaan tyypillisesti uusi versio datasta, voi R-käyttäjä antaa lähdetiedoston olla ennallaan ja luoda silti mitä moninaisimmilla operaatioilla haluamansa johdannaismuuttujat. Tallentamalla alkuperäisen aineiston lisäksi vain koodieditoriin kirjatut komennot sisältävän ajojonon tekstitiedostoksi, saa samat operaatiot toistettua täydellisesti ilman koko datakehikosta tehtäviä välitallenteita. Näin säästyy levytilaa huomattavasti vaikkapa tuhansien tilastoyksiköiden aineistoon tehtyjen muunnosten ja tulosten välivaiheiden tallentamiseen verrattuna. Samaan tiedostoon voi tallentaa aineiston muokkaamiseen käytetyt komennot, tilastollisten testien ajamisen käskyt, kommentit tukemaan koodirivien ymmärtämistä, tilastollisten testien ja mallien sovittamiset sekä standardimuotoisten tai täysin räätälöityjen tulostaulukoiden ja -grafiikoiden tuottamisen (Kuva 2). Esimerkiksi opinnäytteen tai tutkimusartikkelin revisiovaiheessa analyysien hienosäätöjen tekemiseen riittää usein muutaman koodirivin lisääminen tai muuttaminen, ja aiemmat versiot analyyseista on arkistoitavissa muutaman kilotavun kokoiseen tekstitiedostoon.

Pikajohdatus R-ympäristöön

Kun SPSS:n dataeditorissa on aina avoinna matriisimuotoinen aineisto – sarakkeilla muuttujat ja riveillä tilastoyksiköt – on R:n käyttäjällä tämän datakehikoksi kutsutun aineistomuodon lisäksi käytettävissä laaja joukko muita objektityyppejä. Muita keskeisiä R:n objekteja ovat vektori, faktori, taulukko, lista ja funktio. Vektori on yksiulotteinen tietorakenne, joka voi sisältää yhden tyypistä tietoa – yleisiä vektoreissa säilöttäviä tietotyyppejä ovat numeeriset, tekstimuotoiset, päivämäärät tai vaikkapa loogiset (tosi/epätosi) arvot. Faktorimuotoisissa vektoreissa on määritelty ja järjestetty kyseisen muuttujan mahdolliset arvot, ja niitä voidaan käyttää esimerkiksi tilastollisten analyysien kategoristen muuttujien tallennuspaikkoina. Taulukot ovat vektoreiden säännöllisiä n-ulotteisia laajennuksia. Listoihin taas voi tallentaa mielivaltaisia objektien kokoelmia – niitä käytetään usein tilastollisten analyysien tulosten tallentamisessa. Funktioita käyttäen luodaan uusia objekteja ja prosessoidaan olemassa oleviin objekteihin tallennettua tietoa. Lyhyt R-kielen käyttöesimerkki on annettu Kuvassa 1.

Viimeisten viikkojen aikana olen toteuttanut R-ympäristössä muun muassa seuraavia tehtäviä:

  • Teemakarttojen piirtäminen kuntien osallistumisesta liikunnan edistämisen tempaukseen
  • Alueellisen teemakartan piirtäminen tutkimusaineiston otannan kuvaukseen
  • Automatisoidun kyselypalautteen laatiminen pdf-muotoon
  • Aktiivisuusmittausten automatisoitujen analysointimenetelmien käyttö
  • Kahden taulukkolaskentatiedoston tekstimuotoisten sarakkeiden sisällön ristiin tarkastelu
  • SPSS- ja SAS-muotoisten aineistojen yhdistäminen multinomiseen logistiseen regressiomalliin

Lista on monipuolinen, mutta kuitenkin hyvin pieni murto-osa R:n mahdollistamista operaatioista. Toivon artikkelin sekä edellä listattujen esimerkkien rohkaisevan uusiin menetelmällisiin kokeiluihin ja olevan hyödyksi tutkimuksissanne. R:n kokeilemista helpottaa se, että useimmilla korkeakouluilla ja tutkimuslaitoksilla R-ohjelma lienee ladattavissa ohjelmistojen itseasennusportaalista ilman tarvetta huolehtia lisenssien tai käyttöoikeuksien riittävyydestä organisaation sisällä.

Kuva, jossa koodi-esimerkki R-ohjelmointikielen syntaksista
Kuva 1. Esimerkki R-ohjelmointikielen syntaksista – koodipätkä on jäänyt ilman kommentteja ja siten hankalasti ymmärrettäväksi, kuten arkityössä usein pääsee käymään. Esimerkkikoodissa luodaan aluksi merkkitietoa sisältä vektori, tulostetaan se R-konsoliin ja muokataan siitä paste-funktion avulla uusi objekti. Seuraavaksi tuotetaan plot- ja text-funktioita sekä for-silmukkarakennetta käyttäen visuaalinen esitys aiemmasta objektista. Nyansseina koodiin on sisällytetty Unicode-merkistöstandardin, trigonometristen funktioiden sekä valmiin väripaletin käyttöesimerkit. Kuva: Tuomas Kukko
Kuva räätälöidystä grafiikasta
Kuva 2. Esimerkki R-ympäristössä tuotetusta tätä artikkelia varten räätälöidystä grafiikasta. Kuva: Tuomas Kukko