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

Я получил два образца с разных сайтов. Параметр, который меня интересует, является дискретным (частоты). Я сделал моделирование для обоих сайтов, поэтому я знаю вероятности случайного распределения для каждого сайта. Из-за моего моделирования я знаю, что отклонение моего параметра от его среднего обычно не распределяется, поэтому я пошел на параметрический тест. Я проверил с одним образцом Колмогорова-Смирнова, могут ли образцы быть получены из этих случайных распределений (например, данные, а не real):

sample1 <- rep(1:5, c(25, 12, 12, 0, 1))
rand.prob1 <- c(.51, .28, .111, .08, 0.019)
StepProb1 <- stepfun(0:4, c(0, cumsum(rand.prob1)), right = T)
dgof::ks.test(sample1, StepProb1)

sample2 <- rep(1:5, c(19, 13, 10, 5, 3))
rand.prob2 <- c(.61, .18, .14, .05, 0.02)
StepProb2 <- stepfun(0:4, c(0, cumsum(rand.prob2)), right = T)
dgof::ks.test(sample2, StepProb2)

на следующем шаге я хочу проверить, могут ли образцы обоих сайтов быть получены из одного и того же дистрибутива. Как implemetations КС-тест (пакеты stats и dgof) вынести предупреждение, потому что мои образцы имеют связи:

stats::ks.test(sample1, sample2)
dgof::ks.test(sample1, sample2)

если я правильно понял Дюфур и Фархат (2001) правильно, есть способ рассчитать точные p-значения через разрыв связей с помощью моделирования Монте-Карло. И если я понимаю описание пакета dgof пакет правильно, его реализация моделирования Монте-Карло работает только для теста с одним образцом.

Итак, мой вопрос: кто-нибудь знает, как вычислить точные p-значения в R Для теста Колмогорова-Смирнова с двумя выборками, применяемого к дискретной переменной, когда существуют связи?

или альтернативно (хотя и не связано конкретно с R): Если никто не знает, как это сделать с допустимой рабочей нагрузкой, я бы пошел на нескорректированные p-значения и, как следствие, тщательно обсудил результаты. Но с P-значения меньше 0.0001. На самом деле меня это не слишком беспокоит. Но откуда мне знать?.. Как вы думаете, это правильно или я делаю серьезную ошибку в этом случае?

спасибо заранее, я уже ценю, что вы читали до сих пор.

2 ответов


Как упоминалось в комментарии,функции ks.boot пакета, соответствующего реализует Бутстрап Колмогорова-Смирнова, Т. е. моделирование Монте-Карло для произвольного числа повторных выборок с


не знаю, можете ли вы применить KS здесь вообще.
Колмогоров-Смирнов - это NON-параметрический тест и работает только для непрерывных данных x и y. Я думаю, что ваши sample1 и sample2 не являются непрерывными "достаточно". Цитата ?stats::ks.test

если y-числовой, два образца проверка нулевой гипотезы, что X и y были взяты из одного и того же непрерывного распределения.

Также см.:

решение: попробуйте выполнить тест на Хи-Квадрат
в R для этого ?chisq.test.
Теории можно найти, например, здесь: