Тест Колмогорова-Смирнова: точные 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 были взяты из одного и того же непрерывного распределения.
Также см.:
- https://stats.stackexchange.com/questions/1047/is-kolmogorov-smirnov-test-valid-with-discrete-distributions
- http://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test
решение: попробуйте выполнить тест на Хи-Квадрат
в R
для этого ?chisq.test
.
Теории можно найти, например, здесь: