fa
Feedback
Заскуль питона (DA/DS/ML) 🐸

Заскуль питона (DA/DS/ML) 🐸

رفتن به کانال در Telegram

Канал про Python, анализ данных, SQL и многое другое Чат: https://t.me/my_it_frogs

نمایش بیشتر
کشور مشخص نشده استدسته بندی مشخص نشده است
1 909
مشترکین
+524 ساعت
+317 روز
+28430 روز
آرشیو پست ها
Решил удалить обсуждение, в итоге комменты слетели, bruh…

🐲: Коллеги, поставьте реакции, чтобы была мотивашка выпускать посты про A/B и добить их наконец-то...

Распределения, рассмотренные в посте выше 🐲
+5
Распределения, рассмотренные в посте выше 🐲

🐍 Пример симуляции в Python import numpy as np import pandas as pd np.mean([np.random.binomial(1, 148/110, size = 10).mean() - np.random.binomial(1,48/110, size = 100).mean() >= 0.2 for i in range (10000)]) # output: # p-value ~ 0,21, что больше, чем a(0,05), значит нулевую гипотезу не отвергаем. P.S: для тестирований есть специальные калькуляторы, в которых вы можете также поиграться. Распределение с вероятностями (весами), было тестовое задание в OZON с симуляцией данных и дальнейшего исследования. 🐲 Пример на Python для пяти элементов с соответствующими вероятностями pi import numpy as np list = np.arange(1,6) sNumbers = np.random.choice(list, size = 1000, replace = True, p = [0.35, 0.25, 0.2, 0.15, 0.05]) pd.DataFrame(sNumbers).value_counts(normalize = True) 🤯 Проверка распределения на нормальность (необходимо для корректности расчета разницы между распределениями): - тест Шапиро-уилка - QQ-plot - Критерий Лиллифорса - Критерий хи-квадрат Пирсона 📖 Полезные материалы: Калькулятор для A/B Ещё один калькулятор Про распределения ❗️ Настоятельно рекомендую смотреть открытые лекции Яндекса по A/B тестам + Матемаркетинг на Youtube, очень много всего. От понижения дисперсий (про это поговорим дальше) до множественного A/B тестирования и сокращения времени проведения A/B тестов в несколько сотен раз!

Подводка была классная, новый тренд, что ли. Так вот, продолжаем, A/B тест не удался. Зачем нам вообще все это? Стать топ продуктовым аналитиком (кем?). Тот, кто анализирует конкретный продукт, смотрит за определенными метриками, заставляет за основе данных принимать менеджменту конкретные решения. Приступим к распределениям (нам нужно понимать специфику данных, что вообще с ними можно делать). - Равномерное (плотность распределения = const, вероятность выпадения каждого элемента одинакова). Пример: бросание кости, угадывание числа от 1 до 1000. - Бернулли (в качестве значения либо 1, либо 0). Пример: подбрасывание монеты (орел и решка), совершение целевого действия на сайте (либо да, либо нет, конверсия). - Биномиальное (распределение количества успехов, т.е. привязка к количеству экспериментов из Бернулли). - Нормальное (распределение, которое задается средним и стандартным отклонением (корнем из дисперсии), значением, показывающим то, насколько значения отклоняются от среднего значения. Большинство явлений можно объяснить, используя данное распределение. В экспериментах, желательно, все сводить к нормальным распределениям, сокращая дисперсию, логарифмируя переменные, симулируя много раз эксперимент. Пример: Рост, вес жителей РФ. - Логнормальное распределение. Распределение с жирным хвостом, где большая часть данных сосредоточена слева, а может продолжаться до бесконечности. Например, средний чек покупателей в гипермаркете "Глобус". Средний чек сосредоточен слева, но имеются и семьи, которые закупаются на 20к+ за раз. - Экспоненциальное распределение. Используется при анализе временных рядов. Время ожидания целевого действия, интервалы времени между событиями. Нам необходимо при анализе любых метрик понимать их природу, откуда они взяты и как это можно использовать в дальнейшем. О свойствах каждого из распределений можно посмотреть в источниках, которые прикреплю ниже. Важно понимать, что вообще мы можем с этим делать. Окей, вроде бы первично понятно, что есть какие-то распределения, частота / вероятность каждого из событий с отложенными значениями. Вопрос, что дальше? Для начала вернемся к предыдущему посту и посмотрим о чем рассказывалось ранее. Есть какое-то p-value, о котором админ обещал рассказать. Так вот. делюсь. Это вероятность получить такое же или более экстремальное значение. Условно, у нас проводится A/B тест, мы смотрим на разницу между средними значениями метрики в разных группах. Мы можем получить. как отклонение по метрику в худшую сторону (левосторонний тест), в лучшую сторону (правосторонний тест) и в обе стороны (двусторонний тест). Симуляция разниц между средними поможет получить среднее значение. Говорят, что если p-value < alpha (ошибка первого рода), то мы отклоняем нулевую гипотезу. Вопрос, почему так?) Задача: мы опросили 100 пользователей Ozon, 60 из них нравится дизайн нашего сайта. Наши дизайнеры провели тест с новым дизайном и из 10 человек, 8 выразили respect 🫡. Вопрос, можно ли выкатывать версию дизайнеров в продакт? H0 - разницы между группами нет (CR1 = CR2) H1 - разница между группами есть ( CR1 ≠ CR2) Размер выборки: 100 + 10 = 110 Мы должны свести все к одному распределению. CR (средн) = 48/110 Diff (CR) = 0,2 a = 0.05 B = 0,2

Админ умер. Похороны 19 января.

Первая моя гипотеза о том, что если все выкладывать одним постом, количество реакций будет больше. Как это проверить? Одновременно выпустить пост, но на разных каналах, причём, контрольные и тестовые группы не должны пересекаться…

Понятно, что нужно учитывать статистику и без этого никак, поскольку изначально, вам может казаться, что если тот или иной показатель в двух группах отличается, например, среднее метрики, то этот вариант является успешней, чем другой. Например, мы хотим понять, как изменение дизайна отразилось на пользователях. Взяли первую группу, не меняли ничего, получили, что из 100 пользователей 60 нравится сайт. В другой группе, мы поменяли дизайн, выбрали 10 человек, из них 7 сказали, что нравится. Казалось бы показатели 0,6 и 0,7, однако, не все так просто, потому что данные значения могли получится случайно. Это как бросить много раз монетку. Понятно, что вероятность выпадения 1/2 (это работает при большом количестве подбрасываний), однако, из 100 бросков может выпасть 90 орлов и 10 решек. Этот пример я рассмотрю в следующем посте. Вторая часть не заставит себя долго ждать, если наберется достаточное количество реакций. Поговорим про распределения, p-value (критерий, определяющий значимость теста) и различных статистических методах по проверке гипотез, количество групп (оказывается можно запускать и A/B/n тестирование, но есть очень много подводных камней, квантили и другое (приближаемся к математике). Тренировочные датасеты будут, их можно найти на Kaggle, периодически буду выкладывать 🤩 Полезные материалы 🅰️🅱️ Карпов. Матстат «Учебник» по A/B тестам, для ознакомления можно глянуть Ссылка Как провести A/B тестирование A/B testing [EN] VK A/B testing [EN] Пишите комментарии, ставьте реакции, буду ждать фидбека 😎

… А дело в том, что я, видимо, не так распределил контрольные и тестовые группы. Всем привет, я снова вернулся с A/B тестами, но хочется более структурно разобрать все нюансы и тонкости. Запускаю пилотный пост, если все понравится, буду продолжать выпускать. Кажется, что знание этого, поможет вам устроиться на позицию продуктового аналитика. Кто это такой и вообще чем они занимаются, расскажу в следующем посте. Начнём с вводных: Теория вероятностей и математическая статистика. - Закон больших чисел - Понимание того, что случайные события можно свести к системе. - Различные виды распределений. Что за распределение, его особенности, про это будет следующий пост. - Математика: мода, медиана, математическое ожидание, дисперсия. Мода - самое часто встречающееся число в выборке Медиана - середина интервала после упорядочивания элементов по возрастанию Математическое ожидание - среднее в генеральной совокупности Дисперсия - средний показатель отклонения значения от среднего. Вообще, какая основная задача A/B тестов? Это растить продукт за счёт проведения экспериментов с различными вариантами страницы, приложения и так далее. Понятно, что просто внедрить новую фичу в наш продукт не получится, поскольку это затратно по средствам и мы не понимаем, как пользователи могут отреагировать на данное нововведение. Таким образом, нам нужно на основе наших данных свести среднее значение метрики к среднему. Как мы это можем сделать? ⁃ Доверительные интервалы. ⁃ Бесконечно симулировать эксперименты, чтобы в конечном счете получить среднее значение. ⁃ Использовать непараметрические методы при сравнении. Что нужно для А/Б теста? Сформулированная гипотеза Нулевая гипотеза - то, что у нас есть в базисе. Например, что, после изменения показатели метрики не изменятся. Альтернативная гипотеза - то, что мы хотим проверить. После изменения показатели метрики изменятся. Размер выборки - один из важных показателей, который определяет сколько людей необходимо для получения статистически значимого результата. Понятно, что теория вероятностей и статистика имеет какую-то математическую ошибку, поэтому будем изначально закладывать при проведении эксперимента. Ошибка первого рода - вероятность отклонить верную нулевую гипотезу (обычно 5%). Ошибка второго рода - вероятность не отклонить неверную нулевую гипотезу (обычно 20%). Как запомнить? Вот, представьте, вы пришли со вспоротым животом в поликлинику, а, вместо того, чтобы прооперировать вас, врачи сказали, что все хорошо, можете идти домой (ошибка первого рода, мы отклонили верную нулевую гипотезу). Представьте, что вы пришли в больницу, узнать свой диагноз, а врачи там считают, что разрезать всех, а после, зашивать, это норма (ошибка второго рода, мы приняли неверную нулевую гипотезу) 🤔 О какой же метрике все это время идёт речь? Тот таргет, который мы проверяем. Это может быть CTR, показатель конверсии, средний чек и другое 🎯 Изучаемая метрика - после результатов проведения мы будем опираться либо на усреднённые данные этой метрики в каждой из групп, либо на другое, обобщающее число в выборке 💻 Время проведения - очень важная метрика, поскольку при первичном проведении, захочется увидеть статистически значимый результат, например, у нас все выполнилось, среднее во B группе, больше, чем среднее в A группе, поэтому останавливаем проведение ⏳ Минимальный ожидаемый эффект - прирост по метрике, который мы хотим получить при формулировании гипотезы 📈 Пример формулирования гипотезы: Изменение системы выдачи на сайте позволит увеличить показатель конверсии на 20%. Нулевая гипотеза: Ничего не изменится, средние в двух группах равны. Альтернативная гипотеза: Средние в двух группах не равны 😊 Друзья, я хочу выкатить исчерпывающие посты по A/B тестам, возможно, без ML. Поэтому, если у вас есть какие-то идеи про что написать, с чем вы сталкиваетесь на работе, пишите, буду рад почитать, оформим как рабочий кейс. Здесь главное, больше практики что ли 🏋️‍♀️