Чому неправильно зупиняти тест A / B до досягнення оптимального розміру вибірки?


13

Я відповідаю за те, щоб представити результати моїх / тестових робіт (на веб-сайтах) у моїй компанії. Ми проводимо тест протягом місяця, а потім перевіряємо р-значення через рівні проміжки часу, поки не досягнемо значущості (або відмовляємося, якщо значущість не буде досягнута після тривалого запуску тесту), те, що я зараз з’ясовую, є помилковою практикою .

Я хочу зараз припинити цю практику, але щоб це зробити, я хочу зрозуміти, ЧОМУ це неправильно. Я розумію, що розмір ефекту, розмір вибірки (N), критерій значущості альфа (α) та статистична потужність, або обрана або мається на увазі бета (β) математично пов'язані. Але що саме змінюється, коли ми зупиняємо тест перед тим, як досягти необхідного розміру вибірки?

Я прочитав тут кілька дописів (а саме це , це та це ), і вони говорять мені, що мої оцінки будуть упередженими, а частота моєї помилки типу 1 різко зростає. Але як це відбувається? Я шукаю математичне пояснення , яке б чітко показало вплив розміру вибірки на результати. Я здогадуюсь, що це має відношення до взаємозв'язків між факторами, про які я згадував вище, але я не зміг з’ясувати точні формули та розробити їх самостійно.

Наприклад, передчасне припинення випробування збільшує рівень помилок типу 1. Добре. Але чому? Що відбувається для підвищення рівня помилок типу 1? Тут мені не вистачає інтуїції.

Допоможіть, будь ласка.


1
може бути корисним evanmiller.org/how-not-to-run-an-ab-test.html
seanv507

1
Так, я пройшов це посилання, але я просто не зрозумів наведеного прикладу.
sgk

вибачте Гопалакришнан - не бачив, що ваша перша посилання вже вказувала на це.
seanv507

1
Чи можете ви пояснити, чого ви не розумієте. Математика / інтуїція здається досить зрозумілою: її не стільки зупиняють перед необхідним розміром вибірки, скільки разів перевіряють. , тому ви не можете використовувати тест, призначений для одноразових перевірок кілька разів. P(i1Nxi>θ)P(xN>θ)
seanv507

@GopalakrishnanShanker Математичне пояснення, дане у моїй відповіді
tomka

Відповіді:


4

Тести A / B, які просто тестують повторно на одних і тих же даних із фіксованим рівнем помилки типу-1 ( ), є принциповими помилками. Принаймні дві причини, чому це так. По-перше, повторні тести співвідносяться, але тести проводяться незалежно. По-друге, фіксований не враховує багаторазово проведені тести, що призводять до інфляції помилок типу 1.αα

Щоб побачити перше, припустіть, що при кожному новому спостереженні ви проводите нове випробування. Очевидно, що будь-яке два наступних p-значення буде співвіднесено, оскільки випадків не змінилися між двома тестами. Отже, ми бачимо тенденцію в сюжеті @ Бернхарда, що демонструє цю кореляцію p-значень.n1

Щоб побачити друге, зазначимо, що навіть коли тести незалежні, ймовірність наявності р-значення нижче зростає із кількістю тестів де дорівнює подія помилково відхиленої нульової гіпотези. Таким чином, ймовірність отримати хоча б один позитивний результат тесту суперечить коли ви неодноразово проводили а / б тест. Якщо ви просто зупинитесь після першого позитивного результату, ви лише покажете правильність цієї формули. Інакше кажучи, навіть якщо нульова гіпотеза справжня, ви її в остаточному підсумку відкинете. Таким чином, тест 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")

2
Це працює для мене. Мені доведеться перекласти це на бізнес-розмови, щоб зараз зрозуміти моїх старших, але це моя проблема. Дуже дякую
sgk

8

Якщо нульова гіпотеза вірна, то люди часто очікують, що значення р дуже велике. Це не правда. Якщо нульова гіпотеза істинна, то р - це одноформально розподілена випадкова величина. Це означає, що час від часу буде нижче 0,05 випадковим чином. Якщо ви подивитеся на багато різних підпроборів, іноді значення р буде нижче 0,05.

Щоб зробити це легше зрозуміти, ось невелике моделювання в R:

Це кине монету в 10000 разів, і ми знаємо, це справедлива монета:

set.seed(1)
n=10000
toss <- sample(1:2, n, TRUE)

Починаючи з 5-го кидання, це виконує біноміальний тест на справедливість після кожного жеребкування та збереже значення p:

p.values <- numeric(n)
for (i in 5:n){
     p.values[i] <- binom.test(table(toss[1:i]))$p.value
}

І це будуватиме значення p одна за одною:

plot(p.values, type="l")
abline(h=0.05)

введіть тут опис зображення

Як бачимо, значення р кілька разів опускається нижче 0,05, щоб відновитись і, нарешті, значно вище p = 0,05. Якби ми припинили випробування будь-коли, коли р був "значущим", ми б дійшли неправильного висновку. Можна стверджувати: "У нас є вибірка приблизно за 4000 випробувань в iid, і p було нижче .05. Звичайно, ми можемо припинити вибірку далі". Чим частіше ви перевіряєте р-значення, тим більше шансів на те, щоб перевірити випадковий спад. У цьому випадку ми генерували дані під і знаємо, що - це правда.H 0H0H0

(Просто щоб бути ідеально відкритим, я спробував кілька генераторів для генератора чисел, перш ніж це було зрозуміло, як цей приклад, але це справедливо для навчальних цілей. Якщо ви Rвстановили та працюєте, ви можете легко пограти з числами .)


Дякуємо за простий експеримент. Але скажіть, що я зупинив тест на одному такому етапі (коли р-значення <0,05), що означатимуть мої результати? (крім того, що це неправильно). Чи можна мені компенсувати зменшення порогу значення p?
sgk

+1 Зверніть увагу на співвіднесені тести та пов'язану з ними проблему з декількома тестами. Дивіться мою розширену відповідь із параметрами налаштування нижче на основі вашого (дуже хорошого) прикладу.
tomka

Ви не можете повністю компенсувати це, зменшивши поріг значення p . Вибір - це завжди компроміс в області конфлікту між помилкою I типу та помилкою II типу, також відомою як помилка альфа та бета-помилка. Звичайно, ви можете компенсувати одну з них повністю або за кожну з них частково, але нарешті цей конфлікт стає все складніше, чим частіше ви випробовуєте. Я читав, що баянці стверджують, що у них менше проблем з цим, але, маючи незначні знання, я думаю, що це стосується лише моделювання віри у цінність статистики, а не у рішення "так / ні". ααα
Бернхард

Моя головна думка полягає у контролі над рівнем помилок сімейної помилки (FWER) або частоті помилкових виявлень (FDR), як помилка націлювання типу 1. Контроль помилки типу 2 є меншою проблемою в / b тестах через зазвичай дуже великих зразків.
tomka

@GopalakrishnanShanker, якщо ви зупинилися на першому це означає, що у вас помилковий позитив. Дивіться відповідь нижче, також для коригуванняp=0.05
tomka
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.