Госпожа аналитик 💚 Ия Зотова – Telegram
Госпожа аналитик 💚 Ия Зотова
2.39K subscribers
129 photos
9 videos
3 files
85 links
IT-лид направления сквозной аналитики в Сбер. Mентор.
- Об аналитике data/web/product
- О работе и карьерном треке
- О когнитивных искажениях, которые мешают расти специалисту

По вопросам менторства, сотрудничества: @IyaZotova
Download Telegram
Квест «Боевая хроника рыцаря Сиквела: Великий путь по очищению данных в Медианном замке»

В далекой стране Бизнесляндии долгие годы процветала наука и мудрость. Её народ радовался гармонии, которую приносили чистые данные. Они помогали открывать палатки с новыми яствами, находить причины отсутствия покупателей и растить благосостояние жителей страны.

Сердцем страны был великий Медианный замок, где хранились священные свитки и таблицы с чистейшими и полными данными.

Но однажды темный маг Хаоса, решил покорить Бизнесляндию и наложил ужасное проклятие на сокровища замка.

Святые таблички были осквернены и начали терять свои истинные значения, постепенно заполняясь неверными цифрами и случайными символами. Информация стала смешиваться, исчезать, порождая суету и сумбур.

Вскоре страна погрузилась в мрак неразберихи и заблуждения. Начались споры и конфликты, разрушающие прежнюю идиллию. Жители впали в отчаянье.

Тогда Совет Старейших принял важное решение: послать самого внимательного и отважного рыцаря Сиквела восстановить чистоту данных. Только пройдя испытания, он сможет войти в Медианный замок и спасти Бизнесляндию.

----
Для веселья я написала шуточный квест про данные (возрождение текстовых квестов!).

Героя Сиквела ждут несколько проблем на его пути к чистым данным, помогите ему справиться с ними или перейти на темную сторону😏

🧙‍♂️Завтра будет первая развилка:)
Весь квест будет тут #квестСиквел
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥2😁2😱21
Квест. Развилка 1. Перед замком раскинулся Лес Иллюзий, наполненный ложными тропами и искаженными деревьями данных. Именно от него распространяется темная энергия, меняющая священные таблицы.

Задача Сиквела распознать темные аномалии, чтобы добраться до Медианного замка. #квестСиквел
🔥3
👾Об аномалиях.

Сиквел успешно прошёл лес и выбрал Перцентиль правосудия😁 см. #квестСиквел

Поэтому сегодня поговорим немного про аномалии, зачем и где используется.

Любопытно, что на собесах часто не отвечают на вопросы как будут определять и отсекать аномалии. Хотя во всех курсах это чуть ли не в самом начале объясняется. Ещё часто на собесах говорят про ящик с усами и совершенно забывают про отсечение с помощью простых методов 3σ, перцентилей, IQR (считай тот же ящик), я уже не говорю про распознавание аномалий с помощью ML

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

Может показаться, что это сухая теория, но на самом деле превентивные меры даже на простых мат.моделях с отслеживанием аномалий могут экономить миллионы рублей бизнесу.

Приведу несколько кейсов (добавляйте свои в комментариях):

• Резкий рост трафика на сайт. Если у вас нет автомасштабирования ресурсов на сервере, то вы будете предупреждены и можете успеть отреагировать. Или это может помочь отследить атаку на сайт.

• В данных резкий скачек/падение количества строк. Возможно, что появились дубли или наоборот, не все строки записались или получены.

• Резкое изменение метрик в приложении/на сайте. У нас это может означать, что события в продукте отвалились или в рекламных кампаниях какие-то изменения – как запланированные, так и нет. Последнее как раз стоит проверить и исключить, либо проинформировать кого следует😁

• сигнал о мошейнеческих денежных операциях (слишком большие переводы или снятие наличных). В сложных банковских операциях это может быть лишь сигналом, там, конечно, более сложные алгоритмы определения таких операций.

Все это звучит здорово, но есть несколько НО:

• простые решения работают только, если скачки были резкие, а не тренд на постепенный рост/снижение. Тут понадобится что-то чуть посложнее, например, с использованием данных прошлых лет или вычисление продолжительных тенденций

• требуется подбор чувствительности определения аномалий (реакция на небольшое изменение). Высокая чувствительность алертинга может засыпать поддержку/аналитиков сообщениями о ложных срабатываниях и их начнут игнорировать

• сложнее уловить аномалии по двум и более измерениям, методы нужно будет дорабатывать

• шумные данные усложняют определение аномалий с помощью любых методов

~~~~
Неидельность простых подходов не означает, что их не надо использовать. Надо. Они просты, дешевы и эффективны. И лучше начать именно с них, понимая природу изменений ваших данных, уже проще будет идти в ML. А может быть вам их будет достаточно и обращаться к саентистам не нужно😁
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134💯21
Квест. Развилка 2. Герой прошел лес и перед ним раскинулся Большой Каньон Пропусков в данных.

Бездна из Null смотрит на него своей зияющей пустотой прямо в душу Сиквела. Чтобы продолжить путь, ему нужно перебраться на другую сторону Каньона. #квестСиквел
Квест. Развилка 3. Сиквел перебрался через Каньон и достигает таинственного зеркального лабиринта.

Магические зеркала дублируют и искажают данные из священных свитков и таблиц. #квестСиквел
Квест. Развилка 4. В конце лабиринта Сиквела ждал Медианный замок. Попав в священное хранилище Сиквел понял, что причиной распространения скверны стало отсутствие Башен Безупречности данных.

Замок оказался не только без Башен, но и стражи в нем были дезориентированы и не знали куда смотреть и за что браться. #квестСиквел
🔵Проблемы в маркетинговых данных.

Не дали вы Сиквелу перейти на сторону Темных Данных и успешно завершили квест😁

Поэтому перейдем от шуточного квеста к реальности.

Проблем в данных оооочень много, поэтому поговорим о части из них:

1. Данные о рекламе
– Не все рекламные площадки такие же продвинутые как Яндекс или VK: данные забираются вручную и могут быть без расходов (расходы, например, были указаны в договоре), поэтому эти данные так же вручную куда-то складываются.
А это всегда ошибки и задержки

– Даже Яндекс/ВК не даст вам до пользователя увидеть все его касания с их рекламой, так как данные от этих площадок передаются в агрегатах

– Ссылки для рекламы размечаются руками, что опять же создаёт проблемы. А потом они ещё и могут поменяться в ходе рекламной кампании😅

2. Цифровые следы 👣 на сайте и приложениии
– Неоднородный пользовательский путь с пересечением веб-приложение-офлайн-чаты-звонки, а в добавок к этому еще несколько устройств: что-то может на этом пути теряться, данные между каналами могут плохо передаваться и/или не иметь устойчивых связок и идентификаторов

– AdBlock и очистка кук браузера прерывает пользовательские пути вне авторизованной зоны. Пока пользователь не авторизуется или не оставит контакт, мы его не идентифицируем. Но даже в случае идентификации можем не узнать о канале привлечения.

– Потеря рекламных меток из-за редиректов. Тут чисто техническая проблема, но она случается и из-за неё не всегда понятна рекламная кампания, с которой пришёл пользователь. А в Яндекс Метрике ещё есть и особенности с определением трафика: если при редиректе передается реферер с метками, а визит до редиректа не успел открыться, то Метрика эти ваши метки потеряет, даже если в браузерной строке они будут.

– Кривая разметка событий на сайте/приложении. Просто разработчики решили заменить форму регистрации или обратной связи, а о вас не подумали) и какое-то время будете жить без данных по конверсиям🤡 или данные перестанут учитываться в расчете эффективности маркетинга (у вас взлетит CPA/CAC).

У нас как-то раз перестал передаваться правильный идентификатор заявки в CRM и я потом по логам сайта собирала сквозную, жесть была🤣

3. CRM
– нет связки сделок/звонков с данными по цифровым следам

– нет CRM и заявки собираются на почту и руками потом обрабатываются

– множество сделок и множество заявок (особенно все в один день) добавляют сложности в определении к какому же источнику отнести продажи.

У нас в b2b у одного человека (ЛПР) может быть множество компаний. ЛПР этот может так же переходить из компании в компанию. Это дополнительно взрывает мозг при разработке методик расчетов😂

– отсутствие нужных полей, интеграций в CRM, что бы создать связки между CRM и сайтом/приложением

4. Методологии
– Неидеальные методологии связи между всеми источниками данных.
Будьте готовы, что идеальных не существует. Начните с простой и постепенно усложняйте.

– Много вопросов к атрибуции: какое касание считаем главным, будем ли равномерно между источниками распределять конверсии или это будет взвешанная модель расчёта. Неправильно выбрали и управление рекламой пошло по звезде

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


Это все, конечно, верхушка айсберга, я постоянно сталкиваюсь с разными проблемами на техническом и методологическом уровне. А пока есть проблемы – у нас есть работа😁

Поэтому, когда вы приходите в подобные команды, начните с исследования того как и какие данные собираются, как и где формируются точки метчинга между разными системами и какие есть проблемы.

Качественные и полные данные  – это не только основа эффективного маркетинга, но и наступающей на пятки AI-трансформации, поэтому стоит свои задачи начать с этого, а не с дашбордов и отчётности
Please open Telegram to view this post
VIEW IN TELEGRAM
95💯1
🔥Брунгильда хочет 1 000 000 ₽ в найме.

У Брунгильды закончился квартал и она подводила очередные итоги и немного расстравивалась, что таааак много чего сделано, а достижениями, тем более за рамками своей должностной инструкции, далеко не все назовёшь.

Ее это злит. Она так не хочет. Брунгильда хочет результатов и не просто результатов, а таких которые станут ступеньками, чтобы через несколько месяцев лет выйти на зп 1 млн.

А ещё она не понимает за что в её сфере станут столько платить. Явно не за знание оконных функций 😁 Для исследования этого вопроса Брунгильда залезла на хх и посмотрела резюме людей, которые ориентируютя на такой уровень зп, хотя, конечно, она понимала, что таких уже не ищут на хх, а переманивают по знакомству.

С одной стороны она словила чувство самозванца и осталась под впечатлением какие бывают достижения, особенно в сравнении с ее😁 А с другой стороны, это помогло ей вдохновиться некоторыми личностями, чужими результатами и начать смотреть шире на свою работу и как ей можно развернуться. Рамки оказались только у нее в голове:)

После хх Брунгильда принялась к «коленочному» планированию в метро😁 коротко записала крупные результаты, которые она хочет видеть через 1 год и достижения, которые она запишет в конце 3 и 4 квартала, когда их закроет (можно сказать, стратегическая лестница на минималках). А ещё той, кем она хочет быть и какие качества иметь.

---
В итоге получился аналог стратегической лестницы для Брунгильды, о которой я уже как то раз писала и даже проводила эфир. Лучше такое сделать на коленке, чем никак не сделать и ждать мифических изменений:)

⚡️Материалы по личной стратегии:
Что делать после 50 лет в IT?
Алгоритм построения личной стратегии
... и Эфир «Цели и личная стратегия»
... и Стратегический менеджмент для жизни + матрица компетенций для аналитика

Я вместе с Брунгильдой закрывала этот непростой квартал и знаете, разделяю её чувства😁

Кто так же вместе с нами покатался на эмоциональных качелях, признавайтесь😁:

😭 – самозванец меня демотивировал, не хочу никаких достижений
🔥 – вдохновился на работу в новом квартале и запланировал задачки/проекты
😎 – половину запланированного уже реализовал
🤡 - жив и слава Богу!

Please open Telegram to view this post
VIEW IN TELEGRAM
🤡22116🔥4😭2😎2🤝1
А вообще зачем вам 1 млн в мес, кроме квартиры-машины-дачи?
Если не секрет😁 если секрет, то тоже делитесь, мы никому не скажем😁
⚡️Нужен DevOps, middle, Python

Мы разрослись, у нас 4 продукта, 2 ai-агента, куча дата продуктов, но только 1 DevOps, который разрывается на миллион задач.

Если есть знакомый ci/cd пайпланист (или это вы), возможно, с интересами в ai/ml, то присылайте резюме @IyaZotova
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Как вы там? Я потерялась в работе и уже соскучиалсь по вашей компании😁

Сейчас столько работы над качеством данных, что конца и края не видно. Как я жила до этого - не знаю😁

Что у вас нового в команде? В карьере?
8👍5🤡1
Каждый день я откладываю момент написания поста.
Чем дольше я не пишу, тем сложнее вернуться к блогерству, все темы, которые рождаются в голове, кажутся незначительными, недостаточно хорошими (чувствуете самозванца, да?😁)

В комментариях просили делиться чем-то личном и вот делюсь. Моя семья наконец-то переехала ко мне в Москву, ребенок пошел в школу в первый класс и я пытаюсь собрать свой привычный распорядок дня в уже непривычной реальности😁

Сейчас чем-то приходится жертвовать: работой чревато, семьей невозможно (я их так ждала), а вот спорт, обучение, аналитические тусовки борятся между собой за право быть в календаре. А блогерству уже и вовсе сил на борьбу не остается и оно вылетает)

Но я чувствую, что какая-то важная часть ускользает и я хочу это вернуть. Начинаю с начала. Всем привет, меня зовут Ия, это мое настоящие имя, я it-лид и аналитик (потому что бывших аналитиков не бывает)😁
21👍7
РЕАЛЬНЫЕ БИЗНЕС-КЕЙСЫ, КОГДА НУЖНЫ ОКОННЫЕ ФУНКЦИИ

Периодически я продолжаю проводить собесы на аналитиков. И продолжаю спрашивать про оконные функции. Аналитик должен был их знать, хотя бы на уровне понимания зачем они нужны и в каких бизнес-кейсах используются.

Почему "должен был", да потому что сейчас всюду ИИ. С одной стороны, оно много гэпов в знаниях закрывает, а с другой стороны, если опыта нет, то сложно понять, а оно вообще корректно написано, нет ли там типичных ошибок со Stack Overflow, соблюдена ли логика в запросе, учтен ли диалект языка и т.п.

Но я все равно люблю пообщаться на собесе о логике решения задач, поэтому и здесь предлагаю это пообсуждать не в формате "найти топ-3 продуктов по продажам", а с точки зрения ответов на вопрос "Зачем?"

🧾 Кейс 1: «Атрибуция заявок к рекламным источникам" - ранжирующие функции
Оконки тут решалы для простых случаев, особенно, если надо атрибуции типа time delay и first_value не обойтись. Про модные Шепли, марковы цепи, ML/AI цепи пока не говорим, иногда достаточно с базой разобраться и уже неплохо будет)

Зачем:
Атрибуция в маркетинге нужна, чтобы определить к какому рекламному каналу отнести конверсию (заявку, покупку и т.п.), чтобы понять куда закинуть побольше денег, а куда лучше не стоит 😁

SQL:
Изначально дана таблица с визитами и заявками в рамках визитов.
with last_click as (
select *,
row_number() over (
partition by ClientID
order by DateTime desc
-- (или asc, если хотите взять первый визит)
) row_num
from table
)
select *, if(row_num=1, 1, 0) as leads_last_click
from last_click


А еще бывают случаи, когда у пользователя одномоментно открываются два визита (сессии) с разными источниками, в этом случае для определения "главного" мы используем приоритезацию на основе "платности" трафика и тоже используем эту оконку

А вот атрибуция time delay чуток сложнее:
with tdelay as (
select *,
row_number() over (
partition by ClientID
order by DateTime asc) row_num
from table
)
select *,
-- ! работает не во всех диалектах:
row_num / sum(row_num ) over (partition by ClientID) as leads_tdelay
from tdelay


⚠️ Ограничение:
Этот код сильно упрощен, если у пользователя несколько конверсий, множественные визиты, то его нужно будет хорошо так дотюнивать. Но сейчас мы все равно больше говорим про бизнес-задачи, а не про устройство данных. Если тут нужно больше инфы и подробностей - говорите, постараюсь написать и больше не пропадать)

📌 Еще применение:
1. Аналитика продаж и топ-продажники (и другие сотрудники) по доле выручке в компании, чтобы наградить / поругать. Доля используется, чтобы иметь относительную величину, особенно с учетом сезонности.

2. Построение персонализированных предложений - мы делали такие рекомендации на базе подхода Time delay, когда определяли интерес пользователя на основе интересующих продуктов с учетом времени и частоты обращения к этим продуктам

3. Определение когорт для рассылок (определяем сколько дней с нами пользователь и создаем группы для рассылок по дням)

... и тут может быть еще несколько десятков вариантов, будет кайф, если вы предложите свой в комментариях

---
По-моему неплохой старт постов после долго затишья, пишите, что думаете, находите ошибки, если такие есть, задавайте вопросы, а то кажется, я затронула с ноги непростую для понимания тему (это я про сам кейс)😅
1166👍4🔥3
🤌«Либо хорошо делай, либо никак!»

Кому знакома эта фраза?
🙋‍♀ Мне и, конечно же, Брунгильде!

Она уже не помнит откуда у нее этот мусор в голове, но это уже и не важно. Это одна из тех деструктивных мыслей, которые крутятся где-то фоном и мешают жить. Мешают применять новое, ведь она точно сделает это «плохо», поэтому стала постоянно выбирать «никак», потому что, во-первых, хорошо она не умеет, а во-вторых, очень удобно, что за неё «хорошо» сделают другие.

🧠 А теперь давайте поанализируем как настоящие аналитики своей жизни

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

Что происходит с Брунгильдой?
Она откладывает свою лучшую жизнь, потому что:
🔘выбирает не рисовать, чтобы не получить на выходе "мазню"
🔘выбирает не делать проекты, чтобы не сделать их в стол или не получить какашку на выходе и заодно избежать критики
🔘выбирает не учиться, потому что боится не выучить ВСЁ идеально от корки до корки, не понять все предметы на 100%, а ещё хуже бросить, если ей не зашло
🔘выбирает не ходить на спорт, потому что боится, что один пончик теперь перечеркнет все её старания, боится уйти с занятия, если ей стало плохо или боится сдаться при выполнении упражнения, потому что нет сил.
🔘выбирает не писать пост, потому что боится негативной реакции, боится ошибиться, опечататься или показаться глупой и некомпетентной
🔘и много чего ещё выбирает не делать, ведь все это будет НЕ ИДЕАЛЬНО!

Не так как в её голове. Брунгильде не нравится сталкиваться с собой настоящей. С собой неидельной.

Чувствуете вкус иллюзии контроля над жизней и драмы?)

Поэтому предлагаю вместе с Брунгильдой сегодня сбросить все напряжение и направить высвобожденную энергию на путь созидания:

Замените эту фразу на новую.
Мы с Брунгильдой выбрали эти поддерживающие установки:

«Один раз – это больше, чем ноль» - обучение, спорт, отклики, собеседовния

«Я могу тут накосячить» и «Я могу сделать херню» - любимое, когда боимся рисовать или пробовать новое

«Это будет MVP» - а теперь ещё появился PoC (proof of concept), тут вообще от тебя ждут ещё меньшей идеальности, чем в MVP😁

➡️Кайф, если предложите свои установки в комментах

Помните, что «никак» – это тоже выбор. И он дороже, чем «плохо». Потому что «плохо» – это шаг, а «никак» – это тупик.
Я пока не Брунгильда и тоже пока борюсь со своими «никак»-выборами😁

Сохраните пост себе и перечитывайте, когда хочется выбрать «никак» или слышите назойливый голос «Либо делай хорошо, либо никак»

Голосуйте, кто где сейчас:

😭 - выбираю «никак»
😁 - вообще не про меня, не боюсь, делаю херню и радуюсь этому
🔥 - учусь выбирать «делать»
Please open Telegram to view this post
VIEW IN TELEGRAM
31😭8😁74👍4🤡1💯1🗿1
Поддерживающие установки подписчиков😎 Вы, конечно, лучшие!

«Не попробуешь - не узнаешь 😁»

«хуяк-хуяк и в продакшн😂»

«сделай хотя бы как-нибудь, а потом уже дорабатывать будем, а то слишком много думаем и мало делаем)»

«не ошибается только один - тот, кто ничего не делает.»

«не первый раз позориться» (ещё вариант: «если позориться, то позориться до конца»)
«Сделанное на троечку лучше не сделанного»

«Лучше жалеть о сделанном, чем о не сделанном»

«А это мой девиз: If nothing goes right - go left! 😆»

«Мы люди, мы ошибаемся, но это не значит, что мы не имеем право ошибаться»

«пох*, пляшем»



✈️Пишите, есть ли что ещё добавить в комменты! Соберем утренние мантры🤣
Please open Telegram to view this post
VIEW IN TELEGRAM
14😁7🔥5
В основе любого сильного проекта стоит сильный специалист.

В IT-мире сложно представить востребованного специалиста, который не разбирается в том, как работают: архитектура, API, базы данных, алгоритмы.

Без этого никуда.

И не страшно, если вы пока плохо разбираетесь в каких-то современных системах. Хуже, если продолжаете игнорировать свои пробелы в hard skills.

Начните с бесплатных уроков по архитектуре и интеграциям:

▪️мощный инструмент — SOAP UI
▪️подробное описание процесса загрузки сайта
▪️модель TCP/IP и устройства
▪️XML — это вам не ХSD

Присоединяйтесь в чат-боте по ссылке:
👇
@studyit_help_bot

🚀 Скидка на полный курс от канала — 1 000 ₽ на Stepik по промокоду LADY до конца сентября.
1🔥3
#2 РЕАЛЬНЫЕ БИЗНЕС-КЕЙСЫ, КОГДА НУЖНЫ ОКОННЫЕ ФУНКЦИИ

🧾 Кейс 2: «Расчёт времени между визитами»
Между соседними, между первым и последним, между событиями (напр., посещение страницы и покупка)

Зачем оно надо?
• создать маркетинговый сегмент для ретаргетирга/ремаркетинга
• найти слепые зоны в продукте. Например, сколько времени/действий нужно пользователю, чтобы решить свою задачу (сделать покупку, найти акцию, записаться, отправить заявку и т.д.) или узнать как быстро пользователи проходят обучение
• Расчёт продуктовых метрик типа Retention, LTV

Пример с первой и последней датой визита

with t as (
select *,
min(DateTime) over (partition by UserId) as FirstVisit,
max(DateTime) over (partition by UserId) as LastVisit
from table)

select
-- как долго пользователь в продукте
date_diff('day', FirstVisit, CURRENT_DATE)
-- как давно пользователь не заходил в продукт
date_diff('day', LastVisit, CURRENT_DATE)
from t


⚠️ Код очень упрощен, при больших объёмах данных нужно придумывать промежуточные таблицы или хранить дату первого визита пользователя. Обратите внимание, что CURRENT_DATE для разных диалектов будет по разному писаться (напр., NOW(), TODAY() и т.п.). A так же могут быть вариации функций DATE_DIFF (для вычисления разницы дат)


🧾 Кейс 3: «Бэнчмаркинг»
Конверсия 5.5% это хорошо или плохо? А 0.5%?
Все зависит от того с чем сравнивать. Бынчмаркинг – это как раз про сравнение, иначе эти числа будут для нас конём в вакууме 🐴

Если говорить о трафике и о рекламных кампаниях, то могут быть такие примеры сравнений:
• с прошлым периодом
• с прошлой рекламной кампанией
• с такой же рекламной кампанией в прошлом
• с похожей рекламной кампанией в текущий период
• с альтернативным трафиком (органика, рассылки и пр.)

Тут тоже на помощь приходят оконки, только уже LAG, LEAD и смещение внутри оконок.

with t as
(
select month(DateTime) month,
count(district UserId) as users
from table
group by month
)

select *,
1 - users / lag(users) over (order by month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as diff_users
from t
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍33