(nettipäiväkirja 15.09.2016) Kerronpa teille suunnitelman, millaisen ohjelman haluaisin tehdä. Olisin tarvinnut sitä jo muutaman kerran, mutta en ole ehtinyt tutkia asiaa. Osittain kyse on siitäkin, etten ole mikään tilastotieteilijä (ja kyseessä on erittäin selvästi tilastotieteellinen ohjelma) ja siksi tiedon etsiminen on ollut hidasta, kun en tiedä oikeita nimityksiä asioille.
Tämä on oikeastaan jatkoa sarjalle "yleiskäyttöisiä tilastollisia Python-ohjelmia". Olen nimittäin tehnyt jo yhden, jolla voi laskea kotitöiden / muun taakan oikeudenmukaisen jakautumisen (katso nettipäiväkirja 26.11.2015), toisen, jolla voi etsiä minkä tahansa taulukon datavirheitä (katso nettipäiväkirja 30.08.2016), ja nyt haluaisin ohjelman, joka ottaa syötteeksi jotain tabulaarista dataa ja tuottaa siitä "mielenkiintoisia tietoja". Tavallaan myös pukusuolitesti on ihan suhteellisen yleiskäyttöinen ohjelma tilastolliseen ennustamiseen (vaikkakin ennusteita on tahallaan radikalisoitu, että sitä olisi hauskempaa käyttää).
Idis on se, että yleensähän, kun esitetään vaikkapa jotain kyselydataa tai muuta tilastoa, siitä kerrotaan aina samanlaisia asioita: vastaajien määrä, jakautuminen eri kategorioihin, kunkin muuttujan tunnusluvut, esim. minimi-, maksimi-, keski- ja mediaani-ikä tai vaikkapa rinnanympäryksen keskihajonta... lisäksi on muutamia asioita, jotka kannattaisi aina laskea, mutta usein ihmiset eivät osaa tai unohtavat.
Näitä mielenkiintoisia ovat korrelaatiomatriisi (joka kertoo, mitkä aineiston muuttujat vaihtelevat yhdessä eli liittyvät toisiinsa), faktorianalyysi eli "selittävien muuttujien" etsintä (joka etsii, mitkä aineiston muuttujat ovat tilastollisessa mielessä merkkejä samasta "taustamuuttujasta") sekä segmentointi eli klusterointi (joka on sama kuin selittävien muuttujien etsintä, paitsi että selittävän muuttujan on oltava koodi (enum, moniarvovalinta) eikä skalaari). Jos et oikein hahmota, mitä nämä tarkoittavat, jonkinlaisen esimerkin tarjoaa HS:n vaalikoneanalyysi (http://blogs.helsinki.fi/niemivir/?p=257).
Faktorianalyysiin ja segmentointiin on monta eri tapaa, mutta muutamat niistä ovat aivan erityisen hyvin ymmärrettyjä. Haluaisin sellaisia analyysikeinoja, joiden tulokset voi vielä jotenkin selittää ihmisille. Siis, että mitä ne tarkottavat.
Lisäksi itse asiassa haluaisin esiprosessointiohjelman, joka tekee kaikista muuttujista numeerisia tätä analyysia varten. Aineistoissa kun on yleensä numeerisia ja kooditettuja muuttujia, joista kooditetut eivät sinänsä sovellu tilastolliseen analyysiin - mutta kooditetut muuttujat voi muuntaa /n/ numeeriseksi muuttujaksi, jossa jokainen muuttuja saa arvon 0 tai 1 sen mukaan, onko muuttujaa vastaava koodi valittu.