keskiviikko 29. heinäkuuta 2015

Näin syntyi eduskuntavaalituloksen analyysijuttu

Teimme PlusDesk:ssä kevään eduskuntavaaleihin liittyen useampia juttuja.

Yksi niistä oli vaalitulosta analysoiva juttu "Kokeile, miltä vaalitulos näyttää, jos vain koulutetuimmat tai sairaimmat olisivat äänestäneet", jossa vaalitulosta katsottiin kunnittain viiden demografisen muuttujan kautta. Muuttujiksi olimme valinneet:
  1. tulot
  2. koulutus
  3. työttömyys
  4. eläkeläisten osuus
  5. terveys
Niin sanotun 100 kuntaa -koneen lähteenä käytettiin Tilastokeskuksen Kuntien avainluvut -aineiston tunnuslukuja 1) valtionveronalaiset tulot, 2) korkea-asteen tutkinnon suorittaneiden osuus, 3) työttömyysaste sekä 4) eläkkeellä olevien osuus väestöstä. Tiedot väestöltään 5) terveimmistä ja sairaimmista kunnista perustuivat THL:n sairastavuusindeksiin.

Lukijan oli mahdollista valita näkyville viiden eri muuttujan ääriarvot. (Kuva 1)

Jutun idea oli, että valitulla muuttujalla vaalitulos laskettiin ottaen huomioon vain 100 kuntaa.

Esimerkiksi jos muuttujaksi valitaan "koulutus" vaalitulos lasketaan niin, että otettiin huomioon vain 100 vähiten tai korkeiden koulutetun kunnan äänet. Vastaavasti jos muuttujaksi valittiin "tulot" pystyi näkemään miten vaalitulos olisi rakentunut jos vain Suomen pieni- tai suurituloisimmat kunnat olisivat äänestäneet. Idea oli lainattu ulkomailta.

Ajatuksenamme oli hypoteesi siitä, että vasemmiston kannatus korostuisi pienituloisissa kunnissa kun taas porvaripuolueiden kannatus olisi huipussaan suurituloisissa kunnissa. Toki näin suoraviivaisesti ei voi ajatella, mutta kantava ajatus analyysissa oli tämänkaltainen. Eli, että puolueiden voimasuhteet ovat riippuvaisia ihmisten demografisista ominaisuuksista.

Äänestysdatat saimme Ylen vaalipalvelun rajapinnan kautta. Tiedot tulivat sieltä .json-formaatissa.

Kehityskaari

Ensimmäisessa vaiheessa toteutimme uutissovelluksen niin, että valitsemalla muuttujan näki vaalituloksen jakautumisen puolueittain pylväsdiagrammeina. Eli lopullisen toteutuksen sen osuuden, joka näkyy sovelluksen vasemmassa laidassa. Tämä oli oikeastaan vähimmäisvaatimus toimivalle sovellukselle. (Kuva 2)

Pylväsdiagrammit esittivät äänestystuloksen valitulla 100 kunnalla sekä verrattuna todelliseen äänestystulokseen, jotta vertailu olisi helppoa. (Kuva 2)

Nopeasti kuitenkin tajusimme, että olisi tuloksen lisäksi hyödyllistä nähdä mitkä nämä 100 kuntaa ovat joista vaalituloksen laskenta tapahtuu ja missä päin Suomea ne sijaitsevat. Näin lisäsimme pylväsdiagrammin rinnalle Suomen kuntakartan, jossa esitetään valitut 100 kuntaa korostevärillä. (Kuva 3)

Valitulla muuttujalla laskennassa käytetyt kunnat korostettiin sinisellä. (Kuva 3)

Pelkkä kuntien esittäminen kartalla tuntui kuitenkin nopeasti liian kapealta näkökulmalta ja tajusimme, että olisi kiva tietää myös äänestystulos yksittäisten kuntien osalta. Lisäsimme tämän aineiston selattavaksi kartalle niin, että osoittamalla kuntaa näki yksittäisen kunnan äänestystuloksen. (Kuva 4)

Osoittamalla näki miten kannatus jakautui puolueittain yksittäisessä kunnassa. (Kuva 4)

Huomiot

Teknisesti tuote siis eli koko kehitysprosessin ajan. Tämä on luontevaa nykyaikaisessa ketterässä ohjelmistokehityksessä. Uusia ominaisuuksia lisätään toimivan tuotteen ympärille kun tarve niille havaitaan. Tätä voidaan kutsua esimerkiksi prototypoinniksi.

Datajournalismin ja uutissovelluksen rakentamisessa tämänkaltainen ketterä kehittäminen on erityisen luontevaa ja tehokasta, koska tilanteet voivat muuttua nopeasti ja mahdollisuus niiden ennakoimiseen on rajallista.

Ei ole tarkoituksenmukaista etukäteen määritellä syvällisesti mitä ollaan tekemässä ja lyödä lukkoon projektin alkuvaiheessa mikä on lopullinen toteutustapa, koska ymmärrys jota näiden päätösten tekemiseen vaaditaan rakentuu vasta kun sovellusta aletaan tekemään.