Колмогоров-Смирнов с дискретными данными: Как правильно использовать dgof :: ks.test в R?

24

Вопросы для начинающих:

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

Коновер ( Практическая непараметрическая статистика , 3d), кажется, говорит, что для этой цели можно использовать тест Колмогорова-Смирнова, но его поведение «консервативно» с дискретными распределениями, и я не уверен, что это значит здесь.

Комментарий DavidR к другому вопросу гласит: «... Вы все еще можете сделать тест уровня α на основе статистики KS, но вам нужно будет найти какой-то другой метод для получения критического значения, например, с помощью моделирования».

Версия ks.test () в пакете dgof R ( статья , кран ) добавляет некоторые возможности, отсутствующие в версии ks.test () по умолчанию в пакете статистики. Среди прочего, dgof :: ks.test включает в себя этот параметр:

simulate.p.value: логическое указание, следует ли вычислять p-значения с помощью симуляции Монте-Карло, только для дискретных тестов на соответствие.

Является ли цель simulate.p.value = T для достижения того, что предлагает DavidR?

Даже если это так, я не уверен, смогу ли я действительно использовать dgof :: ks.test для теста с двумя примерами. Похоже, что он обеспечивает только два образца теста для непрерывного распределения:

Если y является числовым, выполняется проверка двух выборок нулевой гипотезы о том, что x и y были взяты из одного и того же непрерывного распределения.

В качестве альтернативы, y может быть строкой символов, называющей непрерывную (накопительную) функцию распределения (или такую ​​функцию), или функцией ecdf (или объектом класса stepfun), дающей дискретное распределение. В этих случаях выполняется однократный тест на то, что функция распределения, сгенерировавшая x, является распределением y ....

(Общие сведения: строго говоря, мои базовые распределения являются непрерывными, но данные, как правило, лежат очень близко к горстке точек. Каждая точка является результатом моделирования и представляет собой среднее из 10 или 20 действительных чисел от -1 до 1. К концу симуляции эти числа почти всегда очень близки к 0,9 или -9. Таким образом, средства группируются вокруг нескольких значений, и я отношусь к ним как к дискретным. Симуляция сложна, и у меня нет есть основания полагать, что данные следуют общеизвестному распространению.)

Совет?

Марс
источник
Я просто заметил , комментарий доктора Джи здесь что говорит о том , что ks.boot является то , что мне нужно, но я до сих пор интересно , будет ли dgof :: ks.test ВЫБОРУ моделирование работы, и какие «convervative» означает.
Марс

Ответы:

16

Это ответ на расширение @jbrucks (но также и оригинал).

Один общий тест на то, происходят ли 2 образца из одной популяции / распределения или есть ли разница, - это тест на перестановку. Выберите статистику, представляющую интерес, это может быть статистика теста KS или разница средних значений или разница медиан или соотношение отклонений или ... (что бы ни было наиболее значимым для вашего вопроса, вы могли бы провести симуляции в вероятных условиях, чтобы увидеть какая статистика даст вам лучшие результаты) и вычислите эту статистику на исходных 2 выборках. Затем вы случайным образом переставляете наблюдения между группами (группируете все точки данных в один большой пул, затем случайным образом разделяете их на 2 группы того же размера, что и исходные выборки) и вычисляете интересующую статистику по переставленным выборкам. Повторите это несколько раз, распределение выборочной статистики формирует ваше нулевое распределение, и вы сравниваете исходную статистику с этим распределением, чтобы сформировать тест. Обратите внимание, что нулевая гипотеза состоит в том, что распределения идентичны, а не только означает / медиана / и т.д. равны.

Если вы не хотите предполагать, что распределения идентичны, но хотите проверить разницу в средствах / медианах / и т.д. тогда вы могли бы сделать начальную загрузку.

Если вы знаете, из какого распределения поступают данные (или, по крайней мере, хотите принять распределение), тогда вы можете выполнить тест отношения правдоподобия на равенство параметров (сравните модель с одним набором параметров в обеих группах с моделью). с отдельными наборами параметров). Тест отношения правдоподобия обычно использует распределение хи-квадрат, которое хорошо во многих случаях (асимтотика), но если вы используете выборки небольшого размера или тестируете параметр вблизи его границы (например, дисперсия равна 0), тогда аппроксимация может быть хорошо, вы могли бы снова использовать тест перестановки, чтобы получить лучшее нулевое распределение.

Все эти тесты работают как с непрерывным, так и с дискретным распределением. Вы также должны включить некоторую меру мощности или доверительный интервал, чтобы указать степень неопределенности, отсутствие значимости может быть связано с низкой мощностью, или статистически значимая разница все еще может быть практически бессмысленной.

Грег Сноу
источник
Грег, спасибо. Это очень полезный общий ответ на вопрос jbruck, и это также полезно для меня. (Мои вопросы были более конкретными. Возможно, слишком узкими, чтобы ожидать ответов.)
Марс
1
@ Марс, я думаю, что мой ответ косвенно отвечает, по крайней мере, на часть твоего. Обычный тест KS не предполагает никаких связей и использует теоретическую модель для статистики теста при нулевой гипотезе. В случае связей теоретическая модель не является точной, но вместо этого вы можете использовать симуляцию (тест перестановки, симуляция из нулевого dist и т. Д.), Чтобы вычислить нулевое распределение и, следовательно, получить p-значение и т. Д. Я думаю, что это то, что симулирует аргумент, который вы упоминаете
Грег Сноу