Rows: 817,623
Columns: 16
$ business_id <chr> "0100024-8", "0100037-9", "0100042-4", "0100044-…
$ registration_date <date> 1978-03-15, 1978-03-15, 1978-03-15, 1978-03-15,…
$ name <chr> "Asunto Oy Tammilehto", "Asunto Oy Askolan Riihi…
$ company_form <chr> "Asunto-osakeyhtiö", "Asunto-osakeyhtiö", "Asunt…
$ company_form_code <chr> "2", "2", "2", "2", "2", "2", "2", "2", "2", "2"…
$ main_line_code <chr> "68202", "68202", "68202", "68202", "68202", "68…
$ main_line <chr> "Asuntojen ja asuinkiinteistöjen hallinta", "Asu…
$ location <chr> "ARTJÄRVI", "ASKOLA", "ASKOLA", "ASKOLA", "KOTKA…
$ registered_office <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
$ status <chr> "2", "2", "2", "2", "2", "2", "2", "2", "2", "2"…
$ trade_register_status <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1"…
$ last_modified <chr> "2025-12-31T07:39:20", "2025-12-31T07:39:20", "2…
$ entry_codes <list> <"1", "1">, <"1", "1">, <"1", "1">, <"1", "1">,…
$ reg_year <dbl> 1978, 1978, 1978, 1978, 1988, 1978, 1978, 1978, …
$ reg_decade <dbl> 1970, 1970, 1970, 1970, 1980, 1970, 1970, 1970, …
$ ika_v <dbl> 48.28200, 48.28200, 48.28200, 48.28200, 37.87543…
Lukijalle. Tämä on 20-osaisen sarjan ensimmäinen osa. Sarjassa rakennetaan Suomen yrityskentästä kokonaiskuva yhdistämällä kolme PRH:n avointa rajapintaa ja lopulta Tilastokeskuksen aineistoja. Tavoite ei ole luetella yritysten määriä vaan ymmärtää jakaumia — sillä yksittäinen keskiarvo tai kokonaisluku piilottaa juuri sen, mikä on päätöksenteon kannalta olennaista.
Uutiskytkin: “Suomeen perustettiin X yritystä”
Talousuutisissa toistuu sama kaava: “Viime vuonna perustettiin ennätysmäärä yrityksiä” tai “konkurssit kasvoivat Y prosenttia.” Nämä ovat pistelukuja. Ne kertovat tason, mutta eivät rakennetta. Kaksi maakuntaa voi perustaa täsmälleen yhtä monta yritystä, vaikka toisessa syntyy ohjelmistotaloja ja toisessa parturiliikkeitä — ja näiden kahden elinkaari, työllistävyys ja riskiprofiili ovat täysin eri planeetoilta.
Aloitetaan sarja sieltä, mistä kaikki suomalainen yritystieto lähtee: Yritys- ja yhteisötietojärjestelmän (YTJ) perustietorajapinnasta. Tässä osassa teemme sille eksploratiivisen data-analyysin (EDA): mitä rajapinta sisältää, mikä on datan laatu, ja millaisia jakaumia sieltä paljastuu.
Mistä datassa on kyse?
PRH:n avoimen datan companies-rajapinta palauttaa kaupparekisteriin merkittyjen yritysten perustiedot: nimen, yhtiömuodon, päätoimialan, kotipaikan, rekisteröintipäivän ja rekisterimerkinnät. Yksityisiä elinkeinonharjoittajia (toiminimiä) ei tästä rajapinnasta saa.
Rajapintaa on käytettävä reilusti: enimmäisnopeus on 300 kyselyä minuutissa kaikkien käyttäjien kesken. Siksi haku tehdään kerran paikallisesti, throttlattuna, ja tulos tallennetaan .rds-tiedostoksi. Julkaisuputki (GitHub Actions) ei koskaan kutsu rajapintaa — se renderöi valmiista välimuistista.
Muistihuomio. Litistys tehdään jo haun aikana, sivu kerrallaan, joten R ei koskaan pidä koko ~24 GB:n sisäkkäistä raakalistaa muistissa samanaikaisesti — huippumuisti on yksi sivu (100 yritystä) plus kasvava kompakti taulukko. Tämä on koko erotus muutaman sadan megan ja koneen jumiutumisen välillä.
Repo- ja CI-huomio. Raaka JSON on kokonaisuudessaan ~3 GB — sitä ei committoida Gitiin. Vain siivottu
ytj_perustiedot.qs(~600 000 riviä, kymmeniä megatavuja) menee versionhallintaan. Lisäädata/ytj_checkpoints/ja raakatiedostot.gitignore-listaan. Koskahere()ankkuroi projektin juuren.Rproj- tai.here-tiedostoon, varmista että GitHub Actions -ajossa työhakemisto on repon juuri (tarvittaessahere::i_am()postauksen alussa).
Mitä jakaumista paljastuu?
1. Yhtiömuotojen jakauma ei ole tasainen — eikä sen kuulukaan olla

Osakeyhtiö dominoi, kuten odottaa saattaa. Mutta päättäjän kannalta kiinnostavaa on häntä — ja vielä enemmän se, että nämä yhtiömuodot elävät hyvin eri-ikäisinä. Siihen pureudumme kohta.
2. Yrityskannan ikä on vino jakauma, ei keskiarvo

Tässä on koko sarjan ydinajatus yhdessä kuvassa. Jos joku sanoo “suomalaisen yrityksen keski-ikä on 23 vuotta”, hän puhuu oranssista viivasta. Jakauma on kuitenkin oikealle vino: valtaosa yrityksistä on nuoria, ja pieni joukko hyvin vanhoja venyttää keskiarvoa. Mediaani (punainen) kuvaa todellisuutta paremmin. Maailma on jakauma — ei piste.
Koska jakauma on näin vino, kaikissa seuraavissa ryhmävertailuissa raportoimme sekä keskiarvon että mediaanin — ja testaamme erot menetelmällä, joka ei oleta normaalijakaumaa.
Metodihuomio: miksi efektikoko, ei p-arvo? Tämä aineisto on koko kaupparekisteri — emme tee otoksesta päätelmää suurempaan joukkoon, vaan meillä on koko joukko. Klassinen p-arvo kysyy “voisiko ero johtua otantasattumasta?”, mutta otantaa ei ole. Kun n on satojatuhansia, p-arvo painuu nollaan lähes millä tahansa erolla, eikä se siksi kerro mitään päätöksenteon kannalta. Siksi jokaisen testin pääluku on efektikoko (kuinka suuri ero on), ei merkitsevyys (onko ero olemassa). Tämä on “maailma on jakauma” -ajattelun terävin käytännön sovellus.
3. Ikä yhtiömuodoittain: eivät elä yhtä kauan

| Yhtiömuoto | n | Keskiarvo (v) | Mediaani (v) | IQR (v) |
|---|---|---|---|---|
| Asunto-osakeyhtiö | 98658 | 33.8 | 37.2 | 23.4–47.1 |
| Kommandiittiyhtiö | 71026 | 31.2 | 34.3 | 23.3–39.1 |
| Avoin yhtiö | 31949 | 26.5 | 25.8 | 18.2–35.5 |
| Osuuskunta | 6783 | 22.5 | 21.9 | 13–29 |
| Keskinäinen kiinteistöosakeyhtiö | 10745 | 21.4 | 19.1 | 7.4–35.1 |
| Osakeyhtiö | 588286 | 20.3 | 18.3 | 7.2–32.7 |
Päättäjälle: miksi Kruskal–Wallis eikä ANOVA? Ikä on rajusti vino, joten keskiarvoja vertaileva varianssianalyysi (ANOVA) antaisi harhaisen kuvan. Kruskal–Wallis vertailee jakaumien järjestyslukuja eikä oleta normaalisuutta — se kysyy yksinkertaisesti, ovatko toiset ryhmät systemaattisesti vanhempia kuin toiset. Tulos: epsilon² = 0.123 (kohtalainen ero). P-arvo on käytännössä nolla, mutta se on koko populaatiossa merkityksetöntä; efektikoko kertoo, kannattaako ero huomioida.
4. Ikä alueittain: missä yrityskanta on vanhinta?

| testi | n | p_arvo | epsilon2 | tulkinta |
|---|---|---|---|---|
| Kruskal–Wallis: ikä × kunta (18 suurinta) | 249177 | <2e-16 | 0.0121 | pieni |
Alue-erot ovat olemassa mutta efektikooltaan tyypillisesti pieniä: kunta selittää vain murto-osan ikävaihtelusta. Tämä on tärkeä, päättäjille usein yllättävä tulos — yrityksen ikää ei juuri ennusta se, missä se sijaitsee. Mikä sitten ennustaa? Toimiala.
5. Ikä toimialoittain: mitkä alat “ikääntyvät”?

| Toimiala | n | Mediaani-ikä (v) |
|---|---|---|
| Asuntojen ja asuinkiinteistöjen hallinta | 105747 | 36.8 |
| Yleiset talonrakennustyöt | 8019 | 34.4 |
| Asuntojen vuokraus | 7385 | 33.7 |
| Liikkeenjohdon konsultointi | 28452 | 9.1 |
| Ruokaravintolat | 10957 | 7.2 |
| Muualla luokittelematon muu rahoituspalvel… | 10438 | 5.8 |
Päättäjälle. Vertaa efektikokoja: toimiala (ε² = 0.309) selittää ikävaihtelusta selvästi enemmän kuin kunta (ε² = 0.012). Käytännön viesti: jos haluat arvioida yrityskannan kypsyyttä, kysy mitä alaa — älä missä päin Suomea. Vanhimmat alat ovat tyypillisesti pääomavaltaisia ja vakaita; nuorimmat ovat matalan aloituskynnyksen palvelualoja, joilla vaihtuvuus on suurta. Tämä vaihtuvuus on osan 5 konkurssiennustemallin ydintä.
6. Dominoivatko tietyt yhtiömuodot tiettyjä toimialoja?
Tässä on osan yllättävin yhdistelmä. Sen sijaan että katsoisimme yhtiömuotoja ja toimialoja erikseen, kysymme: mitkä yhtiömuodon ja toimialan parit esiintyvät paljon useammin (tai harvemmin) kuin sattuma antaisi olettaa? Työkalu on khiin neliö, mutta kiinnostava ei ole sen p-arvo vaan standardoidut jäännökset: kuinka monta keskihajontaa kunkin ruudun havaittu määrä poikkeaa odotetusta.

Päättäjälle: miten tämä luetaan? Punainen ruutu tarkoittaa, että kyseinen yhtiömuoto on tällä toimialalla paljon yleisempi kuin jos muoto ja ala olisivat riippumattomia; sininen tarkoittaa päinvastaista. Arvo on keskihajontoja: yli +2 on vahva signaali. Esimerkiksi asunto-osakeyhtiöt kasautuvat kiinteistöalalle ja kommandiittiyhtiöt tiettyihin perinteisiin palveluihin — kun taas osakeyhtiö on “yleismuoto”, joka ei juuri poikkea odotetusta. Tämä kartta on liiketoiminnallisesti arvokas: se kertoo, missä yhtiömuoto itsessään on toimialan signaali.
Bayesilainen näkökulma: epävarmuus palaa, kun viipale ohenee
Voisi luulla, että koko populaation kanssa epävarmuutta ei ole — kaikki yritykset ovat mukana. Mutta heti kun viipaloimme aineiston ohueksi (pieni kunta, harvinainen yhtiömuoto), havaintoja on taas vähän ja epävarmuus palaa. Tämä on tärkeää: useimmat liiketoimintakysymykset koskevat juuri ohuita viipaleita, ei koko maata.
Otetaan pieni kunta ja kysytään: mikä osuus sen yrityksistä on osakeyhtiöitä? Lasketaan osuudelle posteriori Beta-Binomi-mallilla (heikko priori Beta(1,1)).

Punainen viiva on pisteluku (k/n). Vihreä jakauma kertoo, kuinka paljon todellinen osuus voi siitä poiketa pienen viipaleen vuoksi. Sama kuva Helsingille olisi käytännössä pystysuora viiva. Opetus: koko populaatio ei poista epävarmuutta — se vain siirtää sen sinne, missä dataa on vähän, ja juuri siellä bayesilainen ote on arvokkain.
Yhteenveto ja seuraava osa
Palataan uutiskytkimeen. “Suomeen perustettiin X yritystä” on pisteluku, joka kätkee useita jakaumia. Pelkkä perustietorajapinta paljastaa, että:
- yrityskannan ikä on rajusti oikealle vino — mediaani, ei keskiarvo, kuvaa “tyypillistä” yritystä;
- yhtiömuodot elävät eri-ikäisinä, ja erot ovat efektikooltaan merkittäviä;
- sijainti ennustaa ikää heikosti, mutta toimiala selvästi — päättäjälle vastoin intuitiota tärkeä havainto;
- tietyt yhtiömuodot dominoivat tiettyjä toimialoja niin voimakkaasti, että yhtiömuoto on itsessään toimialan signaali.
Ja metodologisesti: koko populaation kanssa “tilastollisesti merkitsevä” on tyhjä lause. Efektikoko on ainoa rehellinen pääluku — ja ohuissa viipaleissa bayesilainen epävarmuus palaa kuvaan.
Osassa 2 sukellamme rekisteröityjen ilmoitusten rajapintaan: ei siihen mitä yritykset ovat, vaan mitä ne tekevät — nimenvaihdokset, osoitemuutokset, tilintarkastajan poistot. Sieltä alkaa paljastua käyttäytymisen sormenjälki, jolla osassa 5 ennustamme yrityksen kohtaloa.
Tarvitsetko organisaatiollesi kykyä lukea avointa dataa jakaumina — ei pistelukuina? Autan pk-yrityksiä ja julkishallintoa rakentamaan päätöksiä tukevaa analytiikkaa, ja otan vastaan vuokrattavan Head of Data -toimeksiantoja. kristianvepsalainen.com