Sagedustabelid ja põhistatistikud pideva juhusliku suuruse jaoks.


Sagedustabel

Pidevale suurusele sagedustabelit tehes jagatakse esmalt tunnuse väärtused vahemikesse. Näiteks inimeste pikkused (cm) võime jagada vahemikesse (140..150], (150..160], ... jne. Täpsemalt, tekitame cut-käsu abil uue tunnuse, kus inimese pikkuse asemel on kirjas selle inimese pikkuseklass:

pikkusklass=cut(pikkus, breaks=seq(140, 210, 10))
 pikkus pikkusklass
    164   (160,170]
    181   (180,190]
    172   (170,180]
    160   (150,160]
    ...      ...

Loodud tunnust pikkusklass võib aga käsitleda juba nagu tavalist järjestustunnust:

table(pikkusklass)

Tulemuseks saame sagedustabeli (kui mitme tudengi pikkused sattusid antud vahemikku):

pikkusklass
(140,150] (150,160] (160,170] (170,180] (180,190] (190,200] (200,210] 
        1        53       294       220        76        15         1 

Eraldi tunnuse tegemist pole tegelikult tarvis, vahemikeks jagamise ja sagedustabeli tegemise võib kombineerida ühte ja sellesamasse käsku. Näiteks saame lihtsa sagedustabeli tudengite kaaludele järgmise käsu abil:

table(cut(kaal, seq(40,120,10)))

Tulemus:

  (40,50]   (50,60]   (60,70]   (70,80]   (80,90]  (90,100] (100,110] (110,120] 
       70       256       193        82        37        14         3         2 

Vahemikeks jagamiseks kasutatud cut-käsku saab modifitseerida mitmel moel. Näiteks kombineerime kõik 100-st kilost suurema kaaluga tudengid ühte klassi kokku (klassi ülempiiriks on lõpmatus):

table(cut(kaal, c(seq(40, 100, 10), Inf) ))

  (40,50]   (50,60]   (60,70]   (70,80]   (80,90]  (90,100] (100,Inf] 
       70       256       193        82        37        14         5 

või võime määrata, mitut erinevat vahemikku soovime kasutada:

table(cut(kaal, 6))

(41.9,54.4]   (54.4,67]   (67,79.5]   (79.5,92]    (92,105]   (105,117] 
        161         305         123          51          14           3 

Käsu cut teine parameeter määrab vahemike arvu või piirid (kui argumendiks on vektor). Käsk seq võimaldab lihtsalt kerge vaevaga tekitada sobivate väärtustega vektorit - määrame ära, kust alustame, kus lõpetame ja millise sammuga väärtuseid tekitada. Kui soovime vahemike väärtuseid tekitada sammuga 20 (st soovime, et vahemike pikkuseks oleks 20), võime seda teha nii:

table(cut(kaal, seq(40, 150, 20) ))

  (40,60]   (60,80]  (80,100] (100,120] (120,140] 
      326       275        51         5         0 

Märka: tehti ka vahemik (120..140], kuigi sinna vahemikku ei sattunud ühegi tudengi kaal, kuid vahemikud ei ulatu päriselt välja soovitud 150-ni, sest 140+20 on juba suurem 150-st ja seega väärtust 160 viimase vahemiku piirina ei kasutatud.

Cut-käsu tulemust või cut-käsu abil loodud tunnusele (pikkusklass) võib luua sagedus-, jaotus jms tabeleid samamoodi, nagu on võimalik koostada tabeleid nominaalsele või järjestustunnusele. Näiteks mingi pikkusega tudengite protsentuaalset osakaalu võib leida käsuga:

round(prop.table(table(pikkusklass))*100,1)

Kuidas juba vahemikeks jagatud tunnusele (pikkuseklass) saab erinevaid tabeleid teha, selle kohta vaata näiteid siit.


Põhistatistikud

käsktulemuskommentaar
mean(pikkus) NA Aritmeetiline keskmine. Kui tunnus sisaldab puuduvaid väärtuseid (NA), siis me ei tea ka tunnuse väärtuste keskmist.
mean(pikkus,
  na.rm=TRUE)
171.1167 Korraldusega na.rm=TRUE palume enne keskmise arvutamist puuduvad väärtused eemaldada - tulemuseks saame olemasolevate väärtuste aritmeetilise keskmise. Kui andmestikust kipuvad olema puudu pigem kas väga väikesed (või vastupidi - väga suured) väärtused - näiteks seetõttu, et erakordselt lühikesed inimesed ei taha oma pikkust avalikustada ja keelduvad meile vastust andmast - siis võib olemasolevate väärtuste keskmine osutuda eksitavaks, nihkega hinnanguks populatsiooni keskväärtusele.
Kõigile siin tabelis toodud käskudele võib soovi korral sarnasel moel lisada korralduse na.rm=TRUE.
mean(vanus) 20.37519 Kui tunnusel puuduvaid väärtuseid pole, siis pole tarvis ka nende pärast muretseda.
median(vanus) 20 Mediaan.
exp(mean(log(vanus))) 20.25683 Geomeetriline keskmine.
sd(vanus) 2.438005 Standardhälve.
quantile(pikkus,
   c(0.25,0.5, 0.75),
   na.rm=TRUE)
25% 50% 75%
165 170 176
Alumine kvartiil, mediaan ja ülemine kvartiil. Kvartiilid koos mediaaniga jagavad uuritava tunnuse väärtused neljaks võrdse suurusega osaks. Alumisest kvartiilist väiksemaid väärtuseid on 25%, mediaanist peaksid olema väiksemad pooled (50%) uuritava tunnuse väärtustest ja ülemisest kvartiilist väiksemaid väärtuseid on 75%. Kui täpselt sama uuritava tunnuse väärtus võib esineda mitmel uuritaval, siis kvartiilide/mediaani interpretatsioon võib veidi muutuda (kui pooltel uuritavatel on uuritava tunnuse väärtuseks 0, teistel aga nullist suurem, siis on nii mediaan kui ka alumine kvartiil 0).
quantile(pikkus,
   0.17, na.rm=TRUE)
17%
163
0,17-kvantiil. Uuritava tunnuse väärtus, millest väiksemaid väärtuseid on 17% (17% tudengite pikkus on 163 või väiksem)
quantile(pikkus,
   seq(0.1,0.9,0.1),
   na.rm=TRUE)
  10%   20%..
161.9 164.0..
Detsiilid. Detsiilid jagavad uuritava tunnuse väärtused kümneks võrdse suurusega osaks.
min(vanus) 18 Miinimum.
max(vanus) 41 Maksimum.
sd(pikkus,
  na.rm=TRUE)/
  sqrt(sum(!is.na(pikkus)))
0.3270138 Standardviga.