Data Driven / Bogdan Ivanov
СтатистикаДанные, карьера, саморазвитие https://datadrivenbogdan.com/ Помогаю вырасти в работе с данными и зарабатывать больше. За менторством и сотрудничеством — @b_ivanov_kz
- Последний пост
- 13:31
- Последнее чтение
- 07:58
- Постов за неделю
- 3
- Всего постов
- 22
- Тип
- открытый
- Язык
- русский
- Категория
- Карьера
- В каталоге с
- 14 авг.
- 1/24сутки в ленте
- 133
- 1/48двое суток
- 152
- 1/72трое суток
- 164
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Главная карьерная ошибка россиян — слишком долго бояться перемен, показало исследование. 43% опрошенных пожалели, что не сменили работу, не переехали или не попробовали себя в другой сфере. При этом для 55% ошибки в профессиональной жизни в итоге обернулись финансовыми потерями. @economylive
тяжелые яйца у типа @data_driven_bogdan
Вилки по рынку Скинули мне тут сайтик с офферами по СНГ рынку Еще сыроват конечно, но для тех кто не в курсе вообще за вилки — может потыкаться https://gdezarplata.duckdns.org/companies ❤️🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер @data_driven_bogdan
Антон Назаров, создатель сообщества «Осознанная Меркантильность» и бывший разработчик в Apple, Autodesk и Glovo, считает, что само слово «меркантильность» не должно стигматизироваться и быть зазорным: все мы работаем за деньги и хотели бы, чтобы этих денег было больше. Свой проект он называет инструментом для комфортного трудоустройства и зарплатного роста в IT. Мы поговорили с Антоном Назаровым, а также с участниками «Осознанной Меркантильности» о том, как развивать карьеру в современном турбулентном мире и не попадать в зависимость от работодателей. И существует ли золотая середина между фрилансом с его неопределенностью и тем, что называют корпоративным рабством? *Информационная поддержка
Обзор собеседования Компания: Концентрация Вилка: +-250к Должность: ДА Формат: удаленка/гибрид Этапы собеседования: HR – Тех. собес – Offer Дата собеса: июль 2026 Возвращаем рубрику «обзор собесов» За последнее время накопилась пачка собесов — будем разбирать... 1️⃣ Дашборд по эффективности продаж Руководитель отдела продаж: «нужен дэш по эффективности продаж». Что положишь в дашборд? Первое — не бежать строить, а уточнить у заказчика: ➖ какую задачу решаем и какие решения будут по дашборду принимать; ➖ для кого он — сам руководитель, менеджеры или топы (от этого зависит уровень агрегации); ➖ что у них вообще считается «эффективностью», за какой период и в каких разрезах. Дальше по сути кладём. Метрики: ➖ план/факт и % выполнения плана — главный якорь эффективности; ➖ выручка, число сделок, средний чек; ➖ конверсия по воронке; ➖ длина сделки (sales cycle); ➖ выручка и сделки на менеджера, активность (звонки, встречи); ➖ повторные продажи / отток — по желанию. Разрезы: по менеджеру и команде, продукту, региону/каналу, сегменту клиента и во времени. Структура: сверху верхнеуровневые KPI и план/факт, ниже воронка, дальше лидерборд по менеджерам и динамика с drill-down. Проверяют продуктовое мышление: метрики под решения и умение сузить скоуп вопросами к заказчику. 2️⃣ Сломалась витрина с долгами Дано: дашборд с долгами поставщикам — одна сводная, поставщики построчно, метрика одна: сумма долга в рублях. Тебе пишут на праздниках дэш не работает, а документации по нему нет. Заходишь, смотришь в метрики — где было 50 млн, теперь 0, а где-то суммы кратно ниже. Ошибка и в дашборде, и в витрине. Что делаешь? Дальше докидывает условия: дата-инженер заболел, копаешься в поставке данных сам. В итоге причина не в витрине, а в источнике — не подтянулся курс валют за январь, и пересчёт долга поехал. Проверяют системный дебаг: как локализуешь, какие гипотезы по порядку, как отделяешь витрину от источника без доки. 3️⃣ Теория SQL ➖ Свежие значения по каждой валюте → ранжирование оконкой ROW_NUMBER() ... PARTITION BY currency ORDER BY dt DESC в CTE и фильтр сверху rn = 1 ➖ Разница джойнов / UNION-UNION ALL ➖ Как соединить таблицы валют и товаров 4️⃣ Теория вероятностей Кинули монетку 10 раз — 10 орлов. Вероятность решки на 11-м? Если монета честная монета → 50%, прошлые броски не влияют. Но 10 орлов подряд намекают, что монета может быть нечестной — тут уместен байес. Правильный ответ — проговорить оба взгляда, а не выдать сходу 1/2. ❤️🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер @data_driven_bogdan
A/A-тест: проверяем дизайн эксперимента ещё до старта (Ч. 6) В прошлой части разбирали placebo-тесты — и там я обещал, что у placebo в мире классического A/B есть близнец, а скорее прародитель — это A/A-тест, сегодня про него. Что такое A/A-тест❓ Это эксперимент, где между группами нет никакой разницы: обе получают одно и то же. Мы честно бьем трафик на A и A, гоняем весь пайплайн как на боевом A/B — сплит, логи, метрику, критерий — но воздействия нет. Смысл: если между двумя одинаковыми группами метод находит «значимую разницу» чаще, чем должен, — дизайн сломан, и на боевом A/B мы будем ловить фантомные эффекты. По сути A/A — это плацебо для рандомизированных тестов: куча «экспериментов», где эффекта заведомо нет. Что именно проверяет A/A ❓ ➖ Долю ложных срабатываний (FPR). Она должна быть около α (например 5%). Больше — критерий ловит несуществующее. ➖ Отсутствие перекоса. Средняя разница между группами ≈ 0, доверительные интервалы накрывают ноль как положено. ➖ Дисперсию метрики — ее потом кладём в расчёт MDE и размера выборки (про MDE — в следующий раз). ➖ Здоровье пайплайна: корректный сплит, нет утечек, метрика считается корректно и так далее Как читать распределение p-value ❓ Гоняем много A/A-сплитов и смотрим на распределение p-value. Под нулем (эффекта нет) оно должно быть равномерным на [0, 1]: ➖ равномерное → всё честно, FPR на уровне α ✅ ➖ горка у нуля (слишком много маленьких p) → FPR раздут, критерий врет в сторону ложных срабатываний ➖ горка у единицы (слишком много больших p) → критерий переосторожен, тест недомощный То есть A/A — это не «прогнали разок и ноль», а проверка калибровки всего критерия. Почему A/A «краснеет» — частые причины Если FPR улетел вверх, чаще всего виноваты: ➖ Зависимые наблюдения, посчитанные как независимые. Напр. у одного юзера куча сессий/визитов, а мы считаем их независимыми → занижаем дисперсию → FPR взлетает. Лечится анализом на уровне единицы рандомизации (юзера) / кластеризацией. ➖ Ratio-метрики (CTR = клики/показы и т.п.) — обычная дисперсия врёт, нужен дельта-метод / бутстрап / линеаризация. Про них дальше будет отдельно. ➖ Подглядывание (peeking): смотрим на тест много раз и останавливаемся на «значимом» — без поправки FPR раздувается. ➖ Тяжёлые хвосты — t-тест плывет; помогают бутстрап, трансформации, CUPED. ➖ SRM — группы не 50/50, хотя должны быть → баг в сплите или инструментации. Как прогонять A/A ❓ 1️⃣ Живой A/A — реально льём трафик на две одинаковые группы и меряем. Дорого по времени, зато честно ловит проблемы инструментации и сплита. 2️⃣ Ретроспективный A/A на истории — многократно случайно бьём исторические данные на две псевдогруппы, каждый раз считаем критерий → строим распределение p-value. Быстро и дёшево (это по сути бутстрап / перестановки — о них ещё поговорим). На практике сначала гоняют ретроспективный, чтобы откалибровать критерий, а живой — как финальную проверку пайплайна. Что важно держать в голове ➖ A/A валидирует не «есть ли эффект», а сам инструмент: сплит + метрику + критерий. ➖ Цель — FPR ≈ α и равномерные p-value. Отклонение = чинить до боевого запуска. ➖ Заодно достаём дисперсию для расчёта MDE. ➖ Один прогон ничего не доказывает — нужна масса разбиений. Что обсудим дальше... ➖ MDE — какой минимальный эффект вообще реально поймать ➖ Бутстрап и перестановки — как честно считать значимость и гонять ретро-A/A ➖ Ratio-метрики — почему они ломают дисперсию и как их правильно считать ❤️🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер ❓Гоняете A/A перед запуском или только лысого?! @data_driven_bogdan
VIVA LA FURIA ROJA🇪🇸🇪🇸🇪🇸
У меня один вопрос Сегодня Аргентина на поле вышла?
видео или голосовое, без подписи
Хочу порекомендовать канал Артема Голубничего — «Apache Superset на русском» Артем — преподаватель и автор курсов по Apache Superset, работе с данными, PostgreSQL и R. Основная тема канала — практическое использование Apache Superset: от установки и первых дашбордов до администрирования, подключения баз данных и работы с новыми возможностями платформы. В канале регулярно выходят: ➖ инструкции и разборы настроек Apache Superset; ➖ примеры создания чартов, метрик и дашбордов; ➖ материалы по PostgreSQL, ClickHouse, Python и R; ➖ обзоры новых версий Superset; ➖ решения ошибок, которые возникают при установке и работе с платформой; ➖ анонсы новых видео и учебных материалов. Отдельное направление работы Артема — практические курсы на Stepik. Сейчас доступны: 📊 «Введение в Apache Superset» https://stepik.org/a/248838 📈 «Apache Superset: создаем реальные дашборды» https://stepik.org/a/281372 🤖 «Model Context Protocol в Apache Superset 6.1» https://stepik.org/a/292601 📉 «Программирование на R: полный курс» https://stepik.org/a/250055 🐘 «Решение задач LeetCode на PostgreSQL» https://stepik.org/a/265676 Материалы строятся вокруг практики: реальные датасеты, пошаговые настройки, рабочие SQL-запросы, конфигурации и полноценные проекты, которые можно повторить самостоятельно. Канал будет особенно полезен тем, кто уже работает с данными или только начинает изучать BI-инструменты и хочет разобраться в Apache Superset на понятных примерах. Подписывайтесь на «Apache Superset на русском»
Placebo-тесты — как понять, что метод не выдумывает эффект (Ч. 5) В прошлой части разобрали гео-тесты и Synthetic Control Там в блоке «что дальше» я обещал отдельно расписать placebo-тесты — сегодня как раз про них. Сразу оговорюсь, чтобы не путаться: placebo — это общий прием для квази-экспериментов (DiD, SCM, CI), где честной рандомизации нет. В мире классического A/B у него есть близнец — A/A-тест, про который поговорим в следующий раз. Зачем вообще нужен placebo-тест❓ Проблема любых "квази" экспериментов: честной рандомизации нет, поэтому «эффект» легко получить там, где его нет — из-за шума, кривых доноров или случайного совпадения трендов. Placebo-тест отвечает на вопрос: 👉 «А не рисует ли мой метод такой же "эффект" там, где точно ничего не происходило?» Идея простая: подкладываем фиктивное воздействие туда, где его не было, гоняем ровно ту же процедуру и смотрим, что вышло. Если метод и на пустом месте выдает большие эффекты — верить реальной оценке нельзя. Дальше — два основных типа. 1️⃣ Placebo in space (по объектам)❓ Самый частый вариант Логика: честного контроля у нас нет, поэтому делаем «фейковые эксперименты» из самих доноров. По очереди берем каждый контрольный город, притворяемся, что тест был именно в нем, строим ему синтетику из остальных доноров и считаем «эффект» после той же даты старта, что и в реальном тесте. Но эти города на самом деле никто не трогал → любой разрыв, который у них вылезает, это чистый шум метода: случайные расхождения, кривизна фита, совпадения трендов. Прогоняем так по всем донорам → получаем распределение плацебо-эффектов. По сути это наша нулевая гипотеза, собранная не из формулы, а из реальных данных: «вот как выглядит "эффект", когда воздействия не было». Дальше кладём реальный эффект тест-города на этот фон: ➖ реальный эффект торчит далеко за пределами плацебо-облака → на шум не похож, скорее всего эффект настоящий ➖ реальный эффект теряется среди плацебо → такой разрыв метод рисует и без всякого воздействия, это шум Как отсюда получить честный p-value ❓ Это permutation / randomization inference — без параметрических предпосылок. Ранжируем все эффекты (реальный + плацебо) по модулю и смотрим, какое место занимает реальный: p ≈ (кол-во плацебо-эффектов ≥ реального) / (всего объектов) Если тест-город дал самый большой эффект из N городов → p ≈ 1/N. Отсюда важный нюанс: мало доноров → грубый p-value (при 10 городах минимальный p ≈ 0.1). Еще деталь: плацебо с плохим фитом на pre-периоде надо либо выкидывать, либо нормировать. Стандартный прием — считать не сам разрыв, а отношение: RMSE(после) / RMSE(до), где RMSE — это корень из среднеквадратичного разрыва между фактом и синтетикой на окне. Деление одного на другое штрафует города, которые и до «вмешательства» плохо ложились на синтетику, и не дает им зашумить распределение: убедителен тот, у кого до старта было идеально, а после — резкий разрыв. 2️⃣ Placebo in time (по времени) Здесь наоборот: город оставляем реальный (тестовый), а "врем" про дату старта — двигаем ее назад, в pre-период, когда точно еще ничего не происходило (напр. реальный запуск был в июне, а мы притворяемся, что в марте). Переобучаем синтетику только на данных до фейковой даты и смотрим на отрезок между фейковой и настоящей датой — там, где воздействия еще не было: ➖ на фейковой дате вылез «скачок» → метод ловит эффект на пустом месте → реальной оценке верить нельзя ➖ ряд остается ровным вплоть до настоящей даты и разрыв появляется только там → сильный аргумент, что скачок — это именно воздействие, а не артефакт Два теста дополняют друг друга: in-space проверяет «а особенный ли наш город среди других городов?», in-time — «а особенный ли именно этот момент во времени?». . Что важно держать в голове❗️ ➖Плацебо-города должны быть реально не затронуты (иначе эффект «утечет» и распределение поедет). ➖Мало доноров → грубый и неинформативный p-value. ➖ Фильтруй/нормируй плацебо по pre-fit, иначе шумные города замаскируют эффект. ➖ Placebo проверяет ложные срабатывания (ошибку I рода). Хватит ли мощности поймать эффект (ошибка II рода) — это уже про MDE, будет в следующий раз. ❤️🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер ❓ А вы валидируете дизайн до старта или катите/смотрите что по факту? @data_driven_bogdan
💔
Causal Inference: как оценивать эффект, когда A/B — не вариант (Ч. 4) В прошлых частях разобрали DiD, PSM и Causal Impact. Сегодня — про гео-тесты (geo-lift) и синтетический контроль (Synthetic Control, SCM). Сразу дисклеймер: как всегда, не истина в последней инстанции — если есть чем дополнить/поспорить, велком в комменты👇 Что такое гео-тест❓ Иногда воздействие невозможно раскатить на случайных юзеров — оно живет на уровне географии. Из классических — ценообразование/маркетинг: ➖ отключаем платный digital в нескольких городах ➖ меняем цену / промо в отдельных регионах ➖ запускаем ТВ / наружную рекламу по гео Рандомизировать людей внутри города нельзя, поэтому единица эксперимента — сам город. Берем несколько тест-городов, а остальные остаются контролем. А дальше вопрос ровно тот же, что и во всей серии: 👉 «А что было бы с продажами в тест-городе, если бы мы ничего не меняли?» И тут предлагаю сначала задаться вопросом — Причем тут Synthetic Control (SCM)❓ Проблема гео-тестов: честной контрольной группы обычно нет. Возьмем, например, РФ — Москву не с чем сравнить один-в-один, а взять «средний город» значит поймать кучу смещений. Идея SCM: не искать один похожий город, а собрать контрфакт из взвешенной комбинации остальных. То есть синтетический контроль — это «виртуальный город», склеенный из донорских городов с весами так, чтобы до вмешательства он максимально повторял динамику тестового. Эффект = Факт − Синтетический контроль (после старта теста) Чем это отличается от Causal Impact из Ч. 3❓ По факту оба подхода строят контрфакт, но по-разному: ➖Causal Impact — прогноз ряда во времени (BSTS): учим модель на истории самого тест-города и продлеваем в будущее. (это мы обсуждали выше) ➖Synthetic Control — комбинация других объектов (доноров) в тот же момент времени. На практике их можно и смешивать. Как это работает по шагам❓ 1️⃣ Готовим панель — дневные/недельные продажи по городам (город × время). 2️⃣ Отбираем доноров. Из всех городов выбираем те, что хорошо объясняют тестовый на pre-периоде. Тут важно не только сходство трендов, но и чтобы доноры не были коллинеарны друг другу и сами не были затронуты воздействием. 3️⃣ Строим синтетику. Подбираем веса доноров так, чтобы синтетический ряд повторял тестовый до старта теста (по сути — регрессия на pre-периоде). 4️⃣ Считаем эффект. После старта смотрим разрыв между фактом и синтетикой. Устойчиво выходит за доверительный интервал — эффект скорее всего есть. 5️⃣ Проверяем значимость. Bootstrap по остаткам → p-value, плюс placebo-тесты: «подкладываем» фиктивное воздействие в контрольные города и смотрим, не даёт ли метод ложных срабатываний. Плюс считаем MDE — какой минимальный эффект вообще реально поймать при таком дизайне. Что важно держать в голове❗️ ➖ Хорошее качество на pre-периоде — обязательно. Если синтетика плохо повторяет историю, доверять оценке нельзя. ➖ Ошибка на pre-периоде должна быть заметно меньше ожидаемого эффекта. ➖ Доноры не должны быть затронуты тем же вмешательством (иначе эффект «утечет» в контроль и оценка занизится). ➖ Никаких других крупных событий в тест-городах в тот же момент. Что дальше В самом SCM есть куча важных деталей (часть из них касаются в целом A/B тестов), которые не влезут в один пост — поэтому дальше планирую разобрать более подробно темы: ➖ A/A-тест — как валидировать дизайн ещё до старта эксперимента ➖ MDE — как заранее понять, какой минимальный эффект вообще реально поймать ➖ placebo-тесты — как он помогает в A/A и как получить честный p-value через фиктивные воздействия ➖ Как происходит отбор доноров, что такое бутстрап и др... ❤️🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер ❓ Работали с гео-тестами? Расскажите про ваши кейсы в комментах @data_driven_bogdan
Надеемся, что Жоао послушает это голосовое перед матчем! Включит его в раздевалке на полной громкости — и да будет сегодня настоящая игра, а не ватокатство🙏🙏🙏 @data_driven_bogdan
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи
видео или голосовое, без подписи