Тест Колмогорова-Смирнова в R (с примерами)


Тест Колмогорова-Смирнова используется для проверки того, происходит ли выборка из определенного распределения.

Чтобы выполнить одновыборочный или двухвыборочный тест Колмогорова-Смирнова в R, мы можем использовать функцию ks.test() .

В этом руководстве показан пример использования этой функции на практике.

Пример 1: Одновыборочный критерий Колмогорова-Смирнова

Предположим, у нас есть следующие образцы данных:

#make this example reproducible
seed(0)

#generate dataset of 100 values that follow a Poisson distribution with mean=5
data <- rpois(n= 20 , lambda= 5 )

Связанный: Руководство по dpois, ppois, qpois и rpois в R

В следующем коде показано, как выполнить тест Колмогорова-Смирнова для этой выборки из 100 значений данных, чтобы определить, является ли она результатом нормального распределения:

#perform Kolmogorov-Smirnov test
ks.test(data, " pnorm ")

 One-sample Kolmogorov-Smirnov test

data: data
D = 0.97725, p-value < 2.2e-16
alternative hypothesis: two-sided

Из вывода мы видим, что статистика теста равна 0,97725 , а соответствующее значение p равно 2,2e-16.Поскольку p-значение меньше 0,05, мы отвергаем нулевую гипотезу. У нас есть достаточно доказательств, чтобы сказать, что данные выборки не имеют нормального распределения.

Этот результат не должен вызывать удивления, поскольку мы сгенерировали выборочные данные с помощью функции rpois() , которая генерирует случайные значения, соответствующиераспределению Пуассона .

Пример 2. Двухвыборочный критерий Колмогорова-Смирнова

Предположим, у нас есть следующие два примера набора данных:

#make this example reproducible
seed(0)

#generate two datasets
data1 <- rpois(n= 20 , lambda= 5 )
data2 <- rnorm( 100 )

В следующем коде показано, как выполнить тест Колмогорова-Смирнова для этих двух образцов, чтобы определить, получены ли они из одного и того же дистрибутива:

#perform Kolmogorov-Smirnov test
ks.test(data1, data2)

 Two-sample Kolmogorov-Smirnov test

data: data1 and data2
D = 0.99, p-value = 1.299e-14
alternative hypothesis: two-sided

Из вывода мы видим, что статистика теста равна 0,99 , а соответствующее значение p равно 1,299e-14.Поскольку p-значение меньше 0,05, мы отвергаем нулевую гипотезу. У нас есть достаточно доказательств, чтобы сказать, что два выборочных набора данных не происходят из одного и того же распределения.

Этот результат также не должен вызывать удивления, поскольку мы сгенерировали значения для первой выборки, используя распределение Пуассона, и значения для второй выборки, используя нормальное распределение .

Дополнительные ресурсы

Как выполнить тест Шапиро-Уилка в R
Как выполнить тест Андерсона-Дарлинга в R
Как выполнять многомерные тесты на нормальность в R