Тонкости A/B тестирования: проблема подглядывания | Вебинар Анатолия Карпова | karpov.courses

Поділитися
Вставка
  • Опубліковано 14 кві 2021
  • Курс «Аналитик данных»: 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/

КОМЕНТАРІ • 35

  • @freedom_analyst
    @freedom_analyst Рік тому

    Спасибо. Очень понятным языком)

  • @bellamina
    @bellamina Рік тому +1

    Большое спасибо за этот вебинар! Все по полочкам, как всегда)

  • @user-uo6rn9jg4y
    @user-uo6rn9jg4y 11 місяців тому

    Очень круто и интересно

  • @clockfixer5049
    @clockfixer5049 2 роки тому +9

    У меня такое чувство, что такая частота попаданий p-value под threshold в этих симуляциях связана с уж очень большим стандартным отклонением. И мне кажется, этот момент немного выпал из поля зрения, но снижение дисперсии в выборках является еще одним способом увеличения MDE.

  • @mukhtarbimurat5106
    @mukhtarbimurat5106 Рік тому

    Kruto, thanks a lot!

  • @osvab000
    @osvab000 3 роки тому

    Евгений - большое спаcибо и за видео и за деланную работу по просвещению масс и погружению в ML

  • @user-sy3ob2zh3d
    @user-sy3ob2zh3d 6 місяців тому

    Спасибо, Master...

  • @karinashakhgeldyan881
    @karinashakhgeldyan881 Рік тому

    отлично. можно с pValue сделать ряд оценок. 1. рассчитать дов. интервал. 2. сяитвть не по накоплкнным данным, в по усредненным pvalue на ежкдневных выборках. 3. усреднить pvalue в накоплкнных данных. оценить дов. интервалы pvalue

  • @alexn3497
    @alexn3497 10 місяців тому

    Огонь

  • @sviatoslavgladii7925
    @sviatoslavgladii7925 3 роки тому +5

    Добрый день,
    Когда можно ждать часть с продолжением про калькуляторы, мощность, как определить длину эксперимента?
    Спасибо за курсы на степике и видео на UA-cam

    • @karpovcourses
      @karpovcourses  3 роки тому

      15 июня karpov.courses/webinar_anatoly

    • @user-rm2fr5uv9b
      @user-rm2fr5uv9b Рік тому

      @@karpovcourses здравствуйте, а можно ссылку обновить?не работает(

  • @mlpython1089
    @mlpython1089 2 роки тому

    Очень интересно. Спасибо.
    А если из А/В тестируемых в конце теста пуассоновским бутстрапом наделать семплов и многократно оценить различия, поможет?

    • @mlpython1089
      @mlpython1089 2 роки тому

      Нет. Не помогло уж слишком изначально большая дисперсия задана.
      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()

  • @antologyz
    @antologyz 3 роки тому

    Добрый день, спасибо за лекцию, очень интересно и познавательно. А где можно сам файл с расчетами посмотреть?

    • @karpovcourses
      @karpovcourses  3 роки тому

      приложили к видео

    • @gillan11
      @gillan11 3 роки тому

      @@karpovcourses что-то пошло не так

    • @karpovcourses
      @karpovcourses  3 роки тому

      @@gillan11 что не так?)

    • @gillan11
      @gillan11 3 роки тому

      @@karpovcourses да, это с ютуб на декстопе проблема - не раскрывает описание полностью. На планшете нормально

  • @user-ot4jy8vl7i
    @user-ot4jy8vl7i 2 роки тому +2

    Анатолий и команда,
    Большое спасибо за семинар.
    Не могу поженить в голове два факта. Помогите, пожалуйса, разобраться.
    1) В лекции мы видим, что pvalue ведет себя непредсказуемо. Может опускаться и понижаться.
    2) С другой стороны, мы знаем, что выборочное среднее - это состоятельная оценка. Т.е. при увеличении размера выборки, оценка должна стремиться к реальной.
    И в этом случае (если оценки в контрольной и тестовой группах стремятся к реальным) различия, как мне кажется, должны по мере проведения теста только усиливаться (и pvalue должен постоянно снижаться).
    Где я ошибся в рассуждении?

    • @sadking110
      @sadking110 2 роки тому

      Определение состоятельной оценки у тебя неправильное)

  • @nyTuHecTDeTeu
    @nyTuHecTDeTeu 3 роки тому +9

    После 30ой минуты почувствовал себя крипово. Как словно фильм по Стивену Кингу) P-value в натуре под 0,05 а в реальности различий нет. Брр.

    • @nyTuHecTDeTeu
      @nyTuHecTDeTeu 3 роки тому +2

      Вообще да, вопрос сделки) Я по большей части тесты в микробизнесе провожу, там P-value 0,05 нужно месяц ждать. И чисто по экономическому эффекту выгоднее повести 5 тестов за неделю пусть даже с P-value 0,2.

  • @JT-ed3dk
    @JT-ed3dk 3 роки тому +3

    А где видео про разницу т теста, манна уитни и бутстрепа?

    • @karpovcourses
      @karpovcourses  3 роки тому +4

      ua-cam.com/video/-zps6hm0nX8/v-deo.html&ab_channel=Karpov.Courses

  • @user-ob4zk7jr2p
    @user-ob4zk7jr2p 3 роки тому

    А нельзя просто тренд p-value построить и по нему принимать решение - останавливать эксперимент или нет?

  • @user-we9ef6sm4o
    @user-we9ef6sm4o 7 місяців тому

    24:25 Ох уже эти профдеформация программиста, начинать подсчёт с нуля: "то есть 100 и 102: отличаются на 3 единицы"))

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t Рік тому

    Это Монте Карло расчеты можно прерывать по достижении нужной сходимости, а тут совсем непонятно, как сходимость этих рядов работать будет…

  • @Stas0ya
    @Stas0ya 2 роки тому

    а почему не посчитать среднее за весь период?

  • @Trepetsky
    @Trepetsky Рік тому +1

    Хах) трейдинг на p-value)) посмеялся)
    Кстати, насчёт долгих экспериментов, на адронном коллайдере долгие, не знаю сколько, но там до 5 сигм и разницы в величинах очень маленькие.

    • @user-pg8ry1tm3t
      @user-pg8ry1tm3t Рік тому

      Ядерная физика - нормальное распределение, пожалуй, единств случай в природе

  • @sumailsumailov1572
    @sumailsumailov1572 3 роки тому

    Затрагетизировался тоже

  • @leobreydo9318
    @leobreydo9318 3 роки тому +2

    Так, а в чем проблема? По цене рисков разницы нет. Вы ведь ничего не теряете в худшем случае, да и код для группы В уже написан. Никогда, кстати, не видел большой полезности в А/В тестировании - статистические тесты не могут ничего доказать, могут лишь опровергнуть, а целью А/В тестирования является именно доказательство, что одно лучше другого:) Тоесть, да, эффект какой-то есть, но он очень, скажем осторожно, второстепенный...

    • @user-gp5km3es1m
      @user-gp5km3es1m 2 роки тому +6

      Вопрос достаточно странный, очень интересно как вы будете вообще оценивать хоть что-то в продакшен системе без A/B тестов (хотя бы оффлайн).
      Во-первых мы не можем гарантировать, что та или иная фича не сделает все хуже, чем было раньше (даже учитывая показанные в видео проблемы, мы с крайне малой вероятностью пропустим ухудшение метрик).
      Во-вторых, бизнесу важно понимать какой профит вообще от вашей деятельности, а аргумент в стиле "ну мы это уже написали, значит можно выкатывать" не прокатит - я не думаю что с таким подходом вашу команду/отдел/проект будут долго держать. Бизнес зачастую хорошо понимает что такое A/B тесты и что без них никаких выводов о качестве работы просто не получится сделать (не исключено что аналитики просто приучили бизнес верить A/B, но это другая история). К тому же им надо что-то адекватное в отчетах написать)
      В-третьих, для ML моделей без подобного тестирования вообще никуда, как бы если у вас итеративная разработка, то как вы поймете что новая модель не хуже? Тут существуют серьезные риски, тк без тестирования на проде вы не можете гарантировать вообще ничего, а выкатывать без тестирования тоже приведет к печальным последствиям.
      Насчет возможности доказать или опровергнуть, в видео сказали что стат тестирование просто дает нам некоторые вероятностные оценки, тут нет доказательств в математическом смысле, только оценивание. И если вы знаете способ сильно лучше A/B, то вперед (без сарказма, если есть что-то крутое, что вы знаете)