Datan siivoaminen
Oppimistavoitteet: Verkosta saatu data voi olla monella tavalla puutteellista tai viallista, joten datan läpikäynti ja siivoaminen on oikeastaan aina tarpeen. Tässä luvussa opitaan eri näkökulmat ja tekniikat taulukkomuotoisen datan siivoamiseksi.
Kun tietoaineisto on hankittu, se on siivottava sellaiseksi, että tarvittavat tiedot saadaan siitä helposti esiin.
Datan siivoamisella tarkoitetaan mm. virheellisen datan korjaamista, datan rajaamista, datan puhdistamista epäolennaisesta tiedosta sekä datan muuntamista formaatista toiseen, esim. XML:stä CSV-muotoon.
Yksittäisiä data-aineistoja harvoin käytetään sellaisenaan; yleensä niitä yhdistetään toisten aineistojen kanssa. Tällöin aineistoista pitää tehdä yhteismitallisia. Jos aineistoja halutaan visualisoida, ne pitää muuntaa rakenteeltaan ja muodoltaan myös visualisointisovellukselle sopiviksi.
Taulukkomuotoinen data on ensin saatava taulukkolaskentaohjelmistoon riveiksi ja sarakkeiksi. Jos aineisto on julkaistu vaikkapa PDF-dokumenttina, vaatii muunnos jonkin verran työtä. Jos taas aineisto on rakenteista dataa, joka ei ole taulukkomuotoista (XML- tai JSON-muodossa), sen siivoaminen ja analyysi vaatii yleensä skriptikieliä tai XML-jäsentelijöitä (parser) sekä jonkin verran ohjelmointitaitoja.
Tässä luvussa keskitytään taulukkomuotoisen datan käsittelyyn.
Taulukoiden siivoaminen
Tärkein siivoustyökalusi on taulukkolaskentaohjelma. Verkossa on tarjolla erilaisia erikoistyökaluja, jotka voivat soveltua suurten tietoaineistojen siivoamiseen ja analyysiin. Taulukkolaskennalla voi kuitenkin tehdä lähes kaikki tarvittavat toimenpiteet kunnes tietoaineistoon pitää yhdistää muita verkkoresursseja kuten karttanäkymiä. Kannattaa tutustua ainakin OpenRefine-verkkosovellukseen. Sen opasvideoista saat nopeasti käsityksen siitä, mitkä asiat sillä sujuvat.
Aineisto ladataan taulukkolaskentaohjelmistoon, jossa sen kunto tarkastetaan. Jokaisella rivillä kussakin sarakkeessa pitäisi olla vain yksi tietoalkio. Sarakkeen tietoalkion pitäisi joka rivillä olla samassa muodossa. Kansainvälisissä päivämäärämuotoiluissa törmätään tulkintaongelmiin: esim. onko päivämäärä 2/8/2014 helmikuussa vai elokuussa? Paras käytäntö päivämäärien kirjoittamiseen on ISO-standardi YYYY-MM-DD. Selaile aineistoasi ja kiinnitä huomiota tyhjiin soluihin tai muista poikkeaviin sisältöihin. Toistuvia virheitä kannattaa korjata etsi ja korvaa -toiminnolla (search & replace). Monimutkaiset korjaukset onnistuvat, jos taulukkolaskentaohjelma tukee säännöllisten lausekkeiden (regular expressions) käyttöä.
Rakenteellisten virheiden lisäksi aineisto voi olla sisällöltään puutteellista tai virheellistä. Se voi sisältää kirjoitusvirheitä, duplikaatteja ja vain osittain syötettyjä tietueita. Näiden käsittelyyn ei ole mitään taikakeinoa; virheiden haittavaikutukset pitäisi minimoida tapauskohtaisesti.
Käyttötarkoituksesta riippuu, pitääkö tietoaineistosta poistaa osia, jotka eivät ole tarpeellisia. Hyvin suurten poikkeamien (outliers) siivoaminen tietoaineistosta voi olla perusteltua.
Dataskreippaus eli ruudunraavinta
Dataskreippauksessa julkisilta verkkosivuilta kerätään tietoa koneluettavaan muotoon jatkojalostettavaksi. Monesti uutiskynnys ylittyy keräämällä dataa juuri tällä menetelmällä, koska tätä dataa ei kukaan ole aiemmin analysoinut koneellisesti; voit löytää uusia ilmiöitä kerrottaviksi.
Dataa voidaan skreipata erilaisilla skriptikielillä, kuten Python, phantom.js, Perl tai PHP. Ruudunraavintaan on kehitetty monia verkkopalveluita mm. import.io, Scraperwiki, Scrapy, mechanize, Scraping for Journalists, Ghost in the Web.
Esimerkki. Vuokra-asuntojen verotusarvojen vertailu ruudunraapijalla keväällä 2014, kun keskustelu Merja Ailuksen työsuhdeasunnon verotusarvosta kävi kuumana.
Muuntaminen jatkokäyttöä varten
Käyttötarkoituksen mukaisesti siivottu tietoaineisto pitää ehkä muuttaa visualisointityökalun edellyttämän rakenteen mukaiseksi. Kopioimalla tietoja välilehdeltä toiselle voidaan saada tarvittavat tiedot uudelle välilehdelle juuri oikeaan järjestykseen ja rakenteeseen.
Parannellun datan julkaiseminen avoimena datana
Jos tietoaineiston siivoamiseen on mennyt paljon aikaa ja vaivaa (kuten usein käy), suosittelemme siivotun aineiston julkaisemista verkossa avoimesti. Seuraa lisenssien ehtoja ja kerro, mitä muutoksia olet tehnyt, missä alkuperäinen aineisto oli ja kuka tai mikä organisaatio oli sen laatinut. Ilmoita myös aineiston tuottajalle tekemistäsi korjauksista, jotta tämä voisi halutessaan hyväksyä ne suoraan omaan aineistoonsa.
Esimerkki. Yle Uutiset teki taannoin uutisen Suomen autokannasta käyttäen Trafin avointa dataa. Datassa oli kuitenkin paljon virheitä, koska aineistoa kerättäessä katsastusasemilla automerkkien nimiä oli kirjoitettu monin eri tavoin. Yle Uutiset siivosi aineiston ja julkaisi sen avoimesti.
Tilastotieteen alkeet
Datan selailu ja mutusteltu ilman päämäärää ei yleensä ole hedelmällistä. Sinullahan on tarve, hypoteesi, käyttötarkoitus ja käyttöalue, johon tarvitset löytämääsi ja siivoamaasi dataa. Nyt voit kaivaa datastasi tarvittavat tunnusluvut, korrelaatiot tai muut tiedot, jotka vahvistavat, että tietoaineisto on tarkoitukseesi sopiva.
Jos tietoaineistosi on otos ja haluat yleistää siinä näkyviä ilmiöitä koskemaan suurempaa joukkoa, tarvitset perustiedot tilastollisista menetelmistä. Pelkkä laskelmien suorittaminen ei riitä, vaan on ymmärrettävä, mitkä operaatiot ovat tilastollisesti valideja. Tässä ovat tärkeimmät säännöt:
-
Älä laske korrelaatioita kaikkien muuttujien välillä. Satunnaisessa datassa ei tietenkään ole lainkaan oikeita korrelaatioita, mutta jos lasket siitä 20 eri muuttujan välistä korrelaatiota 95 % merkitsevyystasolla, saat keskimäärin yhden merkitsevän korrelaation tulokseksi (koska 95 % merkitsevyystaso tarkoittaa, että 5 % todennäköisyydellä löytyy sattumalta korreloivaa dataa). Oikea tapa on ensi muodostaa hypoteesi, jonka varmistamiseksi lasketaan siihen liittyvä korrelaatio. Jos korrelaation tulos on merkitsevä 95 % merkitsevyystasolla, niin se on todellinen (eikä sattumasta johtuva) 95 % todennäköisyydellä. Ja jos merkitsevää korrelaatiota ei löydy, ei ole rehellistä enää kehitellä uutta hypoteesia ja laskea samasta aineistosta uutta korrelaatiota; tällöinhän olet jo tekemässä askel askeleelta korrelaatioita kaikkien muuttujien välillä.
-
Laske luottamusvälit ja ota ne huomioon. Jos vaikka kahden puolueen kannatukset ovat 24 ja 25 prosenttiyksikköä, mutta mielipidemittauksen otoskoon mukainen luottamusväli on 2 prosenttiyksikköä, et voi sanoa muuta kuin että kannatuksissa ei ole merkitsevää eroa. Vaikka mediassa saatetaan todeta ammattitaidottomasti, että "Puolueen B kannatus on suurempi, vaikkei se ole tilastollisesti merkitsevä", niin tällainen lause on roskaa. Joko ero on tilastollisesti merkitsevä ja erosta voidaan puhua, tai eroa ei voida aineistosta todeta.
Voit kuunnella Jonathan Strayn puheenvuoron datan tilastollisesti pätevästä analysoinnista.
Tiivistelmä
Verkosta saatu tietoaineisto on mahdollisesti muunnettava toiseen tiedostoformaattiin. Tämän jälkeen aineistosta on siivottava epäsäännöllisyydet sekä havaittava mahdolliset tietosisällön virheet, jotka on pyrittävä korjaamaan tai kiertämään. Jos parantelutyöhön menee merkittävästi aikaa, kannattaa harkita siivotun tietoaineiston julkaisemista muidenkin käyttöön avoimena datana. Lopuksi tietoaineisto on ehkä muutettava jatkokäytön vaatimaan erityisformaattiin. Jos aineistosta pyritään tekemään yleistyksiä, on muistettava tilastollisen analyysin perusteet eikä sorruttava tilastollisesti kestämättömien johtopäätösten tekemiseen.
Tehtävät
- Tehtävä 8. Datan siivoaminen
- Tehtävä 9. Datan siivoaminen käytännössä