А/Б тесты: пропорции | Вероятность и статистика #6

Поділитися
Вставка
  • Опубліковано 21 лип 2024
  • Покупайте мой курс по А/Б-тестам stepik.org/a/194930 Скидка 20% по промо коду UA-cam
    Подписывайся на Телеграм t.me/mikhaylovgleb
    Ноутбук: colab.research.google.com/dri...
    0:00 Начало стрима
    3:22 Зачем нужен А/Б тест?
    9:24 Планируем эксперимент у Эвана Миллера
    19:27 Тестируем z test
    35:37 Тестируем t test
    37:08 Тестируем Манна - Уитни (как оказалось я неправильно запускал тест)
    48:31 Считаем размеры сэмплов в питоне
    1:01:29 Считаем размеры сэмплов для разных по размеру групп
    1:04:02 Рассчитываем размеры сэмплов с помощью Монте-Карло
    1:10:23 Проверка гипотез == проблема классификации
    1:22:47 Баланс классов: успешные vs неуспешные эксперименты
    1:27:32 Пример на сбалансированных классах
    1:32:30 Пример на несбалансированных классах
    1:43:45 Как бороться с несбалансированными классами? Понизить альфу (манифест)
    1:51:44 Конец стрима (весь лохматый и седой)

КОМЕНТАРІ • 38

  • @matveypopkov3414
    @matveypopkov3414 2 роки тому +13

    Это просто божественно) на столько просто и понятно что даже бабки да лавках поймут и пойдут в Гугл пилить а/б тесты) просто респектище)

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

    Глеб, спасибо. Ты очень много делаешь для страны!

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

      Интересно только для какой?)))

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

    Лучшего и доступного для меня объяснения мощности (проблема классификации) прямо-таки на пальцах я не встречал, отличное видео, спасибо!

  • @baxai_
    @baxai_ 2 роки тому +5

    Посмотреть все видосы Глеба это скорее эпик, который надо разбить на задачи😂

  • @kattynia5956
    @kattynia5956 2 роки тому +2

    И спасибо огромное за такие офигенские лекции! Даже начало в голове что-то укладываться, причем на практике уже имела дело с тестами, но не понимала до конца, как что и почему. Как мощны леопардовы лапищи!

  • @user-tm2sx8pq2h
    @user-tm2sx8pq2h 9 місяців тому

    Отличные видео, смотрю все почти, ибо начал этот непростой путь ДС, очень бодро и познавательно, спасибо, от души!

  • @Jagerman767
    @Jagerman767 7 місяців тому

    Спасибо. Глеб красава)

  • @GlebMikhaylov
    @GlebMikhaylov  2 роки тому +10

    Тест Манна - Уитни я запускал неправильно! В colab установлена старая версия statmodels и надо обязательно указывать alternative='two-sided'. Иначе получается не то, что нужно. Но в целом принцип тестирования теста сработал: мы отказались от этой вариации Манна - Уитни.

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

      в Jupiter Notebook такая же проблема - нужно указывать "two-sided"

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +1

      @@mlpython1089 В локальном jupyter ты можешь обновиться до новой версии и тогда, и тогда у тебя будет по дефулту two sided. В colab тоже можно обновиться, но это нужно делать для каждого ноутбука, что не удобно. Но в целом, я считаю, что всегда лучше все указывать явно и не оставлять ничего на дефулт. Как видишь, я усвоил этот урок hard way что называется)

    • @armat_it
      @armat_it 9 місяців тому

      Попробовал с two-sided и у меня получилось 0.05.
      import pandas as pd
      import numpy as np
      from tqdm.notebook import tqdm
      from scipy import stats
      result_mv = []
      for _ in tqdm(range(10000)):
      a = np.random.binomial(1,0.15,size=1000)
      b = np.random.binomial(1,0.15,size=1000)
      _,pval = stats.mannwhitneyu(a,b,alternative='two-sided')
      result_mv.append(pval)
      Почему тогда нужно отказываться от Манна - Уитни?

    • @user-xd8im9yq9h
      @user-xd8im9yq9h Місяць тому

      @@armat_it та же ерунда: (t < 0.05).mean() с mannwhitneyu дает 0.0472

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

    Подписался! Спасибо!

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

    Видео топ конечно, интуитивно теперь всё понятно, спасибо)
    Есть вопрос: Что по Хи-Квадрату, ты имел ввиду что он равен Z тесту по результату и мощности? Не получилось у меня его применить в твоем коде

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +2

      Нет. Они полностью эквивалентны математически. Для двух пропорций они дают абсолютно одинаковые результаты. Вот пример colab.research.google.com/drive/1L20YHu079C8zaUxOT4eZmMaOt-dyWFjq?usp=sharing

  • @user-ig6ne9lb4w
    @user-ig6ne9lb4w 2 місяці тому

    Ребят, я жёстко туплю и не догоняю, если мы делаем АА тест, и у нас заведомо разницы нет, мы получаем p value 0.05, а одна из трактовок p value - вероятность получить такие значения или более выраженные, если нулевая гипотеза верна, то почему так? Если у нас заведомо разницы нет, то как мы получаем всего 5% вероятность получить такие значения, это же капец как мало

  • @delkaaaa
    @delkaaaa 11 місяців тому

    1:31:00....О! Вот это я уже понимаю!)))))

  • @rkekelwlw
    @rkekelwlw 9 місяців тому

    Не понимаю, почему мы можем использовать t-test для биномиального распределения кликов?

  • @igorkimrb
    @igorkimrb 2 роки тому +1

    Глеб, подскажи, а что делать в такой ситуации: предположим мы на время поведения A/Б теста предполагали конверсию 20% у контрольной группы, а эффект = 5%.
    Но по факту контрольная группа повела себя по-другому и мы получили конверсию контрольной группы = 15%, а тестовой 20%. Эффект 5% есть, но конверсии не сходятся с тем, что мы заложили до.

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +1

      Я думаю, что если разница значимая, то можно считать тест успешным, и отметить, что общая конверсия по процессу понизилась.

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

    Вопрос про значение p-value: (где z-test считаешь) когда выпал 2.15 с чем-то, ты сказал, что это мизерный эффект. То есть это ок, и с данными в этом случае все может быть нормально, если p-value > 1?

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +1

      Дай пожалуйста тайм код, чтобы я лучше понял о чем идет речь. И сразу: p-value не может быть больше единицы: это вероятность, а вероятность может быть от 0 до 1.

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

      30:44 Посмотри на конец числа. Там e-05. Число в научном формате 2.71 * 10^(-5)

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

    "Это обезьяна ЧИ-Чи-ЧИ, все помнят чем закончилась эта история" Ржу))) Спасибо, Глеб, что у тебя классное ЧЮ, кроме прочих талантов!

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

    На фразе «ныряй за жемчужинами» вспомнилось произведение Чака Паланика) «Кишки») сложный мем)

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

      Фуу, Господи, почему я это читала и поняла мем -_- ))

  • @andrewh2144
    @andrewh2144 11 місяців тому

    Луч света в темном царстве статистики

  • @sergeyshimkiv1202
    @sergeyshimkiv1202 2 роки тому +1

    Привет. Пересматриваю в записи, т.к. в онлайне не успеваю за ходом мысли.
    Не могу понять почему одна и та же строка - " (t < 0.05).mean() " - для разных выборок показывает мощность, а для одинаковых - ошибку первого рода...

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +5

      Привет! Потому что когда выборки одинаковые это значит, что верна нулевая гипотеза, и если p-value получается < 0.05 то мы ловим ложное срабатывание, т.е. неверно отвергаем нулевую гипотезу, это так же называется ошибкой первого рода.
      А когда выборки у нас разные это значит, что нулевая гипотеза не верна, и если p-value получается < 0.05 то происходит верное срабатывание, т.е. мы отвергаем неверную нулевую гипотезу, мы детектим эффект. Это называется мощность или еще hit rate или recall -- какой процент ситуация где присутствует реальный эффект мы верно детектим.

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

    Поясните, кто может.
    Почему доля экспериментов, в которых p-value меньше 5%, равна мощности, т.е. доле обнаруживаемых успешных экспериментов?
    Ведь, если p-value меньше 5%, то это свидетельствует о низкой достоверности полученного результата (насколько я понимаю).
    Но чем больше доля экспериментов с таким p-value, тем выше мощность.
    Какое-то противоречие...

    • @GlebMikhaylov
      @GlebMikhaylov  2 роки тому +1

      Тут важно понимать, что когда мы тут считаем мощность, то генерим выборки из разных распределения, т.е. у нас заведомо есть эффект, заведомо есть разница, заведомо неверна нулевая гипотеза.
      Что такое p-value? Это вероятность получить такие же или более экстремальные результаты при верной нулевой гипотезе. Если p-value маленькая, то мы отвергаем нулевую гипотезу.
      Здесь у нас нулевая гипотеза заведомо не верна, поэтому p-value должны по хорошему все быть очень маленькими.
      Поэтому, чем больше маленьких p-value получилось на наших заведомо успешных экспериментах, тем выше мощность теста: он хорошо умеет обнаруживать наличие разницы, умеет обнаруживать эффект.

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

      @@GlebMikhaylov Спасибо!

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

    Про баланс классов, когда recall для 0 у нас 0,95, а для 1ого 0,8 разве это не значит в 95% случаев когда эксперимент не успешен мы говорим, что он не успешен, а в 80% случаев когда он успешен, мы говорим, что он успешен? Это же бьется с теорией? Мне непонятно почему это работает с recall, но не работает с precision. Как это объяснить?

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

      Про рекол все верно написал. А почему для пресижн не работает?

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

      @@GlebMikhaylov в видео же цифры такие, что не работает. Когда рекол всегда в заданных пределах, то пресижн варьируется от баланса классов, вот и я спрашиваю, почему так происходит?)

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

      @@bliz_fa_krik140 потому что знаменатель у рекола только реальный единички, и баланс классов на это не влияет: нолики вообще не участвуют.
      А знаменатель у пресижн это и нолики и единички, и баланс классов на это очень влияет