Пригодность для очень больших размеров выборки


12

Я собираю очень большие выборки (> 1 000 000) категориальных данных каждый день и хочу, чтобы данные выглядели «существенно» по-разному в разные дни, чтобы обнаружить ошибки в сборе данных.

Я подумал, что для этого пригодится тест на пригодность (в частности, G-тест). Ожидаемое распределение дается распределением предыдущего дня.

Но, поскольку мои размеры выборки очень велики, тест имеет очень высокую мощность и дает много ложных срабатываний. То есть даже очень незначительное дневное колебание даст почти нулевое значение р.

Я закончил тем, что умножил свою статистику теста на некоторую константу (0,001), что хорошо интерпретирует выборку данных с такой скоростью. Эта статья, похоже, согласна с таким подходом. Они говорят, что:

Квадрат Ци является наиболее надежным с выборками от примерно 100 до 2500 человек

Я ищу более авторитетные комментарии по этому поводу. Или, возможно, некоторые альтернативные решения ложных срабатываний при выполнении статистических тестов на больших наборах данных.


3
Это хороший вопрос. Однако для вашего специального подхода нет объективно обоснованной основы . Это не значит, что он будет работать плохо, но настоятельно рекомендует, что есть лучшие процедуры. Чтобы найти их, было бы полезно, если бы вы могли отредактировать этот вопрос, чтобы объяснить, какие ошибки вы пытаетесь идентифицировать, в том числе, насколько они велики, сколько их может произойти, и каковы последствия того, что определить некоторые из ошибок и (б) пометить правильные данные как ошибки.
whuber

2
С математической точки зрения, тест на пригодность с очень большим отлично подходит - просто соответствующая нулевая гипотеза не очень интересна: почему вы хотите задать вопрос «да / нет», когда можете получить ответ "сколько"? В вашем случае на ежедневной основе вы можете оценить изменение пропорции для каждой категории, добавить доверительный интервал для каждой и посмотреть, не достигают ли они предопределенной области допуска около 0.n
Michael M

Использование вами таких терминов, как «значительный» и «ложноположительный», кажется, противоречит статистическому значению этих терминов, особенно если вы делаете тест правильно *. Я предлагаю вам избегать этих терминов, если вы не используете их строго в техническом смысле. Ваша основная проблема заключается в использовании тестов гипотез в ситуациях, когда это может не иметь смысла; простым, нетехническим, английским, что вас интересует? * (в частности, использование предыдущего дня в качестве «совокупности»
неверно

Ответы:


4

Тест возвращает правильный результат. Распределения не совпадают изо дня в день. Это, конечно, бесполезно для вас. Проблема, с которой вы сталкиваетесь, давно известна. См .: Карл Пирсон и Р.А. Фишер о статистических тестах: обмен 1935 года с натуры

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


4

Давайте идти вперед и убить священную корову на 5%.

Вы (правильно) указали, что проблема заключается в чрезмерной силе теста. Возможно, вы захотите перекалибровать его в сторону более релевантной силы, как, например, более традиционное значение 80%:

  1. Определите размер эффекта, который вы хотите обнаружить (например, смещение 0,2%)
  2. Определитесь с мощностью, которая достаточно хороша для вас, чтобы она не была подавлена ​​(например,1β=80%)
  3. Вернитесь к существующей теории теста Пирсона, чтобы определить уровень, который сделает ваш тест практическим.

Предположим, у вас есть 5 категорий с равными вероятностями, , и ваша альтернатива - . Таким образом, для , . Асимптотическое распределение является нецентральным хи-квадратом с (# category-1) = 4 df и параметром нецентральности При этом большое значение , это достаточно близко к . 80% -й коэффициент равенp + δ / p1=p2=p3=p4=p5=0.2p+δ/n=(0.198,0.202,0.2,0.2,0.2)n=106δ=(2,+2,0,0,0)k=

λ=jδj2/pj=4/0.2+4/0.2=40
λ44 + 13 Ф - 1 ( 0,8 ) = 44 + 13 0,84 = 54,91 χ 2 4 Р г ö б [ χ 2 4 > 54.91 ] = 3,3 10 - 11N(μ=λ+k=44,σ2=2(k+2λ)=168)44+13Φ1(0.8)=44+130.84=54.91, Следовательно, желаемый уровень теста - обратный хвост cdf из из 54.91: Так что это будет уровень, который вы должны Рассмотрите возможность тестирования ваших данных, чтобы они могли на 80% обнаружить разницу в 0,2%.χ42
Prob[χ42>54.91]=3.31011

(Пожалуйста, проверьте мою математику, это нелепый уровень теста, но это то, что вы хотели с вашими большими данными, не так ли? С другой стороны, если вы регулярно видите Pearson в диапазоне пары сто, это может быть совершенно значимым критическим значением для развлечения.)χ2

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


2

В этих случаях мой профессор предложил вычислить V Крамера, который является мерой ассоциации, основанной на статистике хи-квадрат. Это должно дать вам силы и помочь вам решить, является ли тест гиперчувствительным. Но я не уверен, что вы можете использовать V с той статистикой, которую возвращают тесты G2.

Это должна быть формула для V:

ϕc=χ2n(k1)

где - общий итог наблюдений, а - количество строк или столбцов, в зависимости от того, что меньше. Или для проверки пригодности, по-видимому, нет. рядов.к кnkk


0

Один из подходов состоит в том, чтобы сделать тесты соответствия пригодности более значимыми, выполняя их на меньших блоках данных.

Вы можете разделить ваши данные за определенный день, например, на 1000 блоков по 1000 выборок в каждом, и выполнить отдельный тест на соответствие требованиям для каждого блока с ожидаемым распределением, заданным полным набором данных за предыдущий день. Сохраняйте уровень значимости для каждого отдельного теста на том уровне, который вы использовали (например, ). Затем найдите существенные отклонения общего количества положительных тестов от ожидаемого количества ложных срабатываний (при нулевой гипотезе о том, что нет различий в распределениях, общее количество положительных тестов распределено биномиально, с параметром ).αα=0.05α

Вы можете найти хороший размер блока для использования, взяв наборы данных за два дня, где вы можете предположить, что распределение было одинаковым, и посмотреть, какой размер блока дает частоту положительных тестов, примерно равную (то есть, какой размер блока останавливается ваш тест от сообщения о ложных различиях).α


Не могли бы вы пояснить, в каком смысле этот подход будет «более значимым»?
whuber

Это статистическая значимость против реальной значимости. При использовании 10 ^ 3 вместо 10 ^ 6 выборок мощность одного теста намеренно уменьшается, поэтому отклонение нулевой гипотезы будет, как правило, соответствовать большому несоответствию. Это делает результат одного теста более значимым, потому что OP не заботится о «незначительных ежедневных колебаниях». Для 10 ^ 6 выборок тест всегда может отклонять H0 из-за незначительных различий, поэтому неясно, представляет ли результат теста значимую информацию.
CJ Stoneking

1
Спасибо: ваш комментарий поднимает интересные и важные вопросы, которые начинают затрагивать то, что я считаю реальным основным вопросом; а именно, как следует измерять различия между данными для выявления ошибок и насколько велика разница? Хотя ваш ответ может быть уместным в некоторых обстоятельствах, кажется маловероятным, что он эффективно обнаружит многие виды ошибок, которые могут возникнуть в данных, а также оставит открытым (естественный) вопрос о том, какой размер блоков данных следует использовать.
whuber

@whuber, можно ли переопределить проблему таким образом, чтобы нулевое значение и его отклонение были инвариантными по размеру данных, но искали какое-то качественное представление?
Васс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.