Вдохну чуть больше жизни в канал и поделюсь фотками с отпуска.
Связь не ловит, интернет только в апартах. Людей тоже почти нет.
И это, блин, кайфово!
В сравнении с Московским темпом очень классно замедлится и ощутить, как долго могут тянуться дни.
Связь не ловит, интернет только в апартах. Людей тоже почти нет.
И это, блин, кайфово!
В сравнении с Московским темпом очень классно замедлится и ощутить, как долго могут тянуться дни.
❤7
Есть ложь, есть наглая ложь, а есть статистика
Нас нанимают за точность и объективность данных. Мы привыкли доверять цифрам - они кажутся беспристрастными. На их основе мы делаем выбор и принимаем решения.
Но могут ли цифры врать?
Даррел Хафф в книге "Как лгать с помощью статистики" систематизировал способы обмана - от простых визуальных трюков до сложных манипуляций с методологией.
Можно выделить несколько видов статистических манипуляций:
- Визуальные манипуляции
- Манипуляции с выборкой
- Корреляция как причинность
- Статистическая значимость vs важность
- Эффект выживших
- Селективная отчетность
- Комбинированные манипуляции
Визуальные манипуляции
Самый простой способ - исказить восприятие через графики. Рост с 98% до 99% выглядит драматично, если ось начинается с 97%. Корпорации используют объемные диаграммы: если показатель вырос вдвое, площадь квадрата увеличится в 4 раза, а объем куба - в 8 раз. Визуальный эффект ошеломляющий при том же 100% росте.
Манипуляции с выборкой
Классический провал произошел в 1936 году, когда Literary Digest опросил 2,4 млн избирателей и предсказал победу Лэндона с результатом 57%. Реальный результат получился обратеый: Рузвельт победил 61% против 37% у Лэндона.
Выборка формировалась со смещением: из телефонных справочников и списков владельцев автомобилей - в то время это была элита, склонная голосовать за республиканцев.
Современные компании повторяют ошибку. Стартап заявляет, что "78% пользователей предпочитают новый интерфейс", тестируя только тех, кто сам обновил приложение.
Корреляция как причинность
Например, в США количество разводов коррелирует с потреблением маргарина. Логичный вывод: маргарин разрушает семьи!
На самом деле оба показателя росли параллельно с урбанизацией - классический пример ложной корреляции.
Статистическая значимость vs важность
Фармкомпании мастерски используют подмену понятий. Препарат показал "статистически значимое снижение смертности на 22% среди 18,000 пациентов”. Звучит революционно! Абсолютные цифры: 23 смерти против 29 в контрольной группе. Снижение с 0.13% до 0.16% - на жалкие 0.03 процентного пункта.
Ошибка выжившего
Во Второй мировой инженеры анализировали вернувшиеся бомбардировщики. Больше всего пробоин в крыльях и фюзеляже - логично усилить эти места.
Статистик Абрахам Вальд возразил: самолеты с пробоинами в двигателе и кабине пилота просто не вернулись. Усиливать надо именно критические зоны.
Бизнес-школы используют тот же принцип: "94% MBA-выпускников получают оффер за 3 месяца".
Из статистики исчезли отчисленные, сменившие специализацию, основавшие стартапы без зарплаты.
Селективная отчетность
Хафф приводит пример с зубной пастой: реклама утверждала, что "две трети стоматологов рекомендуют нашу пасту". Звучит убедительно! На деле опросили всего 12 стоматологов, причем вопрос звучал как "какие пасты вы иногда рекомендуете пациентам?" Можно было выбрать несколько вариантов. Восемь врачей среди прочих назвали и эту пасту.
Табачные компании довели селективность до совершенства. Philip Morris финансировала тысячи исследований о курении в 1970-90х, но в открытом доступе оказались менее 10% - те, что не показали связь с раком.
Комбинированные манипуляции
Наиболее коварны случаи, когда несколько техник используются одновременно. Исследование "доказало" безопасность продукта, исключив из анализа всех участников с побочными эффектами (манипуляция с выборкой), показав только относительные, а не абсолютные риски (подмена понятий), и опубликовав только успешные испытания из серии (селективная отчетность).
В эпоху больших данных проблема усугубилась - из петабайтов можно выкроить любую желаемую картину. Хафф предупреждал об этом 70 лет назад, но его уроки актуальны до сих пор.
Нас нанимают за точность и объективность данных. Мы привыкли доверять цифрам - они кажутся беспристрастными. На их основе мы делаем выбор и принимаем решения.
Но могут ли цифры врать?
Даррел Хафф в книге "Как лгать с помощью статистики" систематизировал способы обмана - от простых визуальных трюков до сложных манипуляций с методологией.
Можно выделить несколько видов статистических манипуляций:
- Визуальные манипуляции
- Манипуляции с выборкой
- Корреляция как причинность
- Статистическая значимость vs важность
- Эффект выживших
- Селективная отчетность
- Комбинированные манипуляции
Визуальные манипуляции
Самый простой способ - исказить восприятие через графики. Рост с 98% до 99% выглядит драматично, если ось начинается с 97%. Корпорации используют объемные диаграммы: если показатель вырос вдвое, площадь квадрата увеличится в 4 раза, а объем куба - в 8 раз. Визуальный эффект ошеломляющий при том же 100% росте.
Манипуляции с выборкой
Классический провал произошел в 1936 году, когда Literary Digest опросил 2,4 млн избирателей и предсказал победу Лэндона с результатом 57%. Реальный результат получился обратеый: Рузвельт победил 61% против 37% у Лэндона.
Выборка формировалась со смещением: из телефонных справочников и списков владельцев автомобилей - в то время это была элита, склонная голосовать за республиканцев.
Современные компании повторяют ошибку. Стартап заявляет, что "78% пользователей предпочитают новый интерфейс", тестируя только тех, кто сам обновил приложение.
Корреляция как причинность
Например, в США количество разводов коррелирует с потреблением маргарина. Логичный вывод: маргарин разрушает семьи!
На самом деле оба показателя росли параллельно с урбанизацией - классический пример ложной корреляции.
Статистическая значимость vs важность
Фармкомпании мастерски используют подмену понятий. Препарат показал "статистически значимое снижение смертности на 22% среди 18,000 пациентов”. Звучит революционно! Абсолютные цифры: 23 смерти против 29 в контрольной группе. Снижение с 0.13% до 0.16% - на жалкие 0.03 процентного пункта.
Ошибка выжившего
Во Второй мировой инженеры анализировали вернувшиеся бомбардировщики. Больше всего пробоин в крыльях и фюзеляже - логично усилить эти места.
Статистик Абрахам Вальд возразил: самолеты с пробоинами в двигателе и кабине пилота просто не вернулись. Усиливать надо именно критические зоны.
Бизнес-школы используют тот же принцип: "94% MBA-выпускников получают оффер за 3 месяца".
Из статистики исчезли отчисленные, сменившие специализацию, основавшие стартапы без зарплаты.
Селективная отчетность
Хафф приводит пример с зубной пастой: реклама утверждала, что "две трети стоматологов рекомендуют нашу пасту". Звучит убедительно! На деле опросили всего 12 стоматологов, причем вопрос звучал как "какие пасты вы иногда рекомендуете пациентам?" Можно было выбрать несколько вариантов. Восемь врачей среди прочих назвали и эту пасту.
Табачные компании довели селективность до совершенства. Philip Morris финансировала тысячи исследований о курении в 1970-90х, но в открытом доступе оказались менее 10% - те, что не показали связь с раком.
Комбинированные манипуляции
Наиболее коварны случаи, когда несколько техник используются одновременно. Исследование "доказало" безопасность продукта, исключив из анализа всех участников с побочными эффектами (манипуляция с выборкой), показав только относительные, а не абсолютные риски (подмена понятий), и опубликовав только успешные испытания из серии (селективная отчетность).
В эпоху больших данных проблема усугубилась - из петабайтов можно выкроить любую желаемую картину. Хафф предупреждал об этом 70 лет назад, но его уроки актуальны до сих пор.
👍6❤2
Что и где учить, если решил стать аналитиком данных
С момента, как только я задумался о переходе в аналитику данных по настоящее время, я прошел довольно много платных и бесплатных курсов по аналитике данных. Решил систематизировать эти знания и поделиться с вами.
Начну с того, что я выделяю 3 разных уровня знания хард-скиллов, которые могут быть у аналитика данных:
1. Необходимый минимум🖥: SQL + Python + BI.
Это база, необходимая каждому аналитику. Зная ее вы можете претендовать на стартовые роли и далее обрастать более профильными знаниями. Какими конкретно - зависит от вашей роли аналитика. Подробнее о ролях аналитика здесь
2. Базовый уровень🔫: SQL + Python + BI + Статистика + базовый A/B.
Тот стандарт, на который ориентируются большинство компаний.
На этом уровне вы справитесь с 80% задач аналитика данных (% оценил по личному опыту), что в целом достаточно для роли мидла в большинстве компаний.
3. Продвинутый 😎: SQL + Python + BI + Статистика + продвинутый A/B + ML.
Умеете все, что необходимо и даже больше. Справитесь с любыми техническими задачами. Рекрутеры будут гоняться за вами с предложениями пособеситься. Есть личное наблюдение, что этот уровень по-немногу становится базовым в большинстве компаний, т.к. уровень аналитики везде развивается.
Кроме того очень важно качать аналитическое мышление. Про это я также писал отдельный пост.
Теперь перейдем непосредственно к навыкам и где их изучать.
>> SQL >>
В большинстве случаев достаточно понимать план запроса, как работают джойны, оконки, CTE и вложенные запросы. Этого обычно достаточно, чтобы пройти собес.
Если планируете развиваться дальше в дата-инженера, то придется копать глубже.
1. Интерактивный тренажер SQL
2. Симулятор SQL
>>> Python >>>
Я бы проходил оба курса (для практики), но можно выбрать и один из них. Они дают одинаковую базу.
Как только почувствуете себя уверенными в задачках можно идти решать хэндбук от Яндекса - он посложнее и содержит меньше теории или продвиные курсы "Поколение Python"
1. Поколение Python
2. Karpov Courses - Основы Python
3. Хэндбук Яндекса
[Опционально: Алгоритмы]
Иногда задачки на алгоритмы любят давать на собесах. Но я лично считаю, что этот навык не требуется аналитику, поэтому ставлю этот навык опциональным.
Обычно спрашивают задачки уровня easy.
К ним можно подготовиться по материалам ниже:
1. Пройдя хэндбук Яндекса
2. Решая задачки уровня easy на leetcode
>>> BI >>>
BI систем на рынке очень много и на первый взгляд может показаться, что надо знать и все.
На самом деле это не так. Достаточно освоить один инструмент, т.к. концептуально они все одинаковые.
Самые популярные BI-системы в РФ на текущий момент: Yandex Datalens и Apache Superset. Поэтому лучше пройти курсы по ним:
1. Курс по Datalens от Яндекса
2. По суперсету бесплатных курсов нет, поэтому предлагаю ознакомиться с документацией и учиться делать дашборды на практике. Благо обе BI выше бесплатные.
Освоив навыки выше вы уже можете откликаться на первые вакансии в аналитике данных. Если хотите повысить свои шансы на оффер (и зп), то осваивайте навыки ниже
>>> Статистика >>>
Обычно я рекомендую 2 материала:
1. Курсы по статистике Анатолия Карпова
2. Книга Сары Бослаф - "Статистика для Всех"
>>> A/B >>>
Когда я начинал изучать A/B, в открытом доступе не было материалов с хорошей практикой, поэтому я опирался на теорию из материалов ниже и нарабатывал опыт на тестовых заданиях.
1. Лекции Глеба Михайлова по A/B
2. Книга Рона Кохави "Доверительное A/B Тестирование"
В комментах подсказали курс Яндекса по A/B. Кто проходил - поделитесь впечатлениями.
Что касается продвинутых методов A/B тестирования (методы снижения дисперсии, Causal Inference методы, SPRT и пр.) то в интернете довольно много статей на эту тему. Можете почиать Habr или профильные тг-каналы (например, у меня можно почитать про Causal Inference методы)
>>> ML >>>
Из бесплатных самый норм это курс ФКН ВШЭ.
В нем есть как теория в виде лекций на ютубе, так и практика.
!!Важно!!
Чем больше практики -> тем лучше результат.
Решайте как можно больше задач и будет вам счастье🌞
С момента, как только я задумался о переходе в аналитику данных по настоящее время, я прошел довольно много платных и бесплатных курсов по аналитике данных. Решил систематизировать эти знания и поделиться с вами.
Начну с того, что я выделяю 3 разных уровня знания хард-скиллов, которые могут быть у аналитика данных:
1. Необходимый минимум🖥: SQL + Python + BI.
Это база, необходимая каждому аналитику. Зная ее вы можете претендовать на стартовые роли и далее обрастать более профильными знаниями. Какими конкретно - зависит от вашей роли аналитика. Подробнее о ролях аналитика здесь
2. Базовый уровень🔫: SQL + Python + BI + Статистика + базовый A/B.
Тот стандарт, на который ориентируются большинство компаний.
На этом уровне вы справитесь с 80% задач аналитика данных (% оценил по личному опыту), что в целом достаточно для роли мидла в большинстве компаний.
3. Продвинутый 😎: SQL + Python + BI + Статистика + продвинутый A/B + ML.
Умеете все, что необходимо и даже больше. Справитесь с любыми техническими задачами. Рекрутеры будут гоняться за вами с предложениями пособеситься. Есть личное наблюдение, что этот уровень по-немногу становится базовым в большинстве компаний, т.к. уровень аналитики везде развивается.
Кроме того очень важно качать аналитическое мышление. Про это я также писал отдельный пост.
Теперь перейдем непосредственно к навыкам и где их изучать.
>> SQL >>
В большинстве случаев достаточно понимать план запроса, как работают джойны, оконки, CTE и вложенные запросы. Этого обычно достаточно, чтобы пройти собес.
Если планируете развиваться дальше в дата-инженера, то придется копать глубже.
1. Интерактивный тренажер SQL
2. Симулятор SQL
>>> Python >>>
Я бы проходил оба курса (для практики), но можно выбрать и один из них. Они дают одинаковую базу.
Как только почувствуете себя уверенными в задачках можно идти решать хэндбук от Яндекса - он посложнее и содержит меньше теории или продвиные курсы "Поколение Python"
1. Поколение Python
2. Karpov Courses - Основы Python
3. Хэндбук Яндекса
[Опционально: Алгоритмы]
Иногда задачки на алгоритмы любят давать на собесах. Но я лично считаю, что этот навык не требуется аналитику, поэтому ставлю этот навык опциональным.
Обычно спрашивают задачки уровня easy.
К ним можно подготовиться по материалам ниже:
1. Пройдя хэндбук Яндекса
2. Решая задачки уровня easy на leetcode
>>> BI >>>
BI систем на рынке очень много и на первый взгляд может показаться, что надо знать и все.
На самом деле это не так. Достаточно освоить один инструмент, т.к. концептуально они все одинаковые.
Самые популярные BI-системы в РФ на текущий момент: Yandex Datalens и Apache Superset. Поэтому лучше пройти курсы по ним:
1. Курс по Datalens от Яндекса
2. По суперсету бесплатных курсов нет, поэтому предлагаю ознакомиться с документацией и учиться делать дашборды на практике. Благо обе BI выше бесплатные.
Освоив навыки выше вы уже можете откликаться на первые вакансии в аналитике данных. Если хотите повысить свои шансы на оффер (и зп), то осваивайте навыки ниже
>>> Статистика >>>
Обычно я рекомендую 2 материала:
1. Курсы по статистике Анатолия Карпова
2. Книга Сары Бослаф - "Статистика для Всех"
>>> A/B >>>
Когда я начинал изучать A/B, в открытом доступе не было материалов с хорошей практикой, поэтому я опирался на теорию из материалов ниже и нарабатывал опыт на тестовых заданиях.
1. Лекции Глеба Михайлова по A/B
2. Книга Рона Кохави "Доверительное A/B Тестирование"
В комментах подсказали курс Яндекса по A/B. Кто проходил - поделитесь впечатлениями.
Что касается продвинутых методов A/B тестирования (методы снижения дисперсии, Causal Inference методы, SPRT и пр.) то в интернете довольно много статей на эту тему. Можете почиать Habr или профильные тг-каналы (например, у меня можно почитать про Causal Inference методы)
>>> ML >>>
Из бесплатных самый норм это курс ФКН ВШЭ.
В нем есть как теория в виде лекций на ютубе, так и практика.
!!Важно!!
Чем больше практики -> тем лучше результат.
Решайте как можно больше задач и будет вам счастье🌞
Telegram
Кусочек пиццы | Аналитика данных
Аналитики всякие нужны, аналитики всякие важны
Часто вижу на разных сайтах, что вакансии аналитиков сильно отличаются задачами, зонами ответственности и используемым стеком. Почему?
Для себя я объясняю это тем, что профессия аналитика ещё молодая, и требования…
Часто вижу на разных сайтах, что вакансии аналитиков сильно отличаются задачами, зонами ответственности и используемым стеком. Почему?
Для себя я объясняю это тем, что профессия аналитика ещё молодая, и требования…
🔥11👍3❤🔥2❤2⚡1 1
Оценка эффектов без A/B: разбираем Interrupted Time-Series Analysis
Продолжаю серию постов про методы оценки экспериментов при отсутствии контрольной группы. В прошлый раз разбирали Difference-in-Difference, сегодня поговорим про Interrupted Time-Series Analysis (ITSA) - метод анализа временных рядов.
Представьте ситуацию: ваша компания запустила новую программу лояльности для всех клиентов одновременно. Никакой контрольной группы нет - все получили изменения. Через месяц менеджмент спрашивает: “Сработала ли программа? Сколько выручки она принесла?”
Что делать?
Можно, конечно, просто сравнить средние показатели до и после. Но это примитивный подход - он не учитывает естественные тренды, сезонность и другие факторы. А можно применить ITSA.
В чем суть метода?
ITSA анализирует изменение временного ряда в момент вмешательства (intervention). Метод позволяет отделить эффект воздействия от естественной динамики показателя.
Ключевая идея: мы строим модель поведения метрики ДО вмешательства, а затем смотрим, насколько фактические значения ПОСЛЕ отклоняются от прогноза этой модели.
Метод оценивает два типа эффектов:
1. Немедленное изменение уровня (level change) - мгновенный скачок метрики сразу после вмешательства. Например, выручка выросла на 15% в первый же день после запуска программы.
2. Изменение тренда (slope change) - изменение скорости роста метрики. Например, до программы выручка росла на 2% в месяц, а после стала расти на 5% в месяц.
Базовая модель ITSA выглядит так:
Где:
- β0 - тренд до вмешательства
- β2 - немедленное изменение уровня
- β3 - изменение тренда после вмешательства
- Воздействие - бинарная переменная (0 до, 1 после)
- Время_после - количество периодов после вмешательства
Пример
Допустим, вы в компании запустили реферальную программу. У вас есть данные по количеству регистраций за 30 недель до запуска и 20 недель после.
До запуска регистрации росли линейно на ~50 пользователей в неделю. После запуска:
- Немедленный скачок: +300 регистраций в первую неделю (β₂)
- Изменение тренда: рост ускорился до +80 пользователей в неделю (β₃)
Модель показала статистически значимые изменения обоих параметров (p < 0.05), что подтвердило эффективность программы.
Условия применения метода
ITSA не универсален. Для корректного применения важно соблюдать несколько условий:
1. Достаточная длина временного ряда
Минимум 8-10 наблюдений до вмешательства и желательно столько же после. Чем больше данных - тем надежнее оценка.
2. Стабильный процесс генерации данных
До вмешательства метрика должна следовать предсказуемому паттерну. Если данные до воздействия хаотичны, модель не сможет выделить эффект.
3. Отсутствие других вмешательств
Критично важно: в момент "разрыва" не должно происходить других значимых событий. Если вы запустили программу лояльности 1 декабря, а это еще и начало новогодней распродажи - метод не сможет разделить эффекты.
4. Отсутствие автокорреляции остатков
Последовательные наблюдения не должны быть сильно коррелированы.
Когда ITSA работает лучше других методов?
Метод особенно полезен, когда:
- У вас нет возможности выделить контрольную группу
- Вмешательство применяется ко всей популяции одновременно
- Есть длинная история наблюдений до события
- Важно понять не только факт эффекта, но и его динамику
Ограничения метода
ITSA предполагает, что без вмешательства тренд продолжился бы таким же. Но это допущение может не выполняться. Например, если рынок внезапно изменился или конкурент запустил агрессивную акцию.
Кроме того, метод чувствителен к сезонности. Если ваши данные имеют сильные сезонные колебания - их нужно учитывать в модели, иначе оценка будет смещенной.
Как и любой инструмент причинно-следственного анализа, ITSA имеет свои сильные и слабые стороны. Он не заменяет рандомизированные эксперименты, но когда тест невозможен - это один из наиболее простых и доступных методов.
В следующих постах разберу более сложные методы, используемые для случаев, когда стандартных подходов недостаточно.
Продолжаю серию постов про методы оценки экспериментов при отсутствии контрольной группы. В прошлый раз разбирали Difference-in-Difference, сегодня поговорим про Interrupted Time-Series Analysis (ITSA) - метод анализа временных рядов.
Представьте ситуацию: ваша компания запустила новую программу лояльности для всех клиентов одновременно. Никакой контрольной группы нет - все получили изменения. Через месяц менеджмент спрашивает: “Сработала ли программа? Сколько выручки она принесла?”
Что делать?
Можно, конечно, просто сравнить средние показатели до и после. Но это примитивный подход - он не учитывает естественные тренды, сезонность и другие факторы. А можно применить ITSA.
В чем суть метода?
ITSA анализирует изменение временного ряда в момент вмешательства (intervention). Метод позволяет отделить эффект воздействия от естественной динамики показателя.
Ключевая идея: мы строим модель поведения метрики ДО вмешательства, а затем смотрим, насколько фактические значения ПОСЛЕ отклоняются от прогноза этой модели.
Метод оценивает два типа эффектов:
1. Немедленное изменение уровня (level change) - мгновенный скачок метрики сразу после вмешательства. Например, выручка выросла на 15% в первый же день после запуска программы.
2. Изменение тренда (slope change) - изменение скорости роста метрики. Например, до программы выручка росла на 2% в месяц, а после стала расти на 5% в месяц.
Базовая модель ITSA выглядит так:
Y = β0 + β1 * Время + β2 * Воздействие + β3 * Время_после + e
Где:
- β0 - тренд до вмешательства
- β2 - немедленное изменение уровня
- β3 - изменение тренда после вмешательства
- Воздействие - бинарная переменная (0 до, 1 после)
- Время_после - количество периодов после вмешательства
Пример
Допустим, вы в компании запустили реферальную программу. У вас есть данные по количеству регистраций за 30 недель до запуска и 20 недель после.
До запуска регистрации росли линейно на ~50 пользователей в неделю. После запуска:
- Немедленный скачок: +300 регистраций в первую неделю (β₂)
- Изменение тренда: рост ускорился до +80 пользователей в неделю (β₃)
Модель показала статистически значимые изменения обоих параметров (p < 0.05), что подтвердило эффективность программы.
Условия применения метода
ITSA не универсален. Для корректного применения важно соблюдать несколько условий:
1. Достаточная длина временного ряда
Минимум 8-10 наблюдений до вмешательства и желательно столько же после. Чем больше данных - тем надежнее оценка.
2. Стабильный процесс генерации данных
До вмешательства метрика должна следовать предсказуемому паттерну. Если данные до воздействия хаотичны, модель не сможет выделить эффект.
3. Отсутствие других вмешательств
Критично важно: в момент "разрыва" не должно происходить других значимых событий. Если вы запустили программу лояльности 1 декабря, а это еще и начало новогодней распродажи - метод не сможет разделить эффекты.
4. Отсутствие автокорреляции остатков
Последовательные наблюдения не должны быть сильно коррелированы.
Когда ITSA работает лучше других методов?
Метод особенно полезен, когда:
- У вас нет возможности выделить контрольную группу
- Вмешательство применяется ко всей популяции одновременно
- Есть длинная история наблюдений до события
- Важно понять не только факт эффекта, но и его динамику
Ограничения метода
ITSA предполагает, что без вмешательства тренд продолжился бы таким же. Но это допущение может не выполняться. Например, если рынок внезапно изменился или конкурент запустил агрессивную акцию.
Кроме того, метод чувствителен к сезонности. Если ваши данные имеют сильные сезонные колебания - их нужно учитывать в модели, иначе оценка будет смещенной.
Как и любой инструмент причинно-следственного анализа, ITSA имеет свои сильные и слабые стороны. Он не заменяет рандомизированные эксперименты, но когда тест невозможен - это один из наиболее простых и доступных методов.
В следующих постах разберу более сложные методы, используемые для случаев, когда стандартных подходов недостаточно.
🔥5
Кусочек пиццы | Аналитика данных pinned «Что и где учить, если решил стать аналитиком данных С момента, как только я задумался о переходе в аналитику данных по настоящее время, я прошел довольно много платных и бесплатных курсов по аналитике данных. Решил систематизировать эти знания и поделиться…»
О работе в бигтехе и небольших компаниях 🏢
Только что вернулся со съезда дата-офиса в Додо и решил поразмышлять о том, чем отличается работа аналитика в больших корпорациях и компаниях поменьше. Я работал в обоих типах компаний и у меня сформировались кое-какие наблюдения. Однако я постараюсь не привязываться к конкретным брендам, а дам общую оценку на основании своего опыта.
Инфраструктура: мощь🖥 vs гибкость 🛠
В бигтехе инфраструктура - это то, на что стоит равняться. A/B-платформы позволяют запускать эксперименты на миллионах пользователей в пару кликов. Автоматический расчет значимости, проверка SRM, детальная сегментация - все из коробки. Витрины данных содержат готовые портреты пользователей.
Нужен анализ сегмента? Пишешь запрос к витрине - готово. В небольших компаниях все иначе. Витрины содержат только базовую информацию. Портрет пользователя собираешь из CRM, данных о заказах, мобильного приложения. На тот же анализ уходит в разы больше времени.
Но есть плюс: ты сам строишь инфраструктуру. Видишь проблему - предлагаешь решение и внедряешь. Никаких согласований с тремя командами и архитекторами данных.
Процессы: хаос🔥 и структура 📋
В бигтехе процессы зависят от команды. Есть направления с отточенными процедурами: стандартные темплейты, обязательные пре- и пост-анализы. Но есть команды, где все держится на энтузиазме отдельных аналитиков.
В небольших компаниях процессы часто выстроены лучше, чем ожидаешь. Четкая методология, документированные подходы, структурированная отчетность.
Главное различие - в требованиях к результату. В бигтехе каждый анализ должен приводить к конкретному результату: рост метрик или экономия бюджета. "Просто посмотреть на данные" недостаточно - нужен actionable инсайт.
В небольших компаниях больше терпимости к исследовательским задачам. Можно изучать поведение ради понимания, а не только ради метрик.
Карьерные перспективы: винтик⚙️ или архитектор 🏗
В бигтехе легко стать винтиком в корпоративной машине. Отвечаешь за узкий кусок продукта, делаешь его хорошо, но видишь только свой участок.
Но есть обратная сторона: огромное количество направлений. Устал анализировать конверсию в e-commerce? Переходи в команду монетизации контента. Надоела продуктовая аналитика? Иди в маркетинговую. Внутренняя мобильность дает возможность расти горизонтально.
В небольших компаниях ты не винтик - ты архитектор. Отвечаешь за аналитику целого направления, влияешь на стратегию, видишь результат своих решений напрямую. Больше ответственности, больше свободы.
Но новых направлений открывается меньше. Если хочешь сменить фокус с продуктовой аналитики на что-то радикально другое - скорее всего, придется менять компанию.
Скорость🚀 и бюрократия 📝
В обоих типах компаний скорость принятия решений может быть высокой. Если есть данные, подтверждающие гипотезу - решение принимается быстро.
Разница в другом. В бигтехе бюрократия возникает на этапе доступа к данным. Нужны данные из смежной системы? Подавай заявку, обоснуй, жди апрува. В небольших компаниях меньше формальностей, но больше хаоса. Данные лежат где попало, документации мало.
Что выбрать? 🤔
Если ты начинающий аналитик - бигтех даст сильную техническую базу и покажет высокие стандарты. Научишься работать с большими данными, увидишь аналитику в масштабе. Правда, готовься к высокой конкуренции.
Если ты опытный специалист и хочешь влиять на продукт - в небольших компаниях больше свободы и ответственности. Но потребуется больше времени на техническую работу.
Идеальный путь - начать в бигтехе, получить сильную базу, а затем перейти в растущую компанию, где можно применить знания для создания процессов с нуля.
Парадокс в том, что многие мечтают о переходе в противоположную сторону. Те, кто в бигтехе, устают от бюрократии. Те, кто в небольших компаниях, мечтают о ресурсах. Трава всегда зеленее.
Только что вернулся со съезда дата-офиса в Додо и решил поразмышлять о том, чем отличается работа аналитика в больших корпорациях и компаниях поменьше. Я работал в обоих типах компаний и у меня сформировались кое-какие наблюдения. Однако я постараюсь не привязываться к конкретным брендам, а дам общую оценку на основании своего опыта.
Инфраструктура: мощь🖥 vs гибкость 🛠
В бигтехе инфраструктура - это то, на что стоит равняться. A/B-платформы позволяют запускать эксперименты на миллионах пользователей в пару кликов. Автоматический расчет значимости, проверка SRM, детальная сегментация - все из коробки. Витрины данных содержат готовые портреты пользователей.
Нужен анализ сегмента? Пишешь запрос к витрине - готово. В небольших компаниях все иначе. Витрины содержат только базовую информацию. Портрет пользователя собираешь из CRM, данных о заказах, мобильного приложения. На тот же анализ уходит в разы больше времени.
Но есть плюс: ты сам строишь инфраструктуру. Видишь проблему - предлагаешь решение и внедряешь. Никаких согласований с тремя командами и архитекторами данных.
Процессы: хаос🔥 и структура 📋
В бигтехе процессы зависят от команды. Есть направления с отточенными процедурами: стандартные темплейты, обязательные пре- и пост-анализы. Но есть команды, где все держится на энтузиазме отдельных аналитиков.
В небольших компаниях процессы часто выстроены лучше, чем ожидаешь. Четкая методология, документированные подходы, структурированная отчетность.
Главное различие - в требованиях к результату. В бигтехе каждый анализ должен приводить к конкретному результату: рост метрик или экономия бюджета. "Просто посмотреть на данные" недостаточно - нужен actionable инсайт.
В небольших компаниях больше терпимости к исследовательским задачам. Можно изучать поведение ради понимания, а не только ради метрик.
Карьерные перспективы: винтик⚙️ или архитектор 🏗
В бигтехе легко стать винтиком в корпоративной машине. Отвечаешь за узкий кусок продукта, делаешь его хорошо, но видишь только свой участок.
Но есть обратная сторона: огромное количество направлений. Устал анализировать конверсию в e-commerce? Переходи в команду монетизации контента. Надоела продуктовая аналитика? Иди в маркетинговую. Внутренняя мобильность дает возможность расти горизонтально.
В небольших компаниях ты не винтик - ты архитектор. Отвечаешь за аналитику целого направления, влияешь на стратегию, видишь результат своих решений напрямую. Больше ответственности, больше свободы.
Но новых направлений открывается меньше. Если хочешь сменить фокус с продуктовой аналитики на что-то радикально другое - скорее всего, придется менять компанию.
Скорость🚀 и бюрократия 📝
В обоих типах компаний скорость принятия решений может быть высокой. Если есть данные, подтверждающие гипотезу - решение принимается быстро.
Разница в другом. В бигтехе бюрократия возникает на этапе доступа к данным. Нужны данные из смежной системы? Подавай заявку, обоснуй, жди апрува. В небольших компаниях меньше формальностей, но больше хаоса. Данные лежат где попало, документации мало.
Что выбрать? 🤔
Если ты начинающий аналитик - бигтех даст сильную техническую базу и покажет высокие стандарты. Научишься работать с большими данными, увидишь аналитику в масштабе. Правда, готовься к высокой конкуренции.
Если ты опытный специалист и хочешь влиять на продукт - в небольших компаниях больше свободы и ответственности. Но потребуется больше времени на техническую работу.
Идеальный путь - начать в бигтехе, получить сильную базу, а затем перейти в растущую компанию, где можно применить знания для создания процессов с нуля.
Парадокс в том, что многие мечтают о переходе в противоположную сторону. Те, кто в бигтехе, устают от бюрократии. Те, кто в небольших компаниях, мечтают о ресурсах. Трава всегда зеленее.
🔥8
Нас 100!
Спасибо всем, что читаете мой канал🙏
Чтобы продолжать радовать вас еще более интересным контентом, давайте немного познакомимся.
Спасибо всем, что читаете мой канал🙏
Чтобы продолжать радовать вас еще более интересным контентом, давайте немного познакомимся.
🔥5
В какой сфере вы работаете?
Anonymous Poll
64%
Аналитика данных
18%
Другая сфера в ИТ
18%
Другая сфера не в ИТ
Удаленка vs неудаленка
Я встаю без будильника. И считаю это одним из тех благ, за которые надо ценить работу в IT - гибкий график.
Но вот че-то уже вторую неделю собираюсь в офис и никак до него не дойду. Каждый вечер думаю: “Ну вот завтра точно поеду” А потом просыпаюсь в 9:30, и понимаю - ехать уже нет смысла. Час в одну сторону, час обратно. Это ж два часа продуктивного времени.
Дома достаточно легко погрузиться на 3-4 часа в задачу, особенно, если нет созвонов среди дня. Плюс можно поработать вечером, если есть вдохновение. Вчера как раз был такой случай.
И вроде понятно, почему все так топят за удаленку. НО!
После 2+ недель дома в таком режиме я начинаю себя чувствовать то ли отшельником, то ли затворником, застрявшем в вечном дне сурка: кровать -> монитор -> кровать (ну и плюс прогулки до магазина и зала в промежутках).
В офисе как-то легче переключаться между режимами работа/ дом, т.к. обычно после того, как ты закрыл ноут в офисе, дома ты его уже не открываешь. Плюс неформальное общение помогает разгрузить голову между задачами. Дома с этим сложнее.
Но каждый день ходить в офис это конечно тоже нафиг надо. Слишком много времени тратится на поездки туда-обратно.
У вас как с этим?
Я встаю без будильника. И считаю это одним из тех благ, за которые надо ценить работу в IT - гибкий график.
Но вот че-то уже вторую неделю собираюсь в офис и никак до него не дойду. Каждый вечер думаю: “Ну вот завтра точно поеду” А потом просыпаюсь в 9:30, и понимаю - ехать уже нет смысла. Час в одну сторону, час обратно. Это ж два часа продуктивного времени.
Дома достаточно легко погрузиться на 3-4 часа в задачу, особенно, если нет созвонов среди дня. Плюс можно поработать вечером, если есть вдохновение. Вчера как раз был такой случай.
И вроде понятно, почему все так топят за удаленку. НО!
После 2+ недель дома в таком режиме я начинаю себя чувствовать то ли отшельником, то ли затворником, застрявшем в вечном дне сурка: кровать -> монитор -> кровать (ну и плюс прогулки до магазина и зала в промежутках).
В офисе как-то легче переключаться между режимами работа/ дом, т.к. обычно после того, как ты закрыл ноут в офисе, дома ты его уже не открываешь. Плюс неформальное общение помогает разгрузить голову между задачами. Дома с этим сложнее.
Но каждый день ходить в офис это конечно тоже нафиг надо. Слишком много времени тратится на поездки туда-обратно.
У вас как с этим?
👍5😁4
Навигатор по постам
Постов в канале стало больше, поэтому собрал небольшой пост-навигатор, чтобы проще в них ориентироваться.
Causal Inference методы
- Как оценивать эффекты, когда нет контрольной группы
- Difference-in-Differences (DiD) или Разница Разниц
- Interrupted Time-Series Analysis (ITSA)
- Propensity Score Matching (PSM)
Метрики
- Что такое иерархия метрик
- Как работать с метриками
- LTV и CAC
Кейсы с собесов
- Аномальная доля возвратов
- Выпуск промокода
- Падение метрики
Карьера
- Виды аналитиков
- Что учить, если решил стать аналитиком данных
- Как уровень вовлеченности в бизнес влияет на карьеру аналитика
- Мой опыт работы в Бигтехе и индустрии
- Мой опыт собеседований в зарубежные компании
- О необходимости джунов
- Заменит ли нас ИИ
Общее
- Есть ложь, есть наглая ложь, а есть статистика
- Про многозадачность
- Как статистика помогает не сдаваться
- Сколько знакомств надо совершить, чтобы найти идеального партнера?
- Интернет умер
[Со временем этот навигатор будет разрастаться, так что не теряйте его]
Постов в канале стало больше, поэтому собрал небольшой пост-навигатор, чтобы проще в них ориентироваться.
Causal Inference методы
- Как оценивать эффекты, когда нет контрольной группы
- Difference-in-Differences (DiD) или Разница Разниц
- Interrupted Time-Series Analysis (ITSA)
- Propensity Score Matching (PSM)
Метрики
- Что такое иерархия метрик
- Как работать с метриками
- LTV и CAC
Кейсы с собесов
- Аномальная доля возвратов
- Выпуск промокода
- Падение метрики
Карьера
- Виды аналитиков
- Что учить, если решил стать аналитиком данных
- Как уровень вовлеченности в бизнес влияет на карьеру аналитика
- Мой опыт работы в Бигтехе и индустрии
- Мой опыт собеседований в зарубежные компании
- О необходимости джунов
- Заменит ли нас ИИ
Общее
- Есть ложь, есть наглая ложь, а есть статистика
- Про многозадачность
- Как статистика помогает не сдаваться
- Сколько знакомств надо совершить, чтобы найти идеального партнера?
- Интернет умер
[Со временем этот навигатор будет разрастаться, так что не теряйте его]
Telegram
Кусочек пиццы | Аналитика данных
Аналитики всякие нужны, аналитики всякие важны
Часто вижу на разных сайтах, что вакансии аналитиков сильно отличаются задачами, зонами ответственности и используемым стеком. Почему?
Для себя я объясняю это тем, что профессия аналитика ещё молодая, и требования…
Часто вижу на разных сайтах, что вакансии аналитиков сильно отличаются задачами, зонами ответственности и используемым стеком. Почему?
Для себя я объясняю это тем, что профессия аналитика ещё молодая, и требования…
🔥3❤2
Кусочек пиццы | Аналитика данных pinned «Навигатор по постам Постов в канале стало больше, поэтому собрал небольшой пост-навигатор, чтобы проще в них ориентироваться. Causal Inference методы - Как оценивать эффекты, когда нет контрольной группы - Difference-in-Differences (DiD) или Разница Разниц…»
Как писать оптимальные SQL-запросы 🔍
Когда только начинаешь писать запросы на SQL, сложно понять, чем отличается оптимальный запрос от неоптимального. Непонятно - почему один запрос выполняется 10 секунд, а другой 10 минут, хотя оба возвращают одинаковый результат.
Обычно, разница кроется не в каких-то сложных техниках оптимизации, а в базовых принципах написания запросов.
Ниже вы найдете чек-лист того, на что стоит обращать внимание - это решает большинство проблем с производительностью.
1. Продумывайте план запроса заранее 🗺
Перед написанием кода ответьте себе:
- Какие таблицы нужны?
- В каком порядке их джойнить?
- Какие фильтры применить?
- Какие колонки нужны в результате?
Не начинайте писать код сразу. Нарисуйте схему: берем таблицу A, фильтруем по X, джойним с B, агрегируем.
2. Прикидывайте объемы данных 🧮
Всегда держите в голове размеры таблиц:
- Сколько строк в таблице? (1000? 1 млн? 100 млн?)
- Сколько останется после фильтра?
- Сколько получится после JOIN?
Пример: таблица заказов - 10 млн строк, пользователей - 1 млн. Джойним без фильтров - база пытается соединить 10 млн х 1 млн. С фильтром по месяцу: 300 тыс х 50 тыс - уже реально.
Если ожидаете 1000 строк, а получается 10 млн - где-то ошибка.
3. Выбирайте только нужные столбцы 📋
SELECT * вытягивает все столбцы, включая тяжелые поля. Всегда указывайте конкретные:
Это особенно критично пр использовании CTE - лишние колонки тащатся через весь запрос.
4. Не дублируйте расчеты - выносите в CTE 🔄
Плохой пример:
База дважды обращается к orders.
Хороший пример:
5. Фильтруйте данные ДО JOIN🔍
Плохой пример:
Хороший пример:
Простое правило: сначала фильтруем, потом джойним.
6. Понимайте сложность операций:
От быстрых к медленным:
1. Фильтрация WHERE - быстро (особенно с индексом)
2. Сортировка ORDER BY - умеренно (зависит от объема)
3. JOIN - дорого на больших таблицах
4. DISTINCT - дорого (сканирует все строки)
5. GROUP BY - дорого (чем меньше групп, тем быстрее)
6. Оконные функции - самые дорогие
Оконные функции (ROW_NUMBER, RANK, LAG) удобны, но требуют сортировки. Используйте только когда нужен рейтинг или сравнение с предыдущими значениями. Если можно обойтись GROUP BY - обходитесь.
7. Минимизируйте агрегации 📊
Плохой пример: Агрегируем -> Джойним -> Снова агрегируем
Хороший пример: Джойним -> Один раз агрегируем в конце
Каждая агрегация дорогая. Одна аггрегация в конце будет быстрее трех промежуточных.
8. Не применяйте функции в WHERE 🚫
Плохой пример:
9. Не забывайте тестировать запрос на ограниченных выборках
Каждый раз гонять запрос на полной выборке - дорого и неэффективно. Старайтесь, при возможности, ограничивать таблицы: брать данные за день или месяц вместо года, добавлять LIMIT, выводить схемы таблиц, вместо самой таблицы. Это значительно ускорит вашу работу
Финальный чек-лист ✅
Ответьте на эти вопросы
1. Продуман план запроса?
2. Прикинули объемы данных?
3. Выбраны только нужные колонки?
4. Расчеты не дублируются?
5. Фильтры используются ДО JOIN?
6. Оконные функции только там, где нужно?
7. Минимум агрегаций?
8. Протестировали запрос на маленьких выборках?
Ставьте ✍, если этот пост оказался вам полезен
Когда только начинаешь писать запросы на SQL, сложно понять, чем отличается оптимальный запрос от неоптимального. Непонятно - почему один запрос выполняется 10 секунд, а другой 10 минут, хотя оба возвращают одинаковый результат.
Обычно, разница кроется не в каких-то сложных техниках оптимизации, а в базовых принципах написания запросов.
Ниже вы найдете чек-лист того, на что стоит обращать внимание - это решает большинство проблем с производительностью.
1. Продумывайте план запроса заранее 🗺
Перед написанием кода ответьте себе:
- Какие таблицы нужны?
- В каком порядке их джойнить?
- Какие фильтры применить?
- Какие колонки нужны в результате?
Не начинайте писать код сразу. Нарисуйте схему: берем таблицу A, фильтруем по X, джойним с B, агрегируем.
2. Прикидывайте объемы данных 🧮
Всегда держите в голове размеры таблиц:
- Сколько строк в таблице? (1000? 1 млн? 100 млн?)
- Сколько останется после фильтра?
- Сколько получится после JOIN?
Пример: таблица заказов - 10 млн строк, пользователей - 1 млн. Джойним без фильтров - база пытается соединить 10 млн х 1 млн. С фильтром по месяцу: 300 тыс х 50 тыс - уже реально.
Если ожидаете 1000 строк, а получается 10 млн - где-то ошибка.
3. Выбирайте только нужные столбцы 📋
SELECT * вытягивает все столбцы, включая тяжелые поля. Всегда указывайте конкретные:
SELECT order_id, user_id, created_at, amount FROM orders
Это особенно критично пр использовании CTE - лишние колонки тащатся через весь запрос.
4. Не дублируйте расчеты - выносите в CTE 🔄
Плохой пример:
SELECT
(SELECT COUNT(*) FROM orders WHERE user_id = u.id),
(SELECT SUM(amount) FROM orders WHERE user_id = u.id)
FROM users u
База дважды обращается к orders.
Хороший пример:
WITH user_orders AS (
SELECT user_id, COUNT(*) as cnt, SUM(amount) as total
FROM orders GROUP BY user_id
)
SELECT u.*, uo.cnt, uo.total
FROM users u JOIN user_orders uo ON u.id = uo.user_id
5. Фильтруйте данные ДО JOIN🔍
Плохой пример:
SELECT * FROM orders o
JOIN users u ON o.user_id = u.id
WHERE o.created_at >= '2024-01-01'
Хороший пример:
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at >= '2024-01-01'
)
SELECT * FROM recent_orders o
JOIN users u ON o.user_id = u.id
Простое правило: сначала фильтруем, потом джойним.
6. Понимайте сложность операций:
От быстрых к медленным:
1. Фильтрация WHERE - быстро (особенно с индексом)
2. Сортировка ORDER BY - умеренно (зависит от объема)
3. JOIN - дорого на больших таблицах
4. DISTINCT - дорого (сканирует все строки)
5. GROUP BY - дорого (чем меньше групп, тем быстрее)
6. Оконные функции - самые дорогие
Оконные функции (ROW_NUMBER, RANK, LAG) удобны, но требуют сортировки. Используйте только когда нужен рейтинг или сравнение с предыдущими значениями. Если можно обойтись GROUP BY - обходитесь.
7. Минимизируйте агрегации 📊
Плохой пример: Агрегируем -> Джойним -> Снова агрегируем
Хороший пример: Джойним -> Один раз агрегируем в конце
Каждая агрегация дорогая. Одна аггрегация в конце будет быстрее трех промежуточных.
8. Не применяйте функции в WHERE 🚫
Плохой пример:
WHERE DATE(created_at) = '2024-01-01'Хороший пример:
WHERE created_at >= '2024-01-01' AND created_at < '2024-01-02'
9. Не забывайте тестировать запрос на ограниченных выборках
Каждый раз гонять запрос на полной выборке - дорого и неэффективно. Старайтесь, при возможности, ограничивать таблицы: брать данные за день или месяц вместо года, добавлять LIMIT, выводить схемы таблиц, вместо самой таблицы. Это значительно ускорит вашу работу
Финальный чек-лист ✅
Ответьте на эти вопросы
1. Продуман план запроса?
2. Прикинули объемы данных?
3. Выбраны только нужные колонки?
4. Расчеты не дублируются?
5. Фильтры используются ДО JOIN?
6. Оконные функции только там, где нужно?
7. Минимум агрегаций?
8. Протестировали запрос на маленьких выборках?
Ставьте ✍, если этот пост оказался вам полезен
🔥7✍6❤3❤🔥1
Магия формулы Бернулли: почему важно не сдаваться 🎲
Пока все отдыхают, решил немножко разбавить атмосферу аналитических постов и поразмышлять на тему упорства.
Почти все из нас думают что-то поменять в своей жизни: сменить профессию, найти любовь, запустить бизнес. Некоторые пробуют сделать первую попытку. И у них не получается. Возможно делают вторую - и опять не получается.
Особенно грустно становится, когда слышишь, как везде говорят: “90% стартапов проваливаются в первые три года”, “только 1% книг становятся бестселлерами”, “50% браков разрушается” и тд.
Хочется опустить руки и ничего не делать.
Но стоит ли?
Ответить на этот вопрос может помочь теория вероятности, а точнее формула Бернулли. Она описывает вероятность хотя бы одного успеха (а больше нам и не надо) и выглядит так:
P(успех) = 1 - (1 - p)^n
где p - вероятность успеха в одной попытке, n - количество попыток.
Как это работает на практике?
Представьте, что вы ищете работу аналитиком. Допустим, вы знаете, что средний шанс получить оффер после одного собеседования - около 5% (p = 0.05). Звучит уныло.
Но посмотрим на математику:
- 1 собеседование: шанс = 5%
- 5 собеседований: шанс = 23%
- 10 собеседований: шанс = 40%
- 20 собеседований: шанс = 64%
Даже, если допустить, что вы не стали лучше как специалист, а просто продолжали пытаться, ваш шанс устроиться на работу после 20 собеседований вырос в 13 раз! На самом деле с каждым следующим собесом вероятность p тоже выросла, т.к. ваши навыки прохождения собеседований тоже подросли.
Другой пример - нетворкинг. Допустим, шанс завести полезное знакомство с одним человеком на конференции - 5%. После знакомства с 50 людьми ваш шанс найти кого-то полезного = 92%. Просто ВАУ.😱
Что это значит?
Формула Бернулли показывает простую вещь: упорство - это не просто красивые слова мотивационных спикеров. Это математическая закономерность.
Когда вы слышите истории успеха, вы видите результат. Но не видите количество попыток. Человек с оффером в топовую компанию, возможно, прошел 30 собеседований. Успешный предприниматель запустил 5-10 неуспешных проектов до того единственного проекта, который взлетел.
Разница между теми, кто достигает целей, и теми, кто нет - часто просто в количестве попыток. Не в таланте. Не в удаче. В попытках.
Важный нюанс
Формула работает, если вероятность успеха p больше нуля. Если вы делаете что-то с нулевым шансом - количество попыток не поможет.
Поэтому важно:
- Убедиться, что движетесь в правильном направлении (p > 0)
- Извлекать уроки из неудач (увеличивать p с каждой попыткой)
- Не сдаваться (увеличивать n)
Если ваш шанс успеха хотя бы 5%, то после 50 попыток вы достигнете результата с вероятностью 92%. Математика на вашей стороне.
Применимо ли это в аналитике?
Еще как. В нашей профессии это работает постоянно:
Ищете инсайт в данных? Чем больше гипотез проверите, тем выше шанс найти значимое. Пытаетесь объяснить аномалию? Перебор версий приведет к ответу. Учите новый инструмент? Количество практики решает.
Даже если каждая попытка имеет низкий шанс, совокупная вероятность растет быстро.
Итого
В следующий раз, когда столкнетесь с неудачей, вспомните формулу Бернулли. Вы не провалились - вы просто уменьшили (1-p)^n еще на один шаг.
Главное - не останавливаться. Математика докажет, что вы были правы.
P.S. Это не призыв биться головой об стену. Если после 20 попыток ничего не меняется - возможно, стоит пересмотреть подход и увеличить p, а не только n😁
Пока все отдыхают, решил немножко разбавить атмосферу аналитических постов и поразмышлять на тему упорства.
Почти все из нас думают что-то поменять в своей жизни: сменить профессию, найти любовь, запустить бизнес. Некоторые пробуют сделать первую попытку. И у них не получается. Возможно делают вторую - и опять не получается.
Особенно грустно становится, когда слышишь, как везде говорят: “90% стартапов проваливаются в первые три года”, “только 1% книг становятся бестселлерами”, “50% браков разрушается” и тд.
Хочется опустить руки и ничего не делать.
Но стоит ли?
Ответить на этот вопрос может помочь теория вероятности, а точнее формула Бернулли. Она описывает вероятность хотя бы одного успеха (а больше нам и не надо) и выглядит так:
P(успех) = 1 - (1 - p)^n
где p - вероятность успеха в одной попытке, n - количество попыток.
Как это работает на практике?
Представьте, что вы ищете работу аналитиком. Допустим, вы знаете, что средний шанс получить оффер после одного собеседования - около 5% (p = 0.05). Звучит уныло.
Но посмотрим на математику:
- 1 собеседование: шанс = 5%
- 5 собеседований: шанс = 23%
- 10 собеседований: шанс = 40%
- 20 собеседований: шанс = 64%
Даже, если допустить, что вы не стали лучше как специалист, а просто продолжали пытаться, ваш шанс устроиться на работу после 20 собеседований вырос в 13 раз! На самом деле с каждым следующим собесом вероятность p тоже выросла, т.к. ваши навыки прохождения собеседований тоже подросли.
Другой пример - нетворкинг. Допустим, шанс завести полезное знакомство с одним человеком на конференции - 5%. После знакомства с 50 людьми ваш шанс найти кого-то полезного = 92%. Просто ВАУ.😱
Что это значит?
Формула Бернулли показывает простую вещь: упорство - это не просто красивые слова мотивационных спикеров. Это математическая закономерность.
Когда вы слышите истории успеха, вы видите результат. Но не видите количество попыток. Человек с оффером в топовую компанию, возможно, прошел 30 собеседований. Успешный предприниматель запустил 5-10 неуспешных проектов до того единственного проекта, который взлетел.
Разница между теми, кто достигает целей, и теми, кто нет - часто просто в количестве попыток. Не в таланте. Не в удаче. В попытках.
Важный нюанс
Формула работает, если вероятность успеха p больше нуля. Если вы делаете что-то с нулевым шансом - количество попыток не поможет.
Поэтому важно:
- Убедиться, что движетесь в правильном направлении (p > 0)
- Извлекать уроки из неудач (увеличивать p с каждой попыткой)
- Не сдаваться (увеличивать n)
Если ваш шанс успеха хотя бы 5%, то после 50 попыток вы достигнете результата с вероятностью 92%. Математика на вашей стороне.
Применимо ли это в аналитике?
Еще как. В нашей профессии это работает постоянно:
Ищете инсайт в данных? Чем больше гипотез проверите, тем выше шанс найти значимое. Пытаетесь объяснить аномалию? Перебор версий приведет к ответу. Учите новый инструмент? Количество практики решает.
Даже если каждая попытка имеет низкий шанс, совокупная вероятность растет быстро.
Итого
В следующий раз, когда столкнетесь с неудачей, вспомните формулу Бернулли. Вы не провалились - вы просто уменьшили (1-p)^n еще на один шаг.
Главное - не останавливаться. Математика докажет, что вы были правы.
P.S. Это не призыв биться головой об стену. Если после 20 попыток ничего не меняется - возможно, стоит пересмотреть подход и увеличить p, а не только n😁
🔥10👍7❤3❤🔥2
Propensity Score Matching: когда A/B тест невозможен
Давненько не было постов про Causal Inference методы. Напомню, что ранее я уже писал про DiD и ITS.
Сегодня поговорим про один метод, который на первый взгляд может показаться ультимативным, но на самом деле он, как и прочие методы, применим не везде - Propensity Score Matching.
В чем суть метода?
Представьте ситуацию: вы запустили новую фичу, но не для всех пользователей случайно, а только для тех, кто сам ее активировал. Классический A/B тест не сработает - группы изначально разные. Активные пользователи включили фичу, пассивные - нет.
Вопрос: как понять, влияет ли фича на метрики, или разница только из-за того, что группы изначально были разными?
PSM решает эту проблему. Метод позволяет найти для каждого пользователя из тестовой группы похожего "близнеца" из контрольной группы. Похожего по всем важным характеристикам: траты, активность, история покупок и тд.
Вот краткий алгоритм:
- Шаг 1: Строим модель, которая предсказывает вероятность попадания в тестовую группу
Берем характеристики пользователей (возраст, город, количество заказов, средний чек) и строим логистическую регрессию. Она предсказывает вероятность попадания в тестовую группу - это и есть Propensity Score.
- Шаг 2: Матчим пользователей по Propensity Score
Для каждого пользователя из тестовой группы ищем пользователя из контрольной с максимально близким Propensity Score.
- Шаг 3: Сравниваем метрики
У нас есть две сбалансированные группы - можем сравнить средние значения целевой метрики.
Когда PSM работает хорошо?
1. Есть много признаков, которыми можно описать пользователей
Больше данных -> точнее модель -> лучше матчинг.
2. Группы пересекаются по характеристикам
Если в тестовой группе только VIP-клиенты, а в контроле их нет - матчинг не сработает. Нужно, чтобы для каждого пользователя из теста нашелся похожий в контроле.
3. Решение о попадании в группу зависит от наблюдаемых факторов
Если пользователь активировал фичу из-за факторов, которые мы можем измерить (активность, возраст, город) - отлично. Если из-за чего-то скрытого (настроение, рекомендация друга) - PSM это не учтет и возникнет смещение.
Как проверить, что матчинг работает?
Недостаточно просто проверить баланс групп по характеристикам. Нужна валидация на историческом периоде.
Примените PSM к данным ДО воздействия. Например, фичу запустили 1 июня - сделайте PSM на данных за май. Если хорошо подобранные фичи показывают "эффект" там, где его быть не может - проблема в скрытых факторах, плохом матчинге или в сверхвысокой чувствительности.
Так, на выборках 100k+ пользователей возникает проблема: любая мизерная разница становится статистически значимой. P-value < 0.05 при разнице в 0.01% - технически значимо, но практически шум.
Решение: не использовать всю выборку.
Можно определить MDE (минимальный детектируемый эффект, например +2%), расчитать нужный размер выборки под этот MDE и ограничить выборку до этого размера - т.е. взять случайные 50k вместо всех 500k.
Так вы не будете детектить шум как значимый эффект.
На что еще стоит обратить внимание
1. Подбор фичей - самое важное
Включайте характеристики, которые реально влияют на решение попасть в тестовую группу. Используйте метрики, логически связанные с наличием воздействия.
2. Работайте с выбросами
Перед построением модели сглаживайте или убирайте выбросы. Экстремальные значения могут исказить Propensity Score и ухудшить матчинг.
3. Используйте Caliper Matching
Не матчите пользователей, если разница в Propensity Score больше порога (например, 0.01). Лучше потерять часть данных, чем получить плохие пары.
4. Всегда проверяйте качество матчинга на историческом периоде
Это единственный способ убедиться, что метод матчит без смещения.
PSM - мощный инструмент, когда рандомизация невозможна. Однако не стоит бездумно пихать его в любой эксперимент. Рассматривайте каждый кейс индивидуально: начиная с методов оценки, заканчивая метриками и фичами.
Ставьте реакции, если пост оказался полезным.
Будет много реакций - будет больше постов про Causal Inference)
Давненько не было постов про Causal Inference методы. Напомню, что ранее я уже писал про DiD и ITS.
Сегодня поговорим про один метод, который на первый взгляд может показаться ультимативным, но на самом деле он, как и прочие методы, применим не везде - Propensity Score Matching.
В чем суть метода?
Представьте ситуацию: вы запустили новую фичу, но не для всех пользователей случайно, а только для тех, кто сам ее активировал. Классический A/B тест не сработает - группы изначально разные. Активные пользователи включили фичу, пассивные - нет.
Вопрос: как понять, влияет ли фича на метрики, или разница только из-за того, что группы изначально были разными?
PSM решает эту проблему. Метод позволяет найти для каждого пользователя из тестовой группы похожего "близнеца" из контрольной группы. Похожего по всем важным характеристикам: траты, активность, история покупок и тд.
Вот краткий алгоритм:
- Шаг 1: Строим модель, которая предсказывает вероятность попадания в тестовую группу
Берем характеристики пользователей (возраст, город, количество заказов, средний чек) и строим логистическую регрессию. Она предсказывает вероятность попадания в тестовую группу - это и есть Propensity Score.
- Шаг 2: Матчим пользователей по Propensity Score
Для каждого пользователя из тестовой группы ищем пользователя из контрольной с максимально близким Propensity Score.
- Шаг 3: Сравниваем метрики
У нас есть две сбалансированные группы - можем сравнить средние значения целевой метрики.
Когда PSM работает хорошо?
1. Есть много признаков, которыми можно описать пользователей
Больше данных -> точнее модель -> лучше матчинг.
2. Группы пересекаются по характеристикам
Если в тестовой группе только VIP-клиенты, а в контроле их нет - матчинг не сработает. Нужно, чтобы для каждого пользователя из теста нашелся похожий в контроле.
3. Решение о попадании в группу зависит от наблюдаемых факторов
Если пользователь активировал фичу из-за факторов, которые мы можем измерить (активность, возраст, город) - отлично. Если из-за чего-то скрытого (настроение, рекомендация друга) - PSM это не учтет и возникнет смещение.
Как проверить, что матчинг работает?
Недостаточно просто проверить баланс групп по характеристикам. Нужна валидация на историческом периоде.
Примените PSM к данным ДО воздействия. Например, фичу запустили 1 июня - сделайте PSM на данных за май. Если хорошо подобранные фичи показывают "эффект" там, где его быть не может - проблема в скрытых факторах, плохом матчинге или в сверхвысокой чувствительности.
Так, на выборках 100k+ пользователей возникает проблема: любая мизерная разница становится статистически значимой. P-value < 0.05 при разнице в 0.01% - технически значимо, но практически шум.
Решение: не использовать всю выборку.
Можно определить MDE (минимальный детектируемый эффект, например +2%), расчитать нужный размер выборки под этот MDE и ограничить выборку до этого размера - т.е. взять случайные 50k вместо всех 500k.
Так вы не будете детектить шум как значимый эффект.
На что еще стоит обратить внимание
1. Подбор фичей - самое важное
Включайте характеристики, которые реально влияют на решение попасть в тестовую группу. Используйте метрики, логически связанные с наличием воздействия.
2. Работайте с выбросами
Перед построением модели сглаживайте или убирайте выбросы. Экстремальные значения могут исказить Propensity Score и ухудшить матчинг.
3. Используйте Caliper Matching
Не матчите пользователей, если разница в Propensity Score больше порога (например, 0.01). Лучше потерять часть данных, чем получить плохие пары.
4. Всегда проверяйте качество матчинга на историческом периоде
Это единственный способ убедиться, что метод матчит без смещения.
PSM - мощный инструмент, когда рандомизация невозможна. Однако не стоит бездумно пихать его в любой эксперимент. Рассматривайте каждый кейс индивидуально: начиная с методов оценки, заканчивая метриками и фичами.
Ставьте реакции, если пост оказался полезным.
Будет много реакций - будет больше постов про Causal Inference)
🔥6
У NewHR вышел интересный пост про текущий рынок труда.
В целом их результаты опроса подтверждают выводы, о которых сейчас многие говорят: спрос на «фуллстек» аналитиков растет. Стека SQL + BI уже не хватает. Работодатели ждут более продвинутого набора
навыков вроде продвинутого a/b, ML и тд.
Так что не ленимся и ботаем новые навыки😎
P.s. (это не реклама)
В целом их результаты опроса подтверждают выводы, о которых сейчас многие говорят: спрос на «фуллстек» аналитиков растет. Стека SQL + BI уже не хватает. Работодатели ждут более продвинутого набора
навыков вроде продвинутого a/b, ML и тд.
Так что не ленимся и ботаем новые навыки
P.s. (это не реклама)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Нужна ли профильная вышка для работы в аналитике данных?
Возможно, если вы только вкатываетесь в аналитику данных, вы размышляете на тему: “А стоит ли идти получать высшее образование или достаточно курсов?”
Отвечу кратко - профильное образование не обязательно, но оно дает преимущества.
Согласно исследованию NEWHR 2024 года, половина специалистов (51%) приходят в аналитику из других специальностей. Мой личный опыт тоже подтверждает эту идею.
Работодатели (по крайней мере в РФ) смотрят в первую очередь на опыт и навыки, а не на диплом.
Поэтому, можно спокойно войти в профессию без технического образования.
НО! У профильного образования есть огромное преимущество: Вам не надо тратить дополнительное время на переобучение в таком масштабе, как другим.
Все базовые знания вы уже получили в универе:
- Языки программирования
- Математическая статистика и теория вероятностей
- Линейная алгебра
- Основы машинного обучения
- Эконометрика
Пока человек без профильного образования тратит время на освоение этих основ через курсы и самообучение, выпускник профильного вуза уже набирает практический опыт.
Именно поэтому люди с профильным образованием часто быстрее растут и занимают руководящие позиции в более раннем возрасте. Они просто прошли тот путь, который вы проходите сейчас, гораздо раньше и могут расти быстрее.
Кроме того, я заметил еще одно интересное преимущество
Сейчас, когда почти у каждого кандидата резюме вылизаны до блеска, больше доверия у меня вызывают кандидаты с профильным образованием. На собеседованиях они обычно также проявляют себя более глубоким и системным мышлением.
Конечно, бывали случаи, когда выпускники таких вузов не могли решить базовую бизнес-задачу, но все-таки положительного опыта было больше, чем отрицательного.
Стоит ли бросать все и идти учиться?
Если вы уже работаете в аналитике - каждый решает индивидуально.
Кому-то образование важно психологически. Оно делает человека более уверенным в себе, дает системность мышления. А правильное состояние - это очень важно в успехе.
Кому-то не хочется тратить 4-5 лет на учебу, особенно если уже есть опыт. Можно прокачиваться через курсы, книги, практику.
Мне лично проще усваивать знания на практическом опыте, поэтому я учусь и работаю параллельно.
В итоге
Профильное образование - не обязательное требование, но сильное конкурентное преимущество. Оно экономит много времени на освоение базы.
Если вы только думаете о входе в профессию и есть возможность получить профильное образование - это отличный путь.
Если уже работаете без него - не обязательно бросать все и идти в универ. Фокусируйтесь на практике, углубляйте знания, работайте над проектами.
В любом случае для работодателя всегда важнее не диплом, а что вы умеете делать с данными.
Возможно, если вы только вкатываетесь в аналитику данных, вы размышляете на тему: “А стоит ли идти получать высшее образование или достаточно курсов?”
Отвечу кратко - профильное образование не обязательно, но оно дает преимущества.
Согласно исследованию NEWHR 2024 года, половина специалистов (51%) приходят в аналитику из других специальностей. Мой личный опыт тоже подтверждает эту идею.
Работодатели (по крайней мере в РФ) смотрят в первую очередь на опыт и навыки, а не на диплом.
Поэтому, можно спокойно войти в профессию без технического образования.
НО! У профильного образования есть огромное преимущество: Вам не надо тратить дополнительное время на переобучение в таком масштабе, как другим.
Все базовые знания вы уже получили в универе:
- Языки программирования
- Математическая статистика и теория вероятностей
- Линейная алгебра
- Основы машинного обучения
- Эконометрика
Пока человек без профильного образования тратит время на освоение этих основ через курсы и самообучение, выпускник профильного вуза уже набирает практический опыт.
Именно поэтому люди с профильным образованием часто быстрее растут и занимают руководящие позиции в более раннем возрасте. Они просто прошли тот путь, который вы проходите сейчас, гораздо раньше и могут расти быстрее.
Кроме того, я заметил еще одно интересное преимущество
Сейчас, когда почти у каждого кандидата резюме вылизаны до блеска, больше доверия у меня вызывают кандидаты с профильным образованием. На собеседованиях они обычно также проявляют себя более глубоким и системным мышлением.
Конечно, бывали случаи, когда выпускники таких вузов не могли решить базовую бизнес-задачу, но все-таки положительного опыта было больше, чем отрицательного.
Стоит ли бросать все и идти учиться?
Если вы уже работаете в аналитике - каждый решает индивидуально.
Кому-то образование важно психологически. Оно делает человека более уверенным в себе, дает системность мышления. А правильное состояние - это очень важно в успехе.
Кому-то не хочется тратить 4-5 лет на учебу, особенно если уже есть опыт. Можно прокачиваться через курсы, книги, практику.
Мне лично проще усваивать знания на практическом опыте, поэтому я учусь и работаю параллельно.
В итоге
Профильное образование - не обязательное требование, но сильное конкурентное преимущество. Оно экономит много времени на освоение базы.
Если вы только думаете о входе в профессию и есть возможность получить профильное образование - это отличный путь.
Если уже работаете без него - не обязательно бросать все и идти в универ. Фокусируйтесь на практике, углубляйте знания, работайте над проектами.
В любом случае для работодателя всегда важнее не диплом, а что вы умеете делать с данными.
❤3🔥2