Suhdanne-ennusteet: screippaaminen, siivoaminen, pivot ja suodattimet

Tämä on tausta-aineistoa Jyväskylän yliopiston datajournalismi-kurssille keväällä 2014. Videot kelpaavat itseopiskeluun myös ilman luentoja.

Vaihe 1 – datan kopiointi:

Ensimmäiseksi kopioidaan Talouselämän kokoamat suhdanne-ennusteet Google-taulukkoon. Se tehdään käyttämällä ImportHtml-funktiota. Jos Google-taulukon kieliasetuksena on suomi, pitäisi tämän funktion toimia.
=importhtml(”http://www.talouselama.fi/suhdanne-ennusteet/”;”table”;1)


Funktiolle annettavat parametrit erotellaan puolipisteellä. Ensin kerrotaan, mistä osoitteesta dataa haetaan. Se annetaan lainausmerkeissä ”http://www.talouselama.fi/suhdanne-ennusteet/”. Seuraavaksi tehdään selväksi, halutaanko taulukko ”table” vai lista ”list”. Kolmanneksi kerrotaan, monesko lista tai taulukko ko. osoitteesta haetaan. Viimeinen parametri on siis olennainen, jos sivulla on useita taulukoita tai listoja.

Vaihe 2 – sarakkeiden levittäminen:

Seuraavaksi kopioidaan haettu tieto pelkkinä arvoina uuteen taulukkoon, jotta sen käsittely on mahdollista. Se tehdään kopioimalla kaikki teksti ja käyttämällä ”liitä määräten; vain arvoja” -valintaa. Sarakkeiden levittäminen niin, että teksti mahtuu yhdelle riville onnistuu näppärästi tuplaklikkaamalla sarakkeiden väliä.

Vaihe 3 – tyhjien rivien täyttäminen:

Koska verkkosivulla taulukossa ei ole ennustuslaitoksen nimeä joka rivillä, pitää meidän lisätä se. Teemme ylimääräisen sarakkeen, johon luomme funktion. Funktion tehtävänä on vilkaista samalta riviltä viereisestä sarakkeesta, onko se tyhjä vai ei. Mikäli sarake on tyhjä, kopioidaan nimi ylemmältä riviltä. Mikäli siinä on nimi, kopioidaan se samalta riviltä.

Ensimmäisellä rivillä kopioimme nimen kirjoittamalla uuteen sarakkeeseen (soluun B2) =A2. Tämä kopioi solun A2 sisällön soluun B2. Seuraavalla rivillä solussa B3 kirjoitamme funktion:

=IF(ISBLANK(A3;A2;A3)

If-funktio toimii siten, että ensimmäinen parametri on testi. Seuraavana kerrotaan, mitä tehdään jos testin tulos on tosi. Viimeiseksi kerrotaan, mitä tehdään, jos testin tulos on epätosi. Testimme ISBLANK(A3) siis testaa, onko solu A3 tyhjä vai ei. Jos se on tyhjä, näyttää funktio sen, mitä A2-solussa lukee. Jos solussa on tekstiä, näytetään se.

Kun funktio kopioidaan muille riveille, muuttaa laskentataulukko kaavan joka riville sopivaksi. Niinpä seuraavalla rivillä soluviittaukset ovatkin muuttuneet ja funktio kuuluu =IF(ISBLANK(A4;A3;A4). Sama viidennellä, kuudennella ja neljännelläsadalla rivillä.

Vaihe 4 – siivoaminen käsityönä:

Seuraavaksi tutustutaan tosielämään. Datassa on käytännössä aina jotain virheitä. Tässä datassa ongelmia aiheuttaa se, että muutamaan otteeseen desimaalierottimeksi on livahtanut piste pilkun sijaan. Oman ongelmansa aiheuttaa Google-taulukko, joka ilmeisesti ystävällisesti yrittää muuttaa pisteellä erotellun desimaaliluvun päivämääräksi ja sen jälkeen vielä numeroksi. Google (kuten Excelkin) ajattelevat, että numero 1 tarkoittaa tammikuun 1. päivää vuonna 1900.

Datassamme esim. eräs Suomen pankin ennusteista (työttömyysaste 7.7) tulee luetuksi päivämääränä 7.7.2014 (Google täydentää vuosiluvun tälle vuodelle, koska sitä ei ole ilmoitettu). Sitten vaan lasketaan, monesko päivä on kyseessä, kun laskeminen aloitetaan 1.1.1900.  Niinpä taulukkomme päätyy näyttämään työttömyysasteeksi 41 827 (prosenttia työvoimasta), mikä on tietysti kaukana täystyöllisyystavoitteesta.

Virheet etsitään silmämääräisesti, mutta avuksi tulee datan järjestäminen A:sta Ö:hön ja Ö:stä A:han joka sarakkeen kohdalla. Kun sarakkeita ei ole tämän enempää, on se helppo tapa jäljittää lyöntivirheitä ja muita kummallisuuksia.

Vaihe 5 – Pivot-taulukointi:

Seuraavaksi teemme kevyttä analyysiä datasta. Pivot-taulukolla tutkimme, millaisia ennustuksia millekin vuodelle on tehty BKT:n vuosimuutoksesta.

Pivot-taulukon riveiksi valitaan vuodet. Arvot riveille poimitaan keräämämme datan BKT-sarakkeesta. Otetaan keskiarvon lisäksi mediaani, maksimi, minimi sekä vilkaistaan keskihajontaa. Lopuksi kopioidaan Tilastokeskuksen sivuilta toteutunut BKT:n kehitys ja verrataan sitä ennustusten keskiarvoon.

Vaihe 6 – Suodattimet:

Lopuksi vilkaistaan vielä tarkemmin vuodelle 2009 tehtyjä ennustuksia. Pannaan dataan ensin suodatin, joka näyttää ainoastaan ennusteet, jotka koskevat vuotta 2009. Koska jokaisella rivillä on ennustuslaitoksen lisäksi myös ennusteen päivämäärä, tehdään nimi-sarakkeeseen suodatin, joka näyttää ainoastaan ne rivit, joiden nimi-sarakkeessa on luku 2008. Näin saamme näkyviin vuonna 2008 tehdyt ennusteet, joissa on ennustettu vuotta 2009.

Tästä datahärpäke uutisten kylkeen?

Tämä datasetti sopisi jo pohjaksi vaikka mihin. Seuraava askel olisi siivota nimien kirjoitusasu yhtenäiseksi (esim. VM ja Valtiovarainministeriö tai PT ja Palkansaajien tutkimuslaitos) sekä erottaa nimet ja ennusteen tekoajankohta eri sarakkeisiin. Kun vielä esimerkiksi Sampo, Sampo Pankki ja Danske Bank tai OP ja OP-Pohjola muutettaisiin samaksi, niin aina parempi.

Tulevaisuudessa näkisin mielelläni esimerkiksi ennusteuutisoinnin yhteydessä datajournalistisen härpäkkeen, joka esittelisi ko. laitoksen ennustusten osumatarkkuutta aiempina vuosina sekä mahdollistaisi vertailun muihin. Siitä vaan talon koodari asialle. Ei pitäisi olla täyden työpäivänkään homma.

21. maaliskuu 2014 by Jarno Liski
Categories: Tutoriaalit | Leave a comment

Leave a Reply

Required fields are marked *