Тести A / B, які просто тестують повторно на одних і тих же даних із фіксованим рівнем помилки типу-1 ( ), є принциповими помилками. Принаймні дві причини, чому це так. По-перше, повторні тести співвідносяться, але тести проводяться незалежно. По-друге, фіксований не враховує багаторазово проведені тести, що призводять до інфляції помилок типу 1.αα
Щоб побачити перше, припустіть, що при кожному новому спостереженні ви проводите нове випробування. Очевидно, що будь-яке два наступних p-значення буде співвіднесено, оскільки випадків не змінилися між двома тестами. Отже, ми бачимо тенденцію в сюжеті @ Бернхарда, що демонструє цю кореляцію p-значень.n−1
Щоб побачити друге, зазначимо, що навіть коли тести незалежні, ймовірність наявності р-значення нижче зростає із кількістю тестів де дорівнює подія помилково відхиленої нульової гіпотези. Таким чином, ймовірність отримати хоча б один позитивний результат тесту суперечить коли ви неодноразово проводили а / б тест. Якщо ви просто зупинитесь після першого позитивного результату, ви лише покажете правильність цієї формули. Інакше кажучи, навіть якщо нульова гіпотеза справжня, ви її в остаточному підсумку відкинете. Таким чином, тест a / b є остаточним способом пошуку ефектів там, де таких немає.αt
P(A)=1−(1−α)t,
A1
Оскільки в цій ситуації одночасно утримуються кореляційність і багаторазове тестування, p-значення тесту залежить від p-значення . Тож якщо ви нарешті досягнете , ви, швидше за все, залишитесь у цьому регіоні на деякий час. Ви також можете побачити це в сюжеті @ Бернхарда в районі від 2500 до 3500 та 4000 до 5000.t+1tp<α
Багаторазове тестування per-se є законним, але тестування на фіксовану - ні. Існує багато процедур, які стосуються як процедури багаторазового тестування, так і корельованих тестів. Одне сімейство тестових виправлень називається сімейним контролем швидкості помилок . Що вони роблять, це запевнятиα
P(A)≤α.
Напевно, найвідоміша поправка (завдяки своїй простоті) - Bonferroni. Тут ми встановлюємо для якого легко можна показати, що якщо кількість незалежних тестів велика. Якщо тести співвідносяться, швидше за все, це консервативно, . Тож найпростішим коригуванням ви можете поділити рівень альфа- на кількість тестів, які ви вже зробили.P ( A ) ≈ α P ( A ) < α 0,05
αadj=α/t,
P(A)≈αP(A)<α0.05
Якщо ми застосуємо Бонферроні до моделювання @ Бернхарда і масштаб до інтервалу на осі у, знайдемо графік нижче. Для наочності я припустив, що ми не тестуємося після кожного перевертання монети (проби), а лише кожну соту. Чорна пунктирна лінія є стандартною відрізаною, а червона пунктирна - коригуванням Бонферроні.α = 0,05(0,0.1)α=0.05
Як ми бачимо, коригування є дуже ефективним і демонструє, наскільки радикально нам потрібно змінити значення p, щоб контролювати рівень помилок сімейного рівня. Зокрема, зараз ми не знаходимо жодного істотного тесту, як це має бути, оскільки нульова гіпотеза @ Берхарда правдива.
Зробивши це, зазначимо, що Бонферроні дуже консервативний у цій ситуації завдяки корельованим тестам. Існують вищі тести, які будуть кориснішими в цій ситуації в сенсі наявності , наприклад, тест на перестановку . Крім того, про тестування можна сказати набагато більше, ніж просто звернутися до Бонферроні (наприклад, шукати помилковий показник виявлення та пов'язані з ним баєсовські методи). Тим не менш, це відповідає на ваші запитання з мінімальною кількістю математики.P(A)≈α
Ось код:
set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)
p.values <- numeric(n)
for (i in 5:n){
p.values[i] <- binom.test(table(toss[1:i]))$p.value
}
p.values = p.values[-(1:6)]
plot(p.values[seq(1, length(p.values), 100)], type="l", ylim=c(0,0.1),ylab='p-values')
abline(h=0.05, lty="dashed")
abline(v=0)
abline(h=0)
curve(0.05/x,add=TRUE, col="red", lty="dashed")