Прочитал заметку от Spotify -
Choosing a Sequential Testing Framework — Comparisons and DiscussionsРассматривают различные подходы для непрерывного тестирования в А/Б тестах, то-есть когда можно подглядывать, их плюсы и минусы
Group sequential testsПлюсы: подход с alpha-spending функцией, которая тратится, только когда мы проверяем результаты, позволяет принимать решение, готовые ли мы сейчас подглядывать или лучше подождем. Если не подсматривать - тест сходится до традиционного z-test.
Легко объяснить - по факту z-test.
Минусы: нужно знать предельное количество данных, которое мы можем собрать, если что то пойдет не так в обе стороны, то тест может иметь как заниженный, так и завышенный false positive rate
Нужно выбирать alpha-spending, если мы заранее знаем сколько данных, то это не проблема, а если не знаем - underpower
Подглядывать можно не более пары сотен раз
Заметка для себя: Надо посмотреть пересекается ли как то с этим -
Increase A/B Testing Power by Combining Experiments & Weighted Z-testAlways valid inference - куда входит любимый нами mSPRT The Mixture Sequential Probability Ratio Test
Плюсы: Легко воплотить
Можно сколько удобно данных скормить и не нужно знать размер данных заранее
Можно задать любое правило для остановки
Работает как с батчами так и со стримингом (в отличии от пункта выше)
Минусы: Нужно описывать параметры распределения для успеха, как некоторую смесь распределений
Тяжелее понять для челов, которые не понимают
Underpowered если батч а не стриминг, потому что обновляются данные сразу куском, а не по итерации
Заметка для себя: - Давно такой лажи надуманной я не читал, челы сразу сказали в начале статьи, что выбирают GST и начали выдумывать какие-то дурацкие причины почему mSPRT плох. Ну то есть, да, есть некоторая смесь распределений, но даже смесь распределений это распределение, на практике мы всегда делаем какое-то допущение, это в принципе тоже самое как задавание MDE, которые мы хотим поймать. То, что кому-то тяжелее это понять, удивительная причина, там все довольно просто на пальцах показать, для многих будет даже проще z-testа, ну а то - что underpowered для батчей - вообще ерунда. Кто вам мешает взять батч и прогнать его последовательно как будто это стриминг, ведь timestamp для каждого события есть, а обновление - это операция умножения двух циферок, то есть по факту вы это итак делаете с батчем, просто докинуть один sort
Bonferroni corrections - куда-же без нее
Плюсы - легко закодить
Минусы - заранее решаем сколько раз будем подсматривать
Если подсматривать много раз, скорее всего ничего не найдем
Проверили эти подходы на симуляции
Bounded false positive rate - держится у всех
GST всех побил по чувствительности на батчах, правда на стриминге он просто не работает и пойди тут сравни теперь, судя по всему mSPRT они не обработали в батчах через таймстемпы и должного сравнения мы не получим (если только их графики батча и стрима это не один и те-же данные, тогда худо бедно можно сравнить Можно пойти и
посмотреть код - оставляю это на вашу совесть, код написан в R)
Описали свои выводы - что и когда брать. В целом читать можно и нужно, но с осторожностью
#ArticleReview