Kolmogorov-Smirnov sınaması

İstatistik bilim dalında, **Kolmogorov-Smirnov (K-S) sınaması** parametrik olmayan istatistik olup  Andrey Kolmogorov ve Nikolai Smirnov adlarındaki iki Sovyet bilim insanı tarafından oluşturulmuştur.

Bu sınama iki değişik problem için hipotez sınaması olarak kullanılır:
* *Tek örneklem K-S sınaması*: Hedef, verilmiş olan bir deneysel olasılık dağılımı gösteren örneklem verilerinin, dağılım parametreleri tam olarak bilinen tam tanımlanmış bir teorik anakitle olasılık dağılımına uyum gösterip göstermediğini sınamak. Bu tip problemde *sıfır hipotez Ho* örneklem verilerin deneysel dağılımının tam tanımlanmış bir anakitle olasılık dağılımından gelmiş olduğudur. 
* *İki örneklem K-S sınaması*: Hedef, verilmiş iki tane değişik deneysel olasılık dağılımı gösteren iki örneklem veri serisinin aynı tek bir teorik anakitle olasılık dağılımından gelip gelmediğini sınamak. Bu tip problemde *sıfır hipotez Ho* ise iki örneklem verilerin deneysel dağılımlarının tek bir anakitle olasılık dağılımından gelmiş olduğudur.

*Tek örneklem K-S sınaması* çok popüler olarak olarak bir normallik sınaması olarak, yani örneklem verilerinin tanımlanmış bir anakitle normal olasılık dağılımına uyumluluk gösterip göstermemesini sınamak için kullanılır. Örneklem verileri standardize edilerek (yani her bir veri değerinden teorik anakitle olasılığı için verilmiş ortalama çıkartıp sonucu verilmiş teorik yığın varyansına bölerek) elde edilen normalize veriler standart normal dağılım ile karşılaştırılır. Fakat bu türlü dönüşüm yapmanın sınamanın gücünü azalttığı ispat edilmiştir. Bu taraflılığın düzeltilmesi Lilliefors sınamasını ortaya çıkartır. Fakat, Anderson-Darling sınaması veya Shapiro-Wilk sınaması normallik sınaması olarak hem Lilliefors sınaması hem de K-S tek örneklem normallık sınamasından daha güçlüdür. K-S tek örneklem sınaması, gözlenen ve beklenen kümülatif frekans dağılış arasındaki mutlak farklılıklar dikkate alınarak geliştirilmiştir. Örneklem hacmi küçük olduğu için ki-kare sınaması uygulanamadığı durumlarda Kolmogorov-Simirnov testi kullanılabilir.

"İki örneklem K-S sınaması" hem genel olarak uygulanabilen hem de çok kullanışlı olan bir "parametrik olmayan sınama" yöntemidir çünkü bu sınama hem konum hem de dağılım şekline duyarlıdır ve bu türlü problem çözümü için popüler olarak kullanılır.

## Prensip

Bu test örneklem deneysel dağılım fonksiyonunun özelliklerine bağlıdır. n örneklem hacmi büyüklüğü de örneklem verilerinin; yani
:(x_1,\dots,x_n)
değerlerinin n tane birbirinden bağımsız ve reel değerli rastgele değişken olduğunu kabul edelim. Bu halde örnekleme deneysel dağılım fonksiyonu şöyle tanımlanabilir:
F_n(x)={1 \over n}\sum_{i=1}^n \delta_{x_i\leq x}
burada 
:\delta_{x_i\leq x} = \left\{\begin{matrix}1 & \mathrm{\text{eğer evet ise}}\ x_i\leq x, \\ 0 & \mathrm{\text{eğer hayır ise}}.\end{matrix}\right.

Tüm c>0 sabitleri için, bu sürec için deneysel dağılım fonksiyonu 0 ile 1 değerleri arasında büyüme fonksiyonları uzayında değerler alır ve bunun özellikleri arasında şuna yakınsama gösterir:
:
\mathbb{P}\left[\sup_{x} |F_n(x)-F(x)|>\frac{c}{\sqrt{n}}\right]\xrightarrow[n\to\infty]{} \alpha(c)=
2\sum_{r=1}^{+\infty} (-1)^{r-1}\exp(-2r^2c^2)

Eğer c=1.36 ise \alpha(c) teriminin değeri 0.05 ne yakınsar. Dikkat edilirse sağa doğru limit F'ye dayanmadığı görülür.

**Kolmogorov dağılımı** şu rassal değişkenin dağılımıdır:
:K=\sup_{t\in[0,1]}|B(t)|,
burada *B*(*t*) bir Brown tipi köprü olur. *K*nin birikimli dağılım fonksiyonu şöyle verilir:

:\operatorname{Pr}(K\leq x)=1-2\sum_{i=1}^\infty (-1)^{i-1} e^{-2i^2 x^2}=\frac{\sqrt{2\pi}}{x}\sum_{i=1}^\infty e^{-(2i-1)^2\pi^2/(8x^2)}.

*Sıfır hipotezi* doğru ise örneklem şu hipotez olarak verilen *F*(*x*) dağılımından gelir:

:\sqrt{n}D_n\xrightarrow{n\to\infty}\sup_t |B(F(t))|

burada *B*(*t*) "Brown tipi köprü" olur.

Eğer sıfır hipotezinde verilen *F* sürekli ise
:\sqrt{n}D_n 
bir Kolmogorov dağılımına yakınsar ve bu *F* dağılımına dayanmaz.

Tek örneklem *K-S sınaması* yani *uyumluluk iyiliği* sınaması Kolmogorov fonksiyonunun kritik değerlerini kullanılarak yapılır. Sıfır hipotezini \alpha seviyesinde reddetmek için 
:\operatorname{Pr}(K\leq K_\alpha)=1-\alpha.\,
ifadesinden bulunan *K**α* için 
:\sqrt{n}D_n>K_\alpha,\,
olması gerekir.

Bu testin asimptotik "istatistik gücü" 1e eşittir. Eğer *F*(*x*) fonksiyonunun şekli veya parametreleri örneklem 
:(x_1,\dots,x_n)
verileri ile bulunursa, yukarıda verilen kritik değerler uygun değildir. Bu hallerde Monte Carlo simülasyon yöntemi veya benzer sayısal yöntemler kullanılması gerekir. Ama bazı haller için özel tablolar kurulmuştur. Pearson ve Hartley (1957) Tablo 54de normal dağılım ve tekdüze dağılım için kritik değerleri ve test istatistiğini vermektedir.

## Örnek problemler

Örnek verilerini vermek ve K-S sınamalarını uygulamak için "R" adı altında hazırlanmış olan ve standart olarak uygulanan ve telif hakkı gerektirmeyen serbest kullanılma hakları verilmiş bir istatistik yazılım paketi kullanılacaktır.

### Simülasyonla üretilen veriler

Önce üç değişik veri serisi üretilmiştir. İstenilen gözlem sayısında ve istenilen olasılık dağılımında, simülasyonla R istatistik paketi özel simülasyon ile veri üretme komutası kullanılmıştır: 
* X veri serisi için 50 gözlem üretilmiştir ve bunların (ortalaması 0 ve varyansı 1 olan) bir *standart normal* dağılıma sahip olarak (R yazılım paketi için *X ← rnorm(50)* komutası ile) simülasyonla elde edilmişlerdir.
* Y veri serisi için 40 gözlem *standart normal* dağılıma sahip olarak (R yazılım paketi için *Y ← rnorm(40)* komutası ile) simülasyonla elde edilmişlerdir.
* Z veri serisi için 30 gözlem (0 ile 1 arasında) *[[tekdüze dağılım (sürekli)|sürekli tekdüze]]* dağılıma sahip olarak (R yazılımı icin *Y ← runif(30)* komutası ile) simülasyonla elde edilmişlerdir.

### Tek örneklem Kolmogorov-Smirnov sınaması örnek problemleri

Örnek problem 1:
Örneklem veri serilerinin nasıl ortaya çıktığının bilinmediğini düşünelim ve 50 gözlemli bir gerçek örneklem X veri serisi "(0-1) arasında sürekli tekdüze dağılım gösteren bir anakitle yığından gelmiş midir yoksa gelmemiş midir?" sorunu problem olsun. Bu soruna yanıt "tek örneklem Kolmogorov-Smirnov sınaması" ile bulunur:

Önce hipotezler verilir:
H0 : Bu n=50 örneklem serisi verilen U(0,1) (yani 0 ile 1 arasında sürekli tekdüze) dağılımlı bir anakitleden gelmektedir.
H1 : Bu n=50 örneklem serisi verilen U(0,1) (yani 0 ile 1 arasında sürekli tekdüze) dağılımlı anakitleden gelmemektedir.

Bu sınama için alternatif hipotezde pozitif bir dağılım ifadesi bulunmaz ve anakitle dağılımının ne olmadığına dair negatif bir hipotezdir. Tek örneklem K-S sınaması iki-kuyruklu testtir.

İkinci aşamada da Kolmogorov-Smirnov istatistiği D-değeri ve bunun karşıtı olan olasılık p-değerini bulmak için *R* paketine özel bir komuta kullanılır; bu komuta şudur: **ks.test(X, "punif") **. Bundan sonra kompüter programı hesaplar başlar ve bir çıktı sonucunu (İngilizce olarak) ekrana verir. Bunu şu tabloda özetleyelim:

Burada 0.5551 olarak hesaplanan D istatistiğine tekabül eden kritik sınır p-değeri 1.033x10−14 çok küçük bir değerdir. Bu p-değeri istatistikçilerin kullandığı %5 veya %1'den çok daha küçük olduğundan reddetme alanındır. Bu nedenle X veri serisinin bir (0-1) arasında tekdüze dağılımlı anakitleden gelmediği sonucuna varılması gerekir. Ama görüldüğü gibi sıfır hipotez reddedildiği zaman X veri serisinin hangi anakitle dağılımından geldiği bilinmez. Onun için yeni bir hipotez kurmak ve yeni bir sınama yapmak gerekir.

Örnek problem 2: 
Yine X örneklem veri serilerinin nasıl elde edildiğini bilmediğimizi kabul edelim. 50 gözlemli bir X örneklem veri serisinin "standart normal dağılım gösteren bir yığından gelmiş midir yoksa gelmemiş midir?" sorununu problem olarak seçelim. Bu soruna yanıt "örneklemin veri serisinin verilmiş olan bir standart normal dağılımına uyum sınaması" yani "tek örneklem Kolmogorov-Smirnov sınaması" ile bulunur:

Hipotezler şunlardır:
H0 : Bu n=50 örneklem serisi verilen N(0,1) (yani standart normal) anakitleden gelmektedir.
H1 : Bu n=50 örneklem serisi verilen N(0,1) (yani standart normal) anakitleden gelmemektedir.

Tek örneklem K-S sınaması iki-kuyruklu bir testtir.

İkinci aşamada da Kolmogorov-Smirnov istatistiği D-değeri ve bunun karşıtı olan olasılık p-değeri bulunur. Bunları hesaplamak için gereken formüller yukarıda verilmiştir. Burada hesaplama için **R** paketi kullanılmaktadır. Bu paketle *tek örneklem K-S testi için gereken D istatistiğini ve bunun p değerini bulmak için şu özel komuta kullanılır: *'ks.test(x, "pnorm")**. Bunu kullanan kompüter programı bir çıktı sonucunu ekrana verir ve sonucu şöyle özetleyelim:



Burada hesaplanan D istatistiğe tekabül eden kritik sınır p-değeri 0.8586 yani %85den daha büyüktür. Bu p-değeri istatistikçilerin kullandığı %5 veya %1'den çok büyük olduğu için kritik p-değeri kabul edilme alanındadır ve bu sıfır hipotez red edilemez. Bu nedenle X veri serisinin bir standart normal anakitleden geldiği sonucuna varılır.

=== İki örneklem Kolmogorov-Smirnov sınaması örnek problemleri ===

Örnek problem 3:<br />
Bu problemde sorun 50 gözlemli X örneklem veri serisi ile 40 gözlemli Y örneklem veri serisinin aynı anakitle dağılımından mı yoksa değişik anakitle dağılımından mı geldikleri incelenir. Bu soruna yanıt "iki örneklem Kolmogorov-Smirnov sınaması" ile bulunur. Hipotezler şunlardır:
H<sub>0</sub> : Bu n=50 gözlemli verilen X örneklem serisi ile n=40 gözlemli örneklem Y serisi aynı anakitle dağılımından gelmektedir.
H<sub>1</sub> : X örneklem serisi ile Y örneklem serisi aynı anakitle dağılımından gelmemektedir.

İki örneklem K-S sınaması da iki-kuyruklu bir testtir.

İkinci aşamada da Kolmogorov-Smirnov istatistiği D-değeri ve bunun karşıtı olan olasılık p-değeri bulunur. Burada hesaplama için ''R'' paketi kullanılmakta ve paketle ''iki örneklem K-S testi'' için gereken D istatistiğini ve bunun p-değerini bulmak için özel komuta şudur: **ks.test(X, Y)**. Ekrana verilen çıktı sonucunu şöyle özetlenir:



Burada bulunan D istatistiği 0.135 olup buna tekabül eden kritik sınır p-değeri 0.7652. Bu p-değeri istatistikçilerce kullanılan 0.05 veya 0.01 değerlerinden çok büyüktür ve açıkça H<sub>0</sub> kabul alanındadır. Sonuç olarak X ve Y serilerinin aynı anakitle dağılımından geldiği kabul edilir.

Örnek problem 4:<br />
Bu problemde sorun olarak 50 gözlemli X örneklem veri serisi ile 30 gözlemli Z örneklem veri serisinin aynı anakitle dağılımından mı yoksa değişik anakitle dağılımından mı geldikleri incelensin. Bu "iki örneklem K-S sınaması" için hipotezler şunlardır.
H<sub>0</sub> : X örneklem serisi ile Z örneklem serisi ayni anakitle dağılımından gelmektedir.
H<sub>1</sub> : X örneklem serisi ile Z örneklem serisi ayni anakitle dağılımından gelmemektedir.

İki örneklem K-S sınaması da iki-kuyruklu testtir. Kolmogorov-Smirnov istatistiği D-değeri ve bunun karşıtı olan olasılık p-değeri için hesaplama **R** paketi ile yapılır ve bu test için komuta **ks.test(X, Z)** olur. Komuta ve ekrandaki sonuçlar şöyle özetlenir:



Burada D istatistiği 0.48 olarak hesaplanmıştır ve buna tekabül eden kritik sınır p-değeri 0.0002033 küçük bir değerdir. Bu p-değeri istatistikçilerin kullandığı %5 veya %1'den çok daha küçük olduğundan reddetme alanındadır. Bu nedenle X ve Z örneklem veri serilerinin aynı dağılımlı anakitleden gelmediği sonucuna varılır.

Örnek problem 5:<br />
Son örnek problem için 40 gözlemli Y örneklem veri serisi ile 30 gözlemli Z örneklem veri serisinin aynı anakitle dağılımından mı geldikleri incelensin. Bu "iki örneklem K-S sınaması " için hipotezler şunlardır.
H<sub>0</sub> : Y ve Z örneklem serileri ayni anakitle dağılımından gelmektedir.
H<sub>1</sub> : Y ve Z örneklem serileri ayni anakitle dağılımından gelmemektedir.

İki örneklem K-S sınaması da iki-kuyruklu testtir. ''R'' paketi kullanarak Kolmogorov-Smirnov istatistiği D-değeri ve bunun karşıtı olan olasılık p-değeri için hesaplama için komuta **ks.test(Y, Z)''' olur. Komuta ve ekrandaki sonuçlar şöyle özetlenir:

Burada 0.55 olarak bulunan D istatistiği ve buna tekabül eden kritik sınır p-değeri 2.889x10−5 küçük değerdir ve p-değeri istatistikçilerin kullandığı %5 veya %1'den çok daha küçük ve reddetme alanındadır. Bu nedenle Y ve Z örneklem veri serilerinin aynı dağılımlı anakitleden gelmediği sonucuna varılır.

## Ayrıca bakınız

* Normallik sınamaları
* Anderson-Darling sınaması
* Smirnov-Cramér-von-Mises sınaması

## Kaynakça

## Dış bağlantılar
* Kısa bir giriş  (Erişim:4.10.2009)
* KS sınaması açıklaması   (Erişim:4.10.2009)
* Bir- veya iki-kuyruklu sınamalarda kullanılmak için JavaScript uygulaması   (Erişim:4.10.2009)
* K-S sınaması için Online hesaplayıcı   (Erişim:4.10.2009)
* Kolmogorov dağılımı  nı hesaplamak ve  K-S sınaması  yapmak için açık-kaynaklı C++ yazılım kodu.  (Erişim:4.10.2009)