
Dalam statistika, uji Kolmogorov–Smirnov (juga disebut uji K–S atau uji KS) adalah uji nonparametrik untuk kesamaan distribusi probabilitas sinambung (atau dis-sinambung, lihat bagian 2.2), satu dimensi. Uji ini dapat digunakan untuk menguji apakah suatu sampel berasal dari distribusi probabilitas referensi tertentu (uji K–S satu sampel), atau untuk menguji apakah dua sampel berasal dari distribusi yang sama atau tidak (uji K–S dua sampel). Uji ini dinamai menurut Andrey Kolmogorov dan Nikolai Smirnov, yang mengembangkannya pada tahun 1930-an.[1]
Statistik Kolmogorov–Smirnov mengukur jarak antara fungsi distribusi empiris sampel dan fungsi distribusi kumulatif distribusi referensi, atau antara fungsi distribusi empiris dari dua sampel. Distribusi nol dari statistik ini dihitung di bawah hipotesis nol bahwa sampel diambil dari distribusi referensi (dalam kasus satu sampel) atau bahwa sampel diambil dari distribusi yang sama (dalam kasus dua sampel). Dalam kasus satu sampel, distribusi yang dipertimbangkan di bawah hipotesis nol dapat berupa sinambung (lihat bagian 2), diskrit murni, atau campuran (lihat bagian 2.2). Dalam kasus dua sampel (lihat bagian 3), distribusi yang dipertimbangkan di bawah hipotesis nol adalah distribusi sinambung tetapi tidak dibatasi dalam hal lain.
Uji Kolmogorov-Smirnov dua sampel adalah salah satu metode nonparametrik yang paling berguna dan umum untuk membandingkan dua sampel, karena sensitif terhadap perbedaan baik dalam lokasi maupun bentuk fungsi distribusi kumulatif empiris dari kedua sampel.
Uji Kolmogorov-Smirnov dapat dimodifikasi untuk berfungsi sebagai uji kecocokan. Dalam kasus khusus pengujian normalitas distribusi, sampel distandarisasi dan dibandingkan dengan distribusi normal standar. Ini setara dengan menyamakan rata-rata dan varians distribusi referensi dengan estimasi sampel, dan diketahui bahwa penggunaan ini untuk mendefinisikan distribusi referensi spesifik mengubah distribusi nol dari statistik uji (lihat pengujian dengan parameter yang diestimasi). Berbagai penelitian telah menemukan bahwa, bahkan dalam bentuk yang dikoreksi ini, uji ini kurang kuat untuk menguji normalitas daripada uji Shapiro–Wilk atau uji Anderson–Darling.[2] Namun, uji-uji lain ini memiliki kekurangannya masing-masing. Sebagai contoh, uji Shapiro–Wilk dikenal tidak berfungsi dengan baik pada sampel dengan banyak nilai yang identik.
Statistik Kolmogorov–Smirnov Satu Sampel
suntingFungsi distribusi empiris Fn untuk n pengamatan terurut Xi yang independen dan terdistribusi secara identik (i.i.d.) didefinisikan sebagai:
, di mana adalah fungsi indikator, sama dengan 1 jika dan sama dengan 0 jika sebaliknya.
Statistik Kolmogorov–Smirnov untuk fungsi distribusi kumulatif F(x) yang diberikan adalah:
di mana supx adalah nilai supremum dari himpunan jarak. Secara intuitif, statistik ini mengambil selisih mutlak terbesar antara kedua fungsi distribusi di seluruh nilai x.
Menurut teorema Glivenko–Cantelli, jika sampel berasal dari distribusi F(x), maka Dn hampir pasti konvergen ke 0 pada limit ketika menuju tak terhingga. Kolmogorov memperkuat hasil ini, dengan secara efektif memberikan laju konvergensi ini (lihat distribusi Kolmogorov). Teorema Donsker memberikan hasil yang lebih kuat lagi.
Dalam praktiknya, statistik ini membutuhkan sejumlah besar titik data (dibandingkan dengan kriteria kecocokan lainnya seperti statistik uji Anderson–Darling) untuk menolak hipotesis nol dengan benar.
Distribusi Kolmogorov
sunting
Distribusi Kolmogorov adalah distribusi variabel acak
di mana B(t) adalah jembatan Brownian. Fungsi distribusi kumulatif K diberikan oleh [3]
yang juga dapat dinyatakan dengan fungsi theta Jacobi . Baik bentuk statistik uji Kolmogorov–Smirnov maupun distribusi asimtotiknya di bawah hipotesis nol dipublikasikan oleh Andrey Kolmogorov,[4] sedangkan tabel distribusinya dipublikasikan oleh Nikolai Smirnov.[5] Hubungan rekurensi untuk distribusi statistik uji dalam sampel terbatas tersedia.[4]
Di bawah hipotesis nol bahwa sampel berasal dari distribusi yang dihipotesiskan F(x),
dalam distribusi, di mana B(t) adalah jembatan Brownian. Jika F kontinu maka di bawah hipotesis nol konvergen ke distribusi Kolmogorov, yang tidak bergantung pada F. Hasil ini juga dapat dikenal sebagai teorema Kolmogorov.
Akurasi batas ini sebagai perkiraan terhadap CDF eksak dari ketika terbatas tidak terlalu mengesankan: bahkan ketika , kesalahan maksimum yang sesuai adalah sekitar ; kesalahan ini meningkat menjadi ketika dan menjadi yang sama sekali tidak dapat diterima ketika . Namun, cara yang sangat sederhana dengan mengganti dengan
dalam argumen fungsi theta Jacobi mengurangi kesalahan ini menjadi ; ; dan ; akurasi seperti itu biasanya dianggap lebih dari cukup untuk semua aplikasi praktis.[6]
Uji kecocokan atau uji Kolmogorov-Smirnov dapat dibangun dengan menggunakan nilai kritis distribusi Kolmogorov. Uji ini valid secara asimtotik ketika Uji ini menolak hipotesis nol pada tingkat jika
di mana Kα ditemukan dari
Daya asimtotik uji ini adalah 1.
Algoritma cepat dan akurat untuk menghitung cdf atau komplemennya untuk dan sembarang, tersedia dari:
- [7] dan [8] untuk distribusi nol sinambung dengan kode dalam C dan Java dapat ditemukan di [7]
- [9] untuk distribusi nol diskrit murni, campuran atau kontinu yang diimplementasikan dalam paket KSgeneral[10] dari proyek R untuk komputasi statistik, yang untuk sampel tertentu juga menghitung statistik uji KS dan nilai p-nya. Implementasi C++ alternatif tersedia dari.[9]
Pengujian dengan parameter yang diestimasi
suntingJika bentuk atau parameter F(x) ditentukan dari data Xi, nilai kritis yang ditentukan dengan cara ini tidak valid. Dalam kasus seperti itu, metode Monte Carlo atau metode lain mungkin diperlukan, tetapi tabel telah disiapkan untuk beberapa kasus. Detail untuk modifikasi yang diperlukan pada statistik uji dan untuk nilai kritis untuk distribusi normal dan distribusi eksponensial telah dipublikasikan,[11] dan publikasi selanjutnya juga mencakup distribusi Gumbel.[12] Uji Lilliefors merupakan kasus khusus untuk distribusi normal. Transformasi logaritma dapat membantu mengatasi kasus di mana data uji Kolmogorov tampaknya tidak sesuai dengan asumsi bahwa data tersebut berasal dari distribusi normal.
Distribusi nol diskrit dan campuran
suntingDengan asumsi bahwa tidak menurun dan sinambung kanan, dengan jumlah lompatan yang dapat dihitung (mungkin tak terbatas), statistik uji KS dapat dinyatakan sebagai:
Dari kontinuitas kanan , maka dan ; dan karenanya distribusi bergantung pada distribusi nol , yaitu tidak lagi bebas distribusi seperti pada kasus sinambung. Oleh karena itu, metode cepat dan akurat telah dikembangkan untuk menghitung distribusi eksak dan asimtotik dari ketika murni diskrit atau campuran,[9] diimplementasikan dalam C++ dan dalam paket KSgeneral[10] dari bahasa R. Fungsi disc_ks_test(), mixed_ks_test() dan cont_ks_test() juga menghitung statistik uji KS dan nilai p untuk distribusi nol murni diskrit, campuran atau kontinu dan ukuran sampel sembarang. Uji KS dan nilai p-nya untuk distribusi nol diskrit dan ukuran sampel kecil juga dihitung dalam [13] sebagai bagian dari paket dgof dari bahasa R. Paket statistik utama di antaranya SAS PROC NPAR1WAY,[14] Stata ksmirnov[15] mengimplementasikan uji KS dengan asumsi bahwa sinambung, yang lebih konservatif jika distribusi nol sebenarnya tidak sinambung (lihat [16] [17] [18]).
Uji Kolmogorov–Smirnov dua sampel
sunting
Uji Kolmogorov–Smirnov juga dapat digunakan untuk menguji apakah dua distribusi probabilitas satu dimensi yang mendasarinya berbeda. Dalam hal ini, statistik Kolmogorov–Smirnov adalah:
di mana dan adalah fungsi distribusi empiris dari sampel pertama dan kedua, dan adalah fungsi supremum.
Untuk sampel besar, hipotesis nol ditolak pada tingkat jika
Di mana dan masing-masing adalah ukuran sampel pertama dan kedua. Nilai diberikan dalam tabel di bawah ini untuk tingkat yang paling umum
| 0.20 | 0.15 | 0.10 | 0.05 | 0.025 | 0.01 | 0.005 | 0.001 | |
| 1.073 | 1.138 | 1.224 | 1.358 | 1.48 | 1.628 | 1.731 | 1.949 |
dan secara umum[19] oleh
sehingga kondisinya berbunyi
Di sini, sekali lagi, makin besar ukuran sampel maka makin sensitif batas minimalnya: Untuk rasio ukuran sampel tertentu (misalnya ), batas minimalnya berskala dengan ukuran salah satu sampel sesuai dengan akar kuadrat inversnya.
Perhatikan bahwa uji dua sampel memeriksa apakah kedua sampel data berasal dari distribusi yang sama. Ini tidak menentukan distribusi umum apa itu (misalnya apakah normal atau tidak normal). Sekali lagi, tabel nilai kritis telah dipublikasikan. Kekurangan dari uji Kolmogorov-Smirnov univariat adalah bahwa uji ini tidak terlalu kuat karena dirancang agar sensitif terhadap semua kemungkinan jenis perbedaan antara dua fungsi distribusi. Beberapa berpendapat[20][21] bahwa uji Cucconi, yang awalnya diusulkan untuk membandingkan lokasi dan skala secara simultan, dapat jauh lebih kuat daripada uji Kolmogorov-Smirnov ketika membandingkan dua fungsi distribusi.
Uji KS dua sampel telah diterapkan dalam ekonomi untuk mendeteksi efek asimetris dan untuk mempelajari percobaan alami.[22]
Menentukan batas kepercayaan untuk bentuk fungsi distribusi
suntingMeskipun uji Kolmogorov–Smirnov biasanya digunakan untuk menguji apakah F(x) yang diberikan merupakan distribusi probabilitas yang mendasari Fn(x), prosedur ini dapat dibalik untuk memberikan batas kepercayaan pada F(x) itu sendiri. Jika seseorang memilih nilai kritis dari statistik uji Dα sedemikian rupa sehingga P(Dn > Dα) = α, maka pita dengan lebar ±Dα di sekitar Fn(x) akan seluruhnya mengandung F(x) dengan probabilitas 1 − α.
Statistika Kolmogorov–Smirnov dalam lebih dari satu dimensi
suntingUji kecocokan Kolmogorov–Smirnov multivariat bebas distribusi telah diusulkan oleh Justel, Peña dan Zamar (1997).[23] Uji ini menggunakan statistik yang dibangun menggunakan transformasi Rosenblatt, dan algoritma dikembangkan untuk menghitungnya dalam kasus bivariat. Uji perkiraan yang dapat dengan mudah dihitung dalam dimensi apa pun juga disajikan.
Statistik uji Kolmogorov–Smirnov perlu dimodifikasi jika uji serupa akan diterapkan pada data multivariat. Ini tidak mudah karena perbedaan maksimum antara dua fungsi distribusi kumulatif gabungan umumnya tidak sama dengan perbedaan maksimum dari fungsi distribusi komplementer mana pun. Dengan demikian, perbedaan maksimum akan berbeda tergantung pada pilihan mana yang digunakan antara atau , atau salah satu dari dua susunan lain yang mungkin. Seseorang mungkin mensyaratkan bahwa hasil uji yang digunakan tidak bergantung pada pilihan mana yang dibuat.
Salah satu pendekatan untuk menggeneralisasi statistik Kolmogorov–Smirnov ke dimensi yang lebih tinggi yang memenuhi kekhawatiran di atas adalah dengan membandingkan cdf dari kedua sampel dengan semua kemungkinan urutan, dan mengambil yang terbesar dari himpunan statistik KS yang dihasilkan. Dalam d dimensi, ada 2d − 1 urutan tersebut. Salah satu variasi tersebut disebabkan oleh Peacock[24] (lihat juga Gosset[25] untuk versi 3D) dan yang lainnya oleh Fasano dan Franceschini[26] (lihat Lopes dkk. untuk perbandingan dan detail komputasi).[27] Nilai kritis untuk statistik uji dapat diperoleh melalui simulasi, tetapi bergantung pada struktur ketergantungan dalam distribusi gabungan.
Implementasi
suntingUji Kolmogorov–Smirnov diimplementasikan dalam banyak program perangkat lunak. Sebagian besar program tersebut mengimplementasikan uji satu dan dua sampel.
- Mathematica memiliki KolmogorovSmirnovTest.
- MATLAB's Statistics Toolbox memiliki kstest dan kstest2 untuk uji Kolmogorov–Smirnov satu sampel dan dua sampel.
- Paket R "KSgeneral"[10] menghitung statistik uji KS dan nilai p-nya di bawah distribusi nol yang sembarang, mungkin diskrit, campuran, atau sinambung.
- Paket dasar statistika R mengimplementasikan uji tersebut sebagai ks.test {stats} dalam paket stats-nya.
- SAS mengimplementasikan uji tersebut dalam prosedur PROC NPAR1WAY-nya.
- Dalam Python, paket SciPy mengimplementasikan pengujian dalam fungsi scipy.stats.kstest.[28]
- SYSTAT (SPSS Inc., Chicago, IL)
- Java memiliki implementasi pengujian ini yang disediakan oleh Apache Commons.[29]
- KNIME memiliki node yang mengimplementasikan pengujian ini berdasarkan implementasi Java di atas.[30]
- Julia memiliki paket HypothesisTests.jl dengan fungsi ExactOneSampleKSTest(x::AbstractVector{<:Real}, d::UnivariateDistribution).[31]
- StatsDirect (StatsDirect Ltd, Manchester, Britania Raya) mengimplementasikan semua varian umum.
- Stata (Stata Corporation, College Station, TX) mengimplementasikan uji ini dalam perintah ksmirnov (uji kesamaan distribusi Kolmogorov–Smirnov).[32]
- PSPP mengimplementasikan uji ini dalam perintah KOLMOGOROV-SMIRNOV (atau menggunakan fungsi pintasan KS).
- Real Statistics Resource Pack untuk Excel menjalankan uji ini sebagai KSCRIT dan KSPROB.[33]
- ClickHouse mengimplementasikan uji ini dalam fungsi kolmogorovSmirnovTest.
Lihat juga
sunting- Uji Lepage
- Uji Cucconi
- Uji Kuiper
- Uji Shapiro–Wilk
- Uji Anderson–Darling
- Uji Cramér–von Mises
- Metrik Wasserstein
Referensi
sunting- ^ "7.2.1.2. Kolmogorov- Smirnov test". Diakses tanggal 8 Oktober 2025.
- ^ Stephens, M. A. (1974). "EDF Statistics for Goodness of Fit and Some Comparisons". Journal of the American Statistical Association. 69 (347): 730–737. doi:10.2307/2286009. JSTOR 2286009.
- ^ Marsaglia G, Tsang WW, Wang J (2003). "Evaluating Kolmogorov's Distribution". Journal of Statistical Software. 8 (18): 1–4. doi:10.18637/jss.v008.i18.
- ^ a b Kolmogorov A (1933). "Sulla determinazione empirica di una legge di distribuzione". G. Ist. Ital. Attuari. 4: 83–91.
- ^ Smirnov N (1948). "Table for estimating the goodness of fit of empirical distributions". Annals of Mathematical Statistics. 19 (2): 279–281. doi:10.1214/aoms/1177730256.
- ^ Vrbik, Jan (2018). "Small-Sample Corrections to Kolmogorov–Smirnov Test Statistic". Pioneer Journal of Theoretical and Applied Statistics. 15 (1–2): 15–23.
- ^ a b Simard R, L'Ecuyer P (2011). "Computing the Two-Sided Kolmogorov–Smirnov Distribution". Journal of Statistical Software. 39 (11): 1–18. doi:10.18637/jss.v039.i11.
- ^ Moscovich A, Nadler B (2017). "Fast calculation of boundary crossing probabilities for Poisson processes". Statistics and Probability Letters. 123: 177–182. arXiv:1503.04363. doi:10.1016/j.spl.2016.11.027. S2CID 12868694.
- ^ a b c Dimitrova DS, Kaishev VK, Tan S (2020). "Computing the Kolmogorov–Smirnov Distribution when the Underlying cdf is Purely Discrete, Mixed or Continuous". Journal of Statistical Software. 95 (10): 1–42. doi:10.18637/jss.v095.i10.
- ^ a b c Dimitrova, Dimitrina; Yun, Jia; Kaishev, Vladimir; Tan, Senren (21 Mei 2024). "KSgeneral: KSgeneral: Computing P-Values of the One-Sample K-S Test and the Two-Sample K-S and Kuiper Tests for (Dis)Continuous Null Distribution". CRAN.R-project.org/package=KSgeneral.
- ^ Pearson, E. S.; Hartley, H. O., ed. (1972). Biometrika Tables for Statisticians. Vol. 2. Cambridge University Press. hlm. 117–123, Tables 54, 55. ISBN 978-0-521-06937-3.
- ^ Shorack, Galen R.; Wellner, Jon A. (1986). Empirical Processes with Applications to Statistics. Wiley. hlm. 239. ISBN 978-0-471-86725-8.
- ^ Arnold, Taylor B.; Emerson, John W. (2011). "Nonparametric Goodness-of-Fit Tests for Discrete Null Distributions" (PDF). The R Journal. 3 (2): 34\[Dash]39. doi:10.32614/rj-2011-016.
- ^ "SAS/STAT(R) 14.1 User's Guide". support.sas.com. Diakses tanggal 14 April 2018.
- ^ "ksmirnov — Kolmogorov–Smirnov equality-of-distributions test" (PDF). stata.com. Diakses tanggal 14 April 2018.
- ^ Noether GE (1963). "Note on the Kolmogorov Statistic in the Discrete Case". Metrika. 7 (1): 115–116. doi:10.1007/bf02613966. S2CID 120687545.
- ^ Slakter MJ (1965). "A Comparison of the Pearson Chi-Square and Kolmogorov Goodness-of-Fit Tests with Respect to Validity". Journal of the American Statistical Association. 60 (311): 854–858. doi:10.2307/2283251. JSTOR 2283251.
- ^ Walsh JE (1963). "Bounded Probability Properties of Kolmogorov–Smirnov and Similar Statistics for Discrete Data". Annals of the Institute of Statistical Mathematics. 15 (1): 153–158. doi:10.1007/bf02865912. S2CID 122547015.
- ^ Eq. (15) in Section 3.3.1 of Knuth, D.E., The Art of Computer Programming, Volume 2 (Seminumerical Algorithms), 3rd Edition, Addison Wesley, Reading Mass, 1998.
- ^ Marozzi, Marco (2009). "Some Notes on the Location-Scale Cucconi Test". Journal of Nonparametric Statistics. 21 (5): 629–647. doi:10.1080/10485250902952435. S2CID 120038970.
- ^ Marozzi, Marco (2013). "Nonparametric Simultaneous Tests for Location and Scale Testing: a Comparison of Several Methods". Communications in Statistics – Simulation and Computation. 42 (6): 1298–1317. doi:10.1080/03610918.2012.665546. S2CID 28146102.
- ^ Monge, Marco (2023). "Two-Sample Kolmogorov-Smirnov Tests as Causality Tests. A narrative of Latin American inflation from 2020 to 2022". Revista Chilena de Economía y Sociedad. 17 (1): 68–78.
- ^ Justel, A.; Peña, D.; Zamar, R. (1997). "A multivariate Kolmogorov–Smirnov test of goodness of fit". Statistics & Probability Letters. 35 (3): 251–259. CiteSeerX 10.1.1.498.7631. doi:10.1016/S0167-7152(97)00020-5.
- ^ Peacock J.A. (1983). "Two-dimensional goodness-of-fit testing in astronomy". Monthly Notices of the Royal Astronomical Society. 202 (3): 615–627. Bibcode:1983MNRAS.202..615P. doi:10.1093/mnras/202.3.615.
- ^ Gosset E. (1987). "A three-dimensional extended Kolmogorov–Smirnov test as a useful tool in astronomy}". Astronomy and Astrophysics. 188 (1): 258–264. Bibcode:1987A&A...188..258G.
- ^ Fasano, G.; Franceschini, A. (1987). "A multidimensional version of the Kolmogorov–Smirnov test". Monthly Notices of the Royal Astronomical Society. 225: 155–170. Bibcode:1987MNRAS.225..155F. doi:10.1093/mnras/225.1.155. ISSN 0035-8711.
- ^ Lopes, R.H.C.; Reid, I.; Hobson, P.R. (23–27 April 2007). The two-dimensional Kolmogorov–Smirnov test (PDF). XI International Workshop on Advanced Computing and Analysis Techniques in Physics Research. Amsterdam, the Netherlands.
- ^ "scipy.stats.kstest". SciPy v1.7.1 Manual. The Scipy community. Diakses tanggal 26 Oktober 2021.
- ^ "KolmogorovSmirnovTest". Diakses tanggal 18 Juni 2019.
- ^ "New statistics nodes". Diakses tanggal 25 Juni 2020.
- ^ "Nonparametric tests · HypothesisTests.jl".
- ^ "ksmirnov — Kolmogorov –Smirnov equality-of-distributions test" (PDF). Diakses tanggal 18 Juni 2019.
- ^ "Kolmogorov–Smirnov Test for Normality Hypothesis Testing". Diakses tanggal 18 Juni 2019.
Bacaan lanjutan
sunting- Daniel, Wayne W. (1990). "Kolmogorov–Smirnov one-sample test". Applied Nonparametric Statistics (Edisi 2nd). Boston: PWS-Kent. hlm. 319–330. ISBN 978-0-534-91976-4.
- Eadie, W.T.; D. Drijard; F.E. James; M. Roos; B. Sadoulet (1971). Statistical Methods in Experimental Physics. Amsterdam: North-Holland. hlm. 269–271. ISBN 978-0-444-10117-4.
- Stuart, Alan; Ord, Keith; Arnold, Steven [F.] (1999). Classical Inference and the Linear Model. Kendall's Advanced Theory of Statistics. Vol. 2A (Edisi Sixth). London: Arnold. hlm. 25.37 – 25.43. ISBN 978-0-340-66230-4. MR 1687411.
- Corder, G. W.; Foreman, D. I. (2014). Nonparametric Statistics: A Step-by-Step Approach. Wiley. ISBN 978-1-118-84031-3.
- Stephens, M. A. (1979). "Test of fit for the logistic distribution based on the empirical distribution function". Biometrika. 66 (3): 591–595. doi:10.1093/biomet/66.3.591.
- Kesemen, O.; Tiryaki, B.K.; Tezel, Ö.; Özkul, E. (2021). "A new goodness of fit test for multivariate normality". Hacettepe Journal of Mathematics and Statistics. 50 (3): 872–894. doi:10.15672/hujms.644516.
Pranala luar
sunting- Hazewinkel, Michiel, ed. (2001) [1994]. "Kolmogorov–Smirnov test". Encyclopedia of Mathematics. Springer Science+Business Media B.V. / Kluwer Academic Publishers. ISBN 978-1-55608-010-4.
- Short introduction
- KS test explanation
- JavaScript implementation of one- and two-sided tests
- Online calculator with the KS test
- Open-source C++ code to compute the Kolmogorov distribution and perform the KS test
- Paper on Evaluating Kolmogorov's Distribution; contains C implementation. This is the method used in Matlab.
- Paper on Computing the Two-Sided Kolmogorov–Smirnov Distribution; computing the cdf of the KS statistic in C or Java.
- Paper powerlaw: A Python Package for Analysis of Heavy-Tailed Distributions; Jeff Alstott, Ed Bullmore, Dietmar Plenz. Among others, it also performs the Kolmogorov–Smirnov test. Source code and installers of powerlaw package are available at PyPi.