Тонкости A/B тестирования: проблема подглядывания | Вебинар Анатолия Карпова | karpov.courses
Vložit
- čas přidán 24. 08. 2024
- Курс «Аналитик данных»: bit.ly/3rWZ8je
В погоне за более быстрой проверкой продуктовых гипотез легко допустить серию ошибок в организации A/B тестов. Если мы очень торопимся провести эксперимент и готовы завершить его при первой же возможности, будьте готовы, что увеличивается риск ложного срабатывания. Как этого избежать? Обсудим на вебинаре.
● Поэкспериментировать с симуляцией A/B теста и проблемой подглядывания в Jupyter Notebook: cutt.ly/Rvk8zo8
● Поиграть с калькулятором для размера выборки: evanmiller.org/ab-testing/sample-size.html
● Посмотреть, как исследования без чёткого плана могут приводить к неверным интерпретациям на примере большой научной работы, проведённой в Дании и показавшей, что маски не очень-то и защищают от коронавируса: bit.ly/32iZeVx
● Прочесть комментарий Data Scientist'а Алексея Чернобровова, чтобы понять, что с ним [исследованием] не так: chernobrovov/posts/1276131569435778
Учитесь Data Science с нами: karpov.courses/
У меня такое чувство, что такая частота попаданий p-value под threshold в этих симуляциях связана с уж очень большим стандартным отклонением. И мне кажется, этот момент немного выпал из поля зрения, но снижение дисперсии в выборках является еще одним способом увеличения MDE.
отлично. можно с pValue сделать ряд оценок. 1. рассчитать дов. интервал. 2. сяитвть не по накоплкнным данным, в по усредненным pvalue на ежкдневных выборках. 3. усреднить pvalue в накоплкнных данных. оценить дов. интервалы pvalue
Большое спасибо за этот вебинар! Все по полочкам, как всегда)
Спасибо. Очень понятным языком)
Очень круто и интересно
Спасибо, Master...
Добрый день,
Когда можно ждать часть с продолжением про калькуляторы, мощность, как определить длину эксперимента?
Спасибо за курсы на степике и видео на CZcams
15 июня karpov.courses/webinar_anatoly
@@karpovcourses здравствуйте, а можно ссылку обновить?не работает(
Kruto, thanks a lot!
Евгений - большое спаcибо и за видео и за деланную работу по просвещению масс и погружению в ML
После 30ой минуты почувствовал себя крипово. Как словно фильм по Стивену Кингу) P-value в натуре под 0,05 а в реальности различий нет. Брр.
Вообще да, вопрос сделки) Я по большей части тесты в микробизнесе провожу, там P-value 0,05 нужно месяц ждать. И чисто по экономическому эффекту выгоднее повести 5 тестов за неделю пусть даже с P-value 0,2.
Анатолий и команда,
Большое спасибо за семинар.
Не могу поженить в голове два факта. Помогите, пожалуйса, разобраться.
1) В лекции мы видим, что pvalue ведет себя непредсказуемо. Может опускаться и понижаться.
2) С другой стороны, мы знаем, что выборочное среднее - это состоятельная оценка. Т.е. при увеличении размера выборки, оценка должна стремиться к реальной.
И в этом случае (если оценки в контрольной и тестовой группах стремятся к реальным) различия, как мне кажется, должны по мере проведения теста только усиливаться (и pvalue должен постоянно снижаться).
Где я ошибся в рассуждении?
Определение состоятельной оценки у тебя неправильное)
походу рандомайзер сломанный, как может каждый раз показывать различие когда его нет? это уже не проблема подглядывания
А где видео про разницу т теста, манна уитни и бутстрепа?
czcams.com/video/-zps6hm0nX8/video.html&ab_channel=Karpov.Courses
24:25 Ох уже эти профдеформация программиста, начинать подсчёт с нуля: "то есть 100 и 102: отличаются на 3 единицы"))
Это Монте Карло расчеты можно прерывать по достижении нужной сходимости, а тут совсем непонятно, как сходимость этих рядов работать будет…
Огонь
Хах) трейдинг на p-value)) посмеялся)
Кстати, насчёт долгих экспериментов, на адронном коллайдере долгие, не знаю сколько, но там до 5 сигм и разницы в величинах очень маленькие.
Ядерная физика - нормальное распределение, пожалуй, единств случай в природе
Очень интересно. Спасибо.
А если из А/В тестируемых в конце теста пуассоновским бутстрапом наделать семплов и многократно оценить различия, поможет?
Нет. Не помогло уж слишком изначально большая дисперсия задана.
import pandas as pd
import numpy as np
from scipy import stats
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
mu_control, sigma_control, n_control = 100, 20, 1000
mu_experiment, sigma_experiment, n_experiment = 100, 20, 1000
N = n_control #samples
B = 10 #bootstraps
def make_sample(original_sample, B, N, index):
np.random.seed(index)
new_sample = []
# samples = np.random.multinomial(B, [1/B]*B, N)[:, index]
samples = np.random.poisson(1, (N, B))[:, index]
for i in range(N):
if samples[i] != 0:
for j in range(samples[i]):
new_sample.append(original_sample[i])
return new_sample
np.random.seed()
daily_data_control = np.random.normal(mu_control, sigma_control, n_control)
daily_data_experiment = np.random.normal(mu_experiment, sigma_experiment, n_experiment)
p = []
for i in range(B):
control_sample = make_sample(daily_data_control, B, N, i)
experimental_sample = make_sample(daily_data_experiment, B, N, i)
fit = stats.ttest_ind(control_sample, experimental_sample)
p.append(fit[1])
plt.plot([0, len(p)-1], [0.05, 0.05], "r--")
plt.plot(p)
plt.xlabel("bootstraps")
plt.ylabel("p")
plt.ylim(0, 1)
plt.show()
а почему не посчитать среднее за весь период?
Добрый день, спасибо за лекцию, очень интересно и познавательно. А где можно сам файл с расчетами посмотреть?
приложили к видео
@@karpovcourses что-то пошло не так
@@gillan11 что не так?)
@@karpovcourses да, это с ютуб на декстопе проблема - не раскрывает описание полностью. На планшете нормально
А нельзя просто тренд p-value построить и по нему принимать решение - останавливать эксперимент или нет?
нежелательно)
Затрагетизировался тоже
Так, а в чем проблема? По цене рисков разницы нет. Вы ведь ничего не теряете в худшем случае, да и код для группы В уже написан. Никогда, кстати, не видел большой полезности в А/В тестировании - статистические тесты не могут ничего доказать, могут лишь опровергнуть, а целью А/В тестирования является именно доказательство, что одно лучше другого:) Тоесть, да, эффект какой-то есть, но он очень, скажем осторожно, второстепенный...
Вопрос достаточно странный, очень интересно как вы будете вообще оценивать хоть что-то в продакшен системе без A/B тестов (хотя бы оффлайн).
Во-первых мы не можем гарантировать, что та или иная фича не сделает все хуже, чем было раньше (даже учитывая показанные в видео проблемы, мы с крайне малой вероятностью пропустим ухудшение метрик).
Во-вторых, бизнесу важно понимать какой профит вообще от вашей деятельности, а аргумент в стиле "ну мы это уже написали, значит можно выкатывать" не прокатит - я не думаю что с таким подходом вашу команду/отдел/проект будут долго держать. Бизнес зачастую хорошо понимает что такое A/B тесты и что без них никаких выводов о качестве работы просто не получится сделать (не исключено что аналитики просто приучили бизнес верить A/B, но это другая история). К тому же им надо что-то адекватное в отчетах написать)
В-третьих, для ML моделей без подобного тестирования вообще никуда, как бы если у вас итеративная разработка, то как вы поймете что новая модель не хуже? Тут существуют серьезные риски, тк без тестирования на проде вы не можете гарантировать вообще ничего, а выкатывать без тестирования тоже приведет к печальным последствиям.
Насчет возможности доказать или опровергнуть, в видео сказали что стат тестирование просто дает нам некоторые вероятностные оценки, тут нет доказательств в математическом смысле, только оценивание. И если вы знаете способ сильно лучше A/B, то вперед (без сарказма, если есть что-то крутое, что вы знаете)