Kolmogorovov-Smirnovov test

Kolmogorovov-Smirnovov test (alebo skrátene K-S test) je v teórii pravdepodobnosti a matematickej štatistike neparametrický test. Jeho testovacia štatistika sleduje najväčšiu odchýlku medzi teoretickou distribučnou funkciou (ktorú označujeme ) a empirickou distribučnou funkciou (ktorá sa označuje ), respektíve medzi dvoma empirickými distribučnými funkciami. Empirickú distribučnú funkciu získame z náhodného výberu.
Týmto testom testujeme, či jednorozmerná náhodná veličina má predpokladané, čiže teoretické rozdelenie. V takomto prípade hovoríme o jednovýberovom teste. Rovnako môžeme testovať, či dve jednorozmerné náhodné veličiny pochádzajú z rovnakého pravdepodobnostného rozdelenia (dvojvýberový test). Test nevie určiť, z akého rozdelenia náhodné veličiny pochádzajú, poskytne iba informáciu, či pochádzajú z rovnakého alebo odlišného rozdelenia pravdepodobnosti.
Kolmogorovov-Smirnovov test sa používa v prípade, že náhodný výber  pochádza zo spojitého rozdelenia s distribučnou funkciou  (dôležitý predpoklad). V prípade, že  (rozsah výberu) je nepostačujúce, teda je malé, používa sa tento test namiesto chí-kvadrát testu.
Test je pomenovaný podľa dvoch významných ruských matematikov Kolmogorova a Smirnova.

Príklad testu

Jednoduchý príklad na Kolmogorovov-Smirnovov test sa dá ukázať pomocou matematického programu R. Tento test je v programe už zabudovaný a predpis je nasledovný: ks.test.

Dvojvýberový test

Tentoraz si v programe R vygenerujeme dva náhodné výbery – jeden z normálneho rozdelenia pomocou príkazu rnorm(.) a druhý z rovnomerného rozdelenia pomocou príkazu runif(.). Následne budeme pomocou Kolmogorovovho-Smirnovovho testu testovať, či tieto dva náhodné výbery pochádzajú z rovnakého rozdelenia. Výstupom sú opäť tie isté informácie ako pri jednovýberovom teste. Z testu vidíme, že p-hodnota vyšla rovná 0.001826, čo je 0.1826%. Táto hodnota je teda menej ako 5%, a teda hypotézu  zamietame, následkom čoho sa dá tvrdiť, že tieto dva náhodné výbery nepochádzajú z rovnakého rozdelenia.
> vyber1 <- rnorm(50)> vyber1
 [1]  0.529808452  1.984421774  0.967890820 -0.009851542  0.957859203
 [6]  0.508594105 -0.006812904 -0.219980494 -0.288870208  0.269138799[11]  1.292500229  0.026582429  0.578625374 -0.439623986  0.696602281[16]  0.360686099  1.238492593 -1.636362597 -1.188028910  2.252744940[21] -0.909075651  0.512017326 -1.098583641  0.999292652  1.778016379[26]  0.795499677 -1.077792032 -0.915389384 -0.106071582 -0.111512499[31] -1.364847405  0.186406313 -0.091445138 -1.324561689  1.152640984[36]  0.318170126 -0.431556425 -1.255561718  0.425081752  0.641398937[41]  1.101968147  0.883650217  0.099955812  0.856377285  0.248175014[46] -0.920281692 -0.056454711 -0.085295739  1.502253419  0.598325297> vyber2 <- runif(30)> vyber2
 [1] 0.09237699 0.38505380 0.27608514 0.58043327 0.51327622 0.66636661
 [7] 0.95383317 0.43125163 0.81681833 0.19769616 0.52809416 0.36984808[13] 0.85963545 0.29324735 0.26970567 0.02132132 0.52460898 0.65868122[19] 0.23952377 0.01522186 0.13488495 0.41358348 0.80082742 0.58836133[25] 0.11895595 0.70033187 0.87048381 0.10687764 0.15342605 0.82152792> ks.test(vyber1, vyber2)

        Two-sample Kolmogorov-Smirnov test

data:  vyber1 and vyber2 
D = 0.42, p-value = 0.001826
alternative hypothesis: two-sided