Tunnusluvut

R:ssä on suuri joukko komentoja erilaisten tilastollisten tunnuslukujen laskemiseksi. Joitain tärkeimpiä ovat: mean (keskiarvo), var (varianssi), sd (hajonta), median (mediaani), quantile (kvantiileja), fivenum (Tukey viisi tunnuslukua, melko lähellä kvanttiileja) jne. Nämä tunnusluvut lasketaan vektoreille. Mikäli haluamme saada matriisin tai aineiston riveille tai sarakkeille nämä vektoritunnusluvut, meidän on sovellettava komentoa apply, jonka muoto on

> apply(MATRIISI, REUNA, FUNKTIO)

Muut termit tässä ovatkin selviä, mutta REUNA vaatinee selvityksen: R:ssä kaksiulotteinen matriisi esitetään x[i,j], missä i on ensimmäinen REUNA eli rivit ja j on toinen REUNA eli sarakkeet. Jos siis haluamme soveltaa jotain funktiotamme sarakkeille, kirjoitamme

> apply(plutakko, 2, quantile)
     Fotosynt Pikopl Plankt   NH4     PO4
0%    0.14700 0.0000 0.1400 2.000 0.43800
25%   0.35375 0.2725 0.2525 3.150 0.65700
50%   1.18050 0.5650 0.5800 4.450 1.25950
75%   2.10700 1.7625 1.9600 5.425 1.59825
100%  4.68200 2.9900 6.1600 8.900 4.50000

Mikäli meillä on aineistossa luokkamuuttujia, tarvitsemme usein tunnusluvut luokittain. Silloin voimme käyttää edellisen kaltaista funktiota tapply, jonka muoto on

> tapply(MUUTTUJA, LUOKITTELIJA, FUNKTIO)

Tällä kertaa meidän on kutsuttava funktiota yhdelle vektorille (muuttujalle) kerrallaan, ja tämä luokitellaan samanmittaisen vektorin LUOKITTELIJA perusteella:

> data(taimet)
> attach(taimet)
> tapply(pituus, istutus, median)
 kenno ruukku  rulla
    49     55     51

Komennolla table saadaan luokka- tai kokonaislukumuuttujan frekvenssitaulukko:

> table(pituus) # Männyn tainten pituudet
pituus
46 47 49 50 51 52 53 54 55 58 61
 1  1  2  2  2  1  1  2  1  1  1
> table(rpois(100, 0.9)) # 100 Poisson(mu=0.9) satunnaislukua
 0  1  2  3  4
45 36 10  6  3
Jatkuvan muuttujan pystyy jakamaan paloiksi komennolla cut.

R:ssä on kiinnitetty melko paljon huomiota robusteihin menetelmiin, eli sellaisiin, jotka kestävä aineiston poikkeamisen oletuksista. Niinpä summary tulostaa ennen kaikkea kvantiileja eikä keskihajontaa, vinoutta ja kurtoosia, kuten usein on tapana. Myös monista perustunnusluvuista on robusteja variantteja. Esim. keskiarvot (mean) voivat olla trimmattuja, eli osa äärimmäisistä havainnoista poistetaan. Venables & Ripley (1999) käsittelevät robustia estimointia perusteellisemmin ja paketissa MASS on lisää robusteja tunnuslukuja.


Jari Oksanen 2003-01-21