Notice: file_put_contents(): Write of 8786 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 12288 of 21074 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Artificial stupidity@artificial_stupid P.202
ARTIFICIAL_STUPID Telegram 202
Forwarded from Время Валеры
Я почитал недавно статью на хабре про АБ тесты от одной компании
С удивлением обнаружил что там ниспровергается Cuped (точнее определенная формула)

И приводится этот код для проверки
Код из статьи воспроизведен без изменений (число итераций увеличено в 10 раз) в ячейке номер 2

Ячейка 2 выдает следующее
Не попал в 85.07000000000001% случаев; доверительный интервал: [84.36%, 85.76%]
Выглядит и вправду плохо, при ожидаемом уровне в 5% мы наблюдаем уровень ложно положительных результатов многократно выше


Я обратил внимание на то, что на одном и том же датасете считается сontrol before как ковариата и как вычитаемое среднее, к сожалению здесь ошибка и так делать нельзя. Это классический пример переобучения. Примерно как валидироваться на трейне и потом попасть впросак на новом датасете

Правится это следующим образом, вычитаемое среднее считается глобально по всему датасету (например если в а/б тест отправилось 5% юзеров, то среднее будем считаться по всем 100% и можем учесть чуть больший период времени)

В идеальном мире это выглядело бы вот так
Я бы просто знал параметры распределения и использовал их для вычитания среднего, хотя тогда и А/Б не нужен (строчка 8)
Ячейка 3

Допустим я не знаю параметры распределения, но у меня много данных, тогда будет вот так (строчка 4 и 9)
Ячейка 4

Вот как будет это выглядеть в реальной жизни при самом плохом случае, когда мы сравниваем группу А и Б и допустим что никаких других данных у нас нет
Ячейка 5

Вот как будет это выглядеть в реальной жизни при наличии каких то данных, кроме самих групп А и Б или А1 и А2
Ячейка 6

Вы можете позапускать код самостоятельно и убедится что во всех четырех случаях цифры будут около 5% , но пожалуй пристальнее всего стоит смотреть на то как будет в реальной жизни

Также, для сравнения дал пример где накинул очень маленький шум в качестве эффекта, cuped поймал его в половине случаев, без cuped - только в пяти из ста
Ячейка 7 и 8 соответственно

P.S. Кажется я знаю откуда может идти идея ниспровержения. По моему я был один из первых людей, сделавших доклад о Cuped на русском
В моем репозитории Cuped как раз был реализован с этой ошибкой, о чем я знал последние года два, но не придавал значения
Чуть подробнее мы разобрали это в ОДС в Июле 2021 года в этом треде

#ArticleReview



tgoop.com/artificial_stupid/202
Create:
Last Update:

Я почитал недавно статью на хабре про АБ тесты от одной компании
С удивлением обнаружил что там ниспровергается Cuped (точнее определенная формула)

И приводится этот код для проверки
Код из статьи воспроизведен без изменений (число итераций увеличено в 10 раз) в ячейке номер 2

Ячейка 2 выдает следующее
Не попал в 85.07000000000001% случаев; доверительный интервал: [84.36%, 85.76%]
Выглядит и вправду плохо, при ожидаемом уровне в 5% мы наблюдаем уровень ложно положительных результатов многократно выше


Я обратил внимание на то, что на одном и том же датасете считается сontrol before как ковариата и как вычитаемое среднее, к сожалению здесь ошибка и так делать нельзя. Это классический пример переобучения. Примерно как валидироваться на трейне и потом попасть впросак на новом датасете

Правится это следующим образом, вычитаемое среднее считается глобально по всему датасету (например если в а/б тест отправилось 5% юзеров, то среднее будем считаться по всем 100% и можем учесть чуть больший период времени)

В идеальном мире это выглядело бы вот так
Я бы просто знал параметры распределения и использовал их для вычитания среднего, хотя тогда и А/Б не нужен (строчка 8)
Ячейка 3

Допустим я не знаю параметры распределения, но у меня много данных, тогда будет вот так (строчка 4 и 9)
Ячейка 4

Вот как будет это выглядеть в реальной жизни при самом плохом случае, когда мы сравниваем группу А и Б и допустим что никаких других данных у нас нет
Ячейка 5

Вот как будет это выглядеть в реальной жизни при наличии каких то данных, кроме самих групп А и Б или А1 и А2
Ячейка 6

Вы можете позапускать код самостоятельно и убедится что во всех четырех случаях цифры будут около 5% , но пожалуй пристальнее всего стоит смотреть на то как будет в реальной жизни

Также, для сравнения дал пример где накинул очень маленький шум в качестве эффекта, cuped поймал его в половине случаев, без cuped - только в пяти из ста
Ячейка 7 и 8 соответственно

P.S. Кажется я знаю откуда может идти идея ниспровержения. По моему я был один из первых людей, сделавших доклад о Cuped на русском
В моем репозитории Cuped как раз был реализован с этой ошибкой, о чем я знал последние года два, но не придавал значения
Чуть подробнее мы разобрали это в ОДС в Июле 2021 года в этом треде

#ArticleReview

BY Artificial stupidity




Share with your friend now:
tgoop.com/artificial_stupid/202

View MORE
Open in Telegram


Telegram News

Date: |

Image: Telegram. Each account can create up to 10 public channels A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Hashtags Activate up to 20 bots
from us


Telegram Artificial stupidity
FROM American