Аналитик данных: с нуля до самостоятельной работы и глубокого понимания
Аналитик данных помогает отвечать на рабочие вопросы с помощью записанных сведений. Например, выяснить, почему стало меньше заказов и какие данные нужны перед изменением рекламы.
Можно начать без программирования и статистики. В карте 24 основных шага и 8 шагов углубления. Нужную арифметику повторим на примерах. Объяснения рассчитаны на начинающего, в том числе примерно 16 лет.
Начните с 8–10 часов в неделю и подстройте темп после первых проектов. Сначала будут таблицы, затем SQL, отчёты и Python. Все новые инструменты появятся в том шаге, где нужны.
Материалы доступны бесплатно в указанном объёме; некоторым сервисам нужен аккаунт. Объяснения карты — на русском. В статистике и углублении есть английские главы: можно включить перевод страницы и сохранять рядом оригинальные термины.
Что считать результатом
В основной части вы научитесь уточнять вопрос, получать и проверять данные, считать в SQL и Python, делать отчёт и объяснять выводы. Сохранённые проекты помогут показать навыки на собеседовании.
В углублении будут прогнозы, сложные эксперименты и обновление отчётов. Для работы с большой ответственностью понадобятся также реальные проекты и обратная связь. Окончание карты не гарантирует работу или должностной уровень.
Оценка основной части — 515–782 часа, примерно 12–23 месяца при 8–10 часах в неделю без длинных перерывов. Углубление — ещё 230–360 часов. Это приблизительные сроки для планирования занятий. Уточняйте свой срок по журналу занятий.
Как заниматься
На неделе выделите два занятия по 90 минут на материал и задачи, два часа на самостоятельное упражнение и 3–5 часов на проект. Меняйте расписание под себя.
- Прочитайте пример шага.
- Откройте первый материал и указанные темы. Второй источник поможет разобрать трудное место.
- Выполните задания и сохраните результат.
- Проверьте расчёт и объясните его своими словами.
- После перерыва повторите один пример без подсказки.
В любом текстовом файле ведите журнал: вопрос, моя попытка, ошибка, исправление, что повторить. Если застряли, возьмите 5–10 строк и посчитайте ожидаемый ответ вручную. Сравните с программой и запишите точное расхождение.
С таким примером можно обратиться в обсуждение курса. AI можно попросить дать одну подсказку; затем проверьте её на данных. Рабочие выгрузки и личные сведения для учебного вопроса замените вымышленными.
В папке каждого проекта постепенно создавайте разделы: исходные данные, обработанные данные, SQL, Python-ноутбуки и отчёты. В README — обычном текстовом описании — запишите вопрос и команды повторения. Markdown в своих заметках необязателен.
Для внешних данных сохраняйте автора, ссылку, дату скачивания, условия использования и смысл столбцов. Исходник оставляйте без изменений, а обработку сохраняйте отдельно. Если источник недоступен, попробуйте альтернативу шага и запишите оставшийся вопрос.
Карта пути
| Шаги | Навык | Проверяемый результат |
|---|---|---|
| 1–4 | Профессия, арифметика, таблицы, постановка задачи | Первый аналитический отчёт |
| 5–8 | SQL и качество результата | Самостоятельное SQL-исследование |
| 9 | Визуализация и BI | Панель с проверенными показателями |
| 10–14 | Обработка данных в Python, история изменений, исследование файла | Расчёт на реальных данных, который можно повторить |
| 15–20 | Вероятности, статистика, метрики, эксперименты | Оценка точности и учебный эксперимент |
| 21–24 | Регулярная отчётность, коммуникация, портфолио | Незнакомая задача и готовность к первой работе |
| 25–32 | Связи показателей, прогнозы, причины изменений, обновление отчётов | Сложные проекты с проверкой и передачей работы |
Шаг 1. Узнать, чем занимается аналитик данных
6–10 часов. До начала: достаточно уметь открыть страницу в браузере.
Разберём на примере
У кафе стало меньше заказов, но каждый заказ в среднем дороже. Владелец спрашивает, хорошо ли идут дела. Аналитик данных собирает записи о заказах, считает выручку и проверяет, что ещё изменилось: цены, расходы, часы работы.
Данные — записанные сведения: сумма покупки, время звонка, нажатие кнопки. По ним аналитик ищет ответ на вопрос и объясняет, насколько надёжен вывод. В нашем примере роста выручки ещё недостаточно для ответа о прибыли: нужны расходы.
В компаниях встречаются разные аналитические роли. Таблица ниже поможет понять их задачи. Обязанности могут пересекаться.
| Роль | Типичный вопрос | Результат работы |
|---|---|---|
| Аналитик данных | Где и почему изменились показатели? | Исследование, расчёт, рекомендации |
| Продуктовый аналитик | Как люди пользуются продуктом и помогает ли изменение? | Метрики, воронки, эксперименты |
| BI-аналитик | Как регулярно видеть согласованные показатели? | Модель данных, отчётность, дашборды |
| Бизнес-аналитик | Какую проблему процесса решаем и какие требования нужны? | Описание процесса и требований |
| Системный аналитик | Как должна вести себя система и обмениваться данными? | Спецификация, модели взаимодействий |
| Data scientist | Можно ли построить и проверить модель прогноза? | Модель и оценка её качества |
| Data engineer | Как надёжно доставлять и хранить данные? | Потоки загрузки и инфраструктура данных |
Что прочитать и посмотреть
- Microsoft Learn: начало работы с аналитикой — русский, открытое чтение. Пройдите модуль «Откройте для себя анализ данных»: роли и задачи. Установку Power BI пока пропустите.
- Введение в профессию от Практикума — русский, бесплатная вводная часть после регистрации; полная программа платная и не нужна. Выполните вводную задачу, если доступна.
- Если регистрация недоступна, выполните приведённую ниже задачу целиком: она заменяет пробный урок.
Что сделать
- Разберите учебный пример кафе: раньше было 100 заказов со средним чеком 400 ₽, теперь — 80 со средним чеком 550 ₽. Умножьте число заказов на средний чек для каждого периода.
- Посчитайте изменение выручки: разделите новую на старую, вычтите 1 и умножьте на 100. Запишите ответ владельцу и 5 вопросов о периодах, ценах, расходах, часах работы и клиентах.
- Распределите задачи по ролям из таблицы: выяснить причины снижения повторных покупок; описать возврат товара; настроить загрузку заказов; спрогнозировать спрос; сделать панель продаж. Для каждой назовите коллегу, с которым придётся работать.
Что сохранить
profession.md: определения ролей своими словами, решение про кафе и перечень недостающих данных.
Как проверить себя
- Получились 40 000 и 44 000 рублей; рост выручки — 10%.
- Вы объясняете, почему рост выручки ещё не доказывает рост прибыли.
- Можете описать работу аналитика без перечисления названий программ.
Шаг 2. Разобраться в таблицах, долях и средних
10–16 часов. До начала: шаг 1.
Разберём на примере
Представьте таблицу заказов магазина. Одна строка описывает заказ, а столбцы — его дату, покупателя и сумму. Вид значения называют типом данных: число, текст, дата. Номер покупателя — идентификатор: он помогает найти человека, вычислять среднее таких номеров незачем.
Всегда спрашивайте, что означает строка. В одной таблице это целый заказ, в другой — один товар в заказе. Это называют детализацией. Она определяет, что именно вы посчитаете.
Доля — часть, делённая на общее количество. Из 10 посетителей купили двое: 2 / 10 = 20%. Долю посетителей, совершивших покупку, называют конверсией.
Рост с 10% до 12% — это 2 процентных пункта. Относительный рост — 12 / 10 − 1 = 20%. Для общего результата нескольких групп сначала сложите покупки и посещения: группы могут быть разного размера.
Что прочитать и посмотреть
- Начало работы с Google Таблицами — русский, открытая справка; для редактирования нужна учётная запись Google. Пройдите создание файла, ввод данных, форматирование чисел, сортировку и фильтр.
- Если Google недоступен: LibreOffice Calc — справка, русский; используйте локальный Calc. Все упражнения на строки, формулы и сводные таблицы сохраняются.
- Для арифметики достаточно разобрать формулы выше на калькуляторе. При пробелах повторяйте каждый пример до самостоятельного объяснения знаменателя.
Что сделать
order_id,order_date,customer_id,channel,status,amount,cost
1,2026-01-01,101,organic,paid,100,60
2,2026-01-01,102,ads,paid,200,120
3,2026-01-02,101,organic,paid,150,90
4,2026-01-02,103,ads,cancelled,300,180
5,2026-01-03,104,email,paid,400,240
6,2026-01-03,102,ads,paid,50,30
7,2026-01-04,105,organic,paid,100,60
8,2026-01-04,106,email,paid,200,120
- Скопируйте данные из блока выше в таблицу, начиная с A1. При импорте выберите запятую как разделитель. Здесь одна строка — вымышленный заказ.
- Составьте словарь полей: order_id — номер заказа; order_date — дата; customer_id — номер клиента; channel — канал; status — состояние; amount — сумма; cost — переменные затраты на этот заказ. Paid означает оплату, cancelled — отмену.
- Проверьте даты и числа. Сохраните исходный лист raw и сделайте копию analysis для расчётов.
- Посчитайте все заказы, затем только оплаченные. Для оплаченных найдите сумму amount, среднее amount и сумму cost. Вычтите затраты из выручки. Для чистой прибыли понадобились бы также постоянные расходы и налоги.
- Решите отдельно: в группе A купил 1 из 10 посетителей, в B — 90 из 100. Сложите покупки, затем посещения и найдите общую конверсию. Сравните со средним двух процентов.
Что сохранить
Таблицу с двумя вкладками, orders.csv и словарь семи полей. CSV — текстовый формат таблицы; он не хранит формулы и оформление.
Как проверить себя
- Всего 8 заказов, оплачено 7, их выручка 1 200, средний заказ около 171,43.
- Переменные затраты оплаченных заказов — 720, разность — 480.
- Общая конверсия дополнительной задачи — 91/110 ≈ 82,73%, а не 50%.
- Можете объяснить, почему
customer_idне следует усреднять.
Шаг 3. Сделать первый отчёт в электронных таблицах
20–30 часов. До начала: таблица шага 2.
Разберём на примере
Владелец хочет каждый день видеть продажи по каналам. Формулы помогут пересчитывать результат после добавления заказов. Например, SUM складывает числа, а SUMIFS складывает только те строки, которые подходят под условия.
Сводная таблица собирает строки в группы и считает итог: например, выручку рекламы и рассылки отдельно. Обычная ссылка A1 меняется при копировании формулы; абсолютная ссылка $A$1 закрепляет адрес.
Описание канала удобно хранить в отдельном справочнике и находить по коду. Если одному коду соответствуют две разные записи, сначала выясните, какую считать верной.
Что прочитать и посмотреть
- Справка Google Таблиц — разделы об анализе данных, сводных таблицах, диаграммах и очистке.
- Список функций с примерами — изучите
SUM,AVERAGE,IF,SUMIFS,COUNTIFS,IFERROR,XLOOKUPилиVLOOKUP, функции дат. Ищите по названию; не читайте весь справочник. - Для Calc используйте раздел функций и сводных таблиц. Названия функций и разделители аргументов могут отличаться по языку и настройкам.
Что сделать
- Откройте orders.csv. Посчитайте число и выручку оплаченных заказов по дням и каналам. Постройте сводную таблицу, один итог повторите через SUMIFS.
- Сделайте столбчатую диаграмму выручки каналов и график по дням. Подпишите единицу суммы и правило исключения отмен.
- Создайте справочник: organic — поиск, ads — реклама, email — рассылка. Добавьте описания в таблицу через XLOOKUP или VLOOKUP. Повторите строку справочника и разберите, как поиск выбирает ответ.
- На копии добавьте пробел к ads, текст вместо числа и повтор заказа 1. Найдите и исправьте ошибки формулами или описанными операциями. Сохраните исходник и шаги исправления.
- Добавьте новый оплаченный заказ. Обновите сводную таблицу и проверьте, какие итоги изменились.
Что сохранить
project-01: исходные данные, файл с формулами, две диаграммы и записка на полстраницы: вопрос, ответ, ограничения, следующий шаг.
Как проверить себя
- Выручка каналов: organic — 350, ads — 250, email — 600; сумма — 1 200.
- Добавление нового оплаченного заказа корректно меняет формулы и обновлённую сводную таблицу.
- Вы показываете минимум три исправленные ошибки и их влияние на итог.
- Отчёт можно прочитать без устного объяснения устройства таблицы.
Шаг 4. Уточнить вопрос заказчика
16–24 часа. До начала: первый отчёт.
Разберём на примере
Заказчик говорит: «Посмотри, почему упали продажи». Сначала уточните, какое решение он собирается принять: изменить цены, рекламу или ассортимент. От этого зависит, какие данные искать.
Метрика — показатель с точным правилом расчёта. «Продажи» могут означать число заказов или их сумму, с отменами или без. Договоритесь о значении и периоде сравнения.
Гипотеза — предположение, которое можно проверить. Например, выручка снизилась из-за отсутствия популярных товаров. Понадобятся сведения об остатках. Если их нет, это ограничивает вывод.
Что прочитать и посмотреть
- Повторите задачи аналитика в модуле Microsoft Learn.
- Google Data Analytics — описание этапов — английский, открытая страница: рассмотрите названия частей про вопрос, подготовку, очистку, анализ и сообщение результата. Записываться на платный сертификат не требуется.
- Основной практический материал — шаблон и кейс ниже.
Что сделать
Какое решение нужно принять:
Кто его принимает и к какому сроку:
Как определяем продажи и период сравнения:
Какие сегменты проверяем:
Какие данные доступны и чего нет:
Какие альтернативные объяснения проверим:
Как проверим правильность расчёта:
Что передадим: таблица / записка / дашборд:
Что сознательно не входит в задачу:
- Заполните шаблон выше для вопроса о падении продаж. Бриф — короткое описание задачи: решение, срок, данные и ожидаемый результат.
- На восьми заказах ответьте, как выручка распределена по каналам. Запишите, каких данных не хватает для оценки рекламы: расходы и число посетителей в таблице отсутствуют.
- Разложите выручку на число заказов и средний чек. Затем добавьте возможные причины изменения: отмены, цены, ассортимент, отсутствие товара, ошибка загрузки. Для каждой назовите нужные сведения и дальнейшее действие.
- Опишите три метрики: что считаем, за какой период, что означает строка и как учитываем отмены. Отдельно пометьте факты и предположения.
Что сохранить
brief.md, словарь трёх метрик, список гипотез в порядке проверки и критерий завершения задачи.
Как проверить себя
- У каждой метрики есть период, единица наблюдения и правило включения отмен.
- Вы различаете наблюдаемый факт, предположение о причине и предлагаемое действие.
- Можете отказаться от недоказуемого вывода и предложить следующий сбор данных.
Шаг 5. Начать писать запросы SQL
24–36 часов. До начала: шаги 1–4.
Разберём на примере
Заказов стало слишком много для ручного просмотра. База данных хранит таблицы, а SQL позволяет запросить нужные строки и расчёты. Например, получить оплаченные заказы за январь и их сумму.
SELECT задаёт результат, WHERE отбирает строки, GROUP BY собирает группы для расчётов, HAVING отбирает полученные группы. Подсчёт, сумма и среднее называются агрегатными функциями.
NULL означает неизвестное или отсутствующее значение. COUNT(*) считает строки, COUNT(column) — заполненные значения столбца, COUNT(DISTINCT column) — разные заполненные значения. Для поиска пропуска используют IS NULL.
Что прочитать и посмотреть
- Karpov Courses: бесплатный SQL-симулятор — русский, нужна регистрация, PostgreSQL в браузере. Пройдите «Знакомство с продуктом», «Базовые запросы», «Фильтрация данных», «Агрегация данных», «Группировка данных». Остановитесь перед подзапросами.
- Введение в PostgreSQL на русском — разделы о таблицах, запросах и агрегатных функциях; справка по непонятным конструкциям.
- Альтернатива тренажёру: Stepik — Интерактивный тренажер по SQL, русский, бесплатный с регистрацией. Начните с запросов к одной таблице. В примерах используется MySQL: функции дат и часть синтаксиса отличаются от PostgreSQL.
Что сделать
Ссылки для задания: PostgreSQL Exercises
- Пройдите указанные темы тренажёра и решите не менее 25 задач. Записывайте причину каждой ошибки. На следующий день повторите 5 задач без ответа перед глазами.
- Для самостоятельной проверки откройте Basic в PostgreSQL Exercises. Сначала попробуйте решить вопрос, затем смотрите подсказку и объяснение.
- Напишите 5 запросов к orders: оплаченные заказы, их сумма, среднее, сумма по каналу, каналы с выручкой больше 300. Пока сохраните запросы текстом; собственную базу настроите в шаге 8.
- На маленькой таблице с пропуском проверьте три варианта COUNT. Сравните LIMIT с ORDER BY и без него: для списка крупнейших заказов нужен заданный порядок.
Что сохранить
sql-basics.sql, журнал ошибок и пять объяснений: что делает каждая часть запроса.
Как проверить себя
- Пять новых задач на фильтр и агрегацию решены без копирования.
- Вы объясняете разницу
COUNT(*),COUNT(column)иCOUNT(DISTINCT column). - Для отсутствующего значения используете
IS NULL, понимаете влияние NULL на агрегаты. - Знаете, почему
LIMITбезORDER BYне задаёт осмысленный «топ».
Шаг 6. Соединять таблицы и проверять суммы
24–36 часов. До начала: базовый SQL.
Разберём на примере
Заказы лежат в одной таблице, города клиентов — в другой. Их можно соединить по номеру клиента. Поле для сопоставления называют ключом.
INNER JOIN оставляет совпавшие записи. LEFT JOIN сохраняет строки слева, даже если справа ничего не нашлось. Проверьте, сколько строк справа соответствует одной слева; это называют кардинальностью связи.
Если к заказу на 100 ₽ присоединить три его товара, сумма заказа повторится три раза. Перед подсчётом нужно выбрать нужную детализацию или сначала собрать товары в итог по заказу.
Что прочитать и посмотреть
- SQL-симулятор — «Подзапросы» и «Объединение таблиц», русский.
- PostgreSQL Exercises — разделы Joins and Subqueries, английский, с объяснениями. Минимум по пять новых задач каждого типа.
- Документация PostgreSQL — соединения; затем в разделе языка SQL найдите
WITHиCASE.
Что сделать
- Создайте справочник клиентов 101–106 с городами и добавьте клиента 107 без заказов. Нарисуйте связи. Предскажите число строк для INNER JOIN и LEFT JOIN.
- Напишите запросы: выручка по городу, клиенты без оплаченных заказов, клиенты с двумя и более оплатами, доля отмен.
- На этих вопросах попробуйте CASE — выбор значения по условию, COALESCE — замену NULL, EXISTS — проверку наличия строк, подзапрос и WITH — именованный промежуточный запрос. Соберите всего 10 запросов.
- Нарисуйте 3 товарные строки заказа 1 и 2 строки заказа 2. Посчитайте orders.amount после соединения: получится 700 вместо 300. Исправьте способ расчёта. Проверьте, почему SUM(DISTINCT amount) ошибётся для разных заказов с одинаковой суммой.
- Составьте памятку: уникальны ли ключи, сколько строк было и стало, что не присоединилось, совпали ли суммы.
Что сохранить
Схему таблиц, 10 запросов и памятку join-checks.md: уникальность ключей, число строк до/после, неприсоединённые строки, сверка суммы.
Как проверить себя
- Вы предсказываете число строк JOIN до выполнения.
- Умеете найти клиентов без заказов и понимаете, как фильтр в
WHEREможет убрать NULL-строкиLEFT JOIN. - Итоги до и после добавления справочника совпадают либо разница объяснена.
- Решаете ошибку детализации без маскировки через случайный
DISTINCT.
Шаг 7. Освоить оконные функции и время
20–30 часов. До начала: JOIN, группировки, CTE.
Разберём на примере
Нужно показать каждую покупку клиента и рядом — дату его предыдущей покупки. Обычная группировка собрала бы строки в одну. Оконная функция считает по выбранным строкам и сохраняет отдельные покупки.
PARTITION BY разделяет расчёт по клиентам. ORDER BY задаёт порядок покупок. Рамка окна определяет участвующие строки, например текущую и две предыдущие.
Три строки могут охватывать неделю, если в некоторые дни покупок не было. Поэтому заранее определите, нужны ли последние три записи или три календарных дня, и укажите часовой пояс.
Что прочитать и посмотреть
- SQL-симулятор — упражнения на оконные функции; продуктовые показатели пока считайте только после чтения их определения.
- PostgreSQL: оконные функции, английский; русский вариант найдите через введение.
- PostgreSQL Exercises — Window Functions и Date, английский.
Что сделать
- Для оплаченных заказов найдите номер покупки клиента, предыдущую дату через LAG, разницу дат, накопленную выручку и долю заказа в общей сумме. При одинаковой дате добавляйте в порядок order_id.
- На одинаковых суммах сравните ROW_NUMBER — номер строки, RANK — место с пропусками после ничьей, DENSE_RANK — место без таких пропусков.
- Сначала посчитайте выручку каждого дня, затем предыдущий дневной итог и накопленную сумму. Добавьте пропущенный день с нулём. Сравните окно из трёх строк с тремя календарными днями.
- Для периода включайте его начало и исключайте начало следующего. Запишите календарь и часовую зону. Решите 5 новых задач на окна и даты.
Что сохранить
windows.sql, маленькие примеры с ничьими и пустым днём, описание календаря и временной зоны.
Как проверить себя
- Накопительная выручка по дням набора: 300, 450, 900, 1 200.
- Вы объясняете, почему оконная функция не заменяет все группировки.
- Дубликат даты и отсутствие дня не приводят к незаметной смене смысла расчёта.
- Решены пять новых задач на окна и даты без готового запроса.
Шаг 8. Выполнить самостоятельный SQL-проект
16–24 часа. До начала: шаги 5–7.
Разберём на примере
Теперь запустите собственные запросы в своей базе. PostgreSQL хранит таблицы и выполняет SQL. Программа-клиент, например pgAdmin, отправляет ему команды и показывает ответ.
CREATE TABLE создаёт структуру таблицы; такие команды относят к DDL. INSERT добавляет строки; команды изменения данных относят к DML. Учебную базу можно создать заново, если загрузка пошла неправильно.
Что прочитать и посмотреть
- PostgreSQL — установка — выберите свою ОС; установка бесплатная. Вводное руководство объясняет создание базы и доступ.
- pgAdmin — Query Tool, английский: окно выполнения SQL. Можно использовать
psqlиз введения, если предпочитаете терминал. - Для дополнительных данных и задач: PostgreSQL Exercises — раздел Getting Started содержит подготовку учебной базы. Это запасной полностью описанный проект, если собственные вопросы пока слишком сложны.
Что сделать
CREATE TABLE orders (
order_id integer PRIMARY KEY,
order_date date NOT NULL,
customer_id integer,
channel text,
status text,
amount numeric(12,2),
cost numeric(12,2)
);
INSERT INTO orders VALUES
(1,'2026-01-01',101,'organic','paid',100,60),
(2,'2026-01-01',102,'ads','paid',200,120),
(3,'2026-01-02',101,'organic','paid',150,90),
(4,'2026-01-02',103,'ads','cancelled',300,180),
(5,'2026-01-03',104,'email','paid',400,240),
(6,'2026-01-03',102,'ads','paid',50,30),
(7,'2026-01-04',105,'organic','paid',100,60),
(8,'2026-01-04',106,'email','paid',200,120);
- Установите PostgreSQL по инструкции для вашей системы. Создайте базу analytics_learning и откройте окно SQL в pgAdmin или psql. Выполните код выше один раз в пустой базе.
- Запустите запросы шагов 5–7 и сравните результаты с таблицей. Добавьте справочник клиентов. Для повторной загрузки используйте новую учебную базу, чтобы случайно не учесть заказы дважды.
- По Getting Started в PostgreSQL Exercises подготовьте базу клуба с бронированиями. Сформулируйте задачу и напишите 10 своих запросов, включая соединения, WITH, даты и окна.
- Запишите 3 вывода, 2 проверки данных и 1 ограничение. Измените условие одного вопроса и пересчитайте.
- Составьте инструкцию повторения. Если установка пока не удалась, продолжайте упражнения в браузере PGExercises и запишите проблему: локальный запуск понадобится к шагу 21. Пароли в отчёт не включайте.
Что сохранить
project-02: setup.sql, analysis.sql, checks.sql, результаты в CSV, схема данных и README.md с инструкцией повторения.
Как проверить себя
- Контрольные итоги маленького набора совпали с шагами 2, 3 и 7.
- В независимом наборе есть запросы на JOIN, CTE, даты и окна.
- Вы можете изменить условие и объяснить изменение результата.
- Читатель понимает, откуда данные и какое решение поддерживает анализ.
Шаг 9. Собрать панель показателей
24–36 часов. До начала: проверенные итоги SQL-проекта.
Разберём на примере
Руководитель хочет открыть одну страницу и увидеть продажи за выбранный период. Такую панель показателей называют дашбордом. Средства подготовки регулярных отчётов часто объединяют названием BI.
Канал или месяц задаёт разрез данных — измерение. Выручка или число заказов — рассчитываемая мера. При каждом фильтре формула должна учитывать только нужные строки.
Средний чек считайте как общую сумму, делённую на число заказов. Среднее уже посчитанных средних по каналам может дать другой результат: заказов в каналах разное количество.
Что прочитать и посмотреть
- Курс Yandex Cloud по DataLens — русский, бесплатный доступ к курсу с регистрацией. Пройдите подключение файлов, датасеты, стандартные чарты, вычисляемые поля, селекторы и дашборды. AI, JavaScript и платные облачные подключения пропустите.
- Если курс недоступен: официальные практические руководства — «Простой дашборд из CSV-файла»; затем подключение файла.
- Karpov Courses — визуализация, русский, бесплатный курс с регистрацией: используйте разделы о выборе графиков и композиции. Практику Tableau повторять не обязательно.
- Для объяснения выбора графика: Claus Wilke — каталог визуализаций, английский, открытое чтение.
По условиям DataLens индивидуальное использование бесплатно на дату проверки. Создавайте учебное пространство для одного пользователя, без аренды облачной БД. Не превращайте учебный доступ в публичную публикацию чужих данных.
Что сделать
Ссылки для задания: Power BI Desktop · Microsoft Learn · PL-300
- Выберите DataLens либо Power BI Desktop по инструкции для Windows. Загрузите orders.csv. Создайте показатели выручки, числа оплаченных заказов и среднего чека.
- Добавьте динамику по дням и сравнение каналов. Сделайте фильтры дат и канала, подпишите формулы, дату обновления и вымышленное происхождение данных.
- Оставьте фильтром только отменённый заказ. Выручка оплаченных заказов должна стать 0; средний оплаченный заказ здесь не определён, поскольку оплат нет.
- Повторите панель на выгрузке SQL-проекта. Для каждого графика напишите вопрос, на который он отвечает. Попросите человека найти 3 ответа и исправьте затруднения.
- Для варианта Power BI сохраните .pbix локально. В PL-300 ищите нужные темы: Power Query — подготовка данных, модель — связи таблиц, DAX — формулы.
Что сохранить
project-03: выгрузку, определения мер, доступный учебный дашборд либо локальный файл, снимки экрана и результаты пользовательской проверки.
Как проверить себя
- Итоги всех карточек и графиков сходятся с SQL, включая фильтры и пустую выборку.
- У графиков есть единицы, период и осмысленные заголовки.
- Читатель самостоятельно ответил на три вопроса.
- Вы показываете, как проверили связи таблиц и расчёт мер при разных фильтрах.
Шаг 10. Освоить Python до работы с pandas
30–45 часов. До начала: логика условий и группировок из SQL.
Разберём на примере
Каждую неделю магазин присылает новый файл заказов. Python позволяет записать обработку один раз и запускать её на новых файлах.
Переменная хранит значение, условие выбирает действие, цикл повторяет его для списка заказов. Функция объединяет действия в одну именованную операцию, например подсчёт суммы и среднего чека.
Список хранит последовательность значений, словарь — пары ключ и значение, например канал и его выручку. Эти конструкции пригодятся до знакомства с библиотекой pandas.
Что прочитать и посмотреть
- Яндекс Хендбук «Основы Python», русский, открытая теория; для автопроверки нужен вход. Пройдите главы 1–3, затем 4.1–4.2 о функциях и 5.3 об исключениях. В главе 3 сосредоточьтесь на коллекциях и файлах; дополнительные проекты серверов пропустите.
- Альтернативное объяснение: Code Basics Python, русский; основные типы, условия, циклы и функции. Это замена объяснения трудной темы, не второй полный обязательный курс.
- Установите Python по инструкции главы 1. Если пока не можете установить, выполняйте учебные задачи в браузере, а настройку рабочего окружения завершите в шаге 11.
Что сделать
- Пройдите выбранные темы курса и решите не менее 30 небольших задач. Установите Python по начальной главе; если установка пока не получается, используйте браузерные упражнения до шага 11.
- Напишите функцию для списка сумм: сумма, количество, среднее. Заранее решите, какой результат возвращать для пустого списка.
- Прочитайте orders.csv модулем csv, оставьте paid и получите знакомые итоги без pandas.
- Проверьте пустой список, один заказ, отмену, отрицательную сумму и текст вместо числа. Для ошибочного значения выведите понятную ошибку.
- Покажите на примере, когда вы меняете исходный список, а когда создаёте новый. На следующий день решите похожую задачу с другими числами.
Что сохранить
python-basics.py, пять примеров проверки и объяснение трёх встреченных ошибок.
Как проверить себя
- Без готового решения пишете функцию, цикл и словарь группировок.
- Можете прочитать сообщение об ошибке и найти строку своего кода.
- Выручка маленького набора снова равна 1 200.
- На следующий день решаете похожую задачу с другими данными.
Шаг 11. Настроить Python, Jupyter и историю изменений
20–30 часов. До начала: базовый Python.
Разберём на примере
Ваш расчёт работает сегодня, а через месяц после обновления библиотеки выдаёт ошибку. Виртуальное окружение хранит библиотеки конкретного проекта отдельно. Список их версий поможет повторить установку.
Ноутбук Jupyter — файл с блоками кода, объяснениями и результатами. Код выполняет отдельный запущенный процесс — ядро. Если выполнять блоки в разном порядке, в памяти могут остаться значения, которых нет при чистом запуске.
Git сохраняет историю изменений файлов. Воспроизводимый расчёт — тот, который можно заново получить из исходных данных по инструкции.
Что прочитать и посмотреть
- Python: виртуальные окружения, английский — создание
venv, установка пакетов,pip freeze. - Jupyter: установка, английский — JupyterLab.
- Pro Git на русском — разделы 1.5–1.6, 2.1–2.5: установка, настройка, репозиторий, запись изменений, история, удалённый репозиторий. Сложное ветвление пока не нужно.
Что сделать
python -m pip install jupyterlab pandas matplotlib seaborn openpyxl
python -m jupyterlab
- В папке проекта создайте окружение: Windows — py -m venv .venv, macOS/Linux — python3 -m venv .venv. Активируйте его по инструкции Python для вашей оболочки. Выполните команды установки и запуска выше.
- В JupyterLab создайте ноутбук рядом с orders.csv. Добавьте текст с вопросом и ячейку print(2 + 2). Сохраните, перезапустите ядро и выполните все блоки сверху вниз.
- Создайте Git-репозиторий проекта. Сделайте 3 записи изменений — коммита: первый расчёт, исправление, пояснение. В .gitignore перечислите окружение, локальные данные и временные файлы. Пароли и рабочие выгрузки туда не добавляйте.
- Сохраните версии: python -m pip freeze > requirements.txt. Укажите версию Python и команды запуска в README. Проверьте инструкцию в новой папке; для другой системы могут понадобиться уточнения.
- При ModuleNotFoundError проверьте окружение командой import sys; print(sys.executable). При FileNotFoundError проверьте имя файла и папку ноутбука.
Что сохранить
Репозиторий учебного проекта с .gitignore, requirements.txt, ноутбуком и README. Публиковать его можно позже после проверки содержимого.
Как проверить себя
- «Restart Kernel and Run All» проходит без ручного запуска отдельных ячеек.
- Можете найти изменение в Git и объяснить, зачем оно было сделано.
- В новой папке воспроизводите проект по README.
- Понимаете разницу файла ноутбука, его ядра и установленного Python.
Шаг 12. Обрабатывать данные с pandas
20–30 часов. До начала: Python и рабочий ноутбук.
Разберём на примере
В SQL вы уже считали выручку по каналам. Теперь повторите тот же расчёт в Python с библиотекой pandas. Её основная структура, DataFrame, — таблица со строками и столбцами.
Вы будете читать файлы, выбирать строки, считать группы и соединять таблицы. Правила проверки остаются прежними: один заказ не должен случайно стать несколькими, а пропуск суммы требует отдельного решения.
Что прочитать и посмотреть
- Яндекс Хендбук: модуль pandas, русский — чтение, выборка, группировки и объединения; выполните задачи параграфа.
- Официальные вводные уроки pandas, английский — reading/writing, selecting subsets, summary statistics, combining tables, time series.
- Если нужно другое объяснение: Wes McKinney, открытая книга, английский — главы 5, 7, 8, 10, только изучаемые операции. Книга ориентируется на более ранний pandas; при расхождении используйте текущую документацию.
Что сделать
import pandas as pd
orders = pd.read_csv("orders.csv", parse_dates=["order_date"])
paid = orders.loc[orders["status"].eq("paid")].copy()
assert orders["order_id"].is_unique
assert paid["amount"].sum() == 1200
summary = paid.groupby("channel", as_index=False).agg(
revenue=("amount", "sum"), orders=("order_id", "count")
)
summary["average_order"] = summary["revenue"] / summary["orders"]
summary.to_csv("channel-summary.csv", index=False)
- Запустите код выше на orders.csv и объясните каждую строку: загрузку, выбор paid, проверки assert, группировку и сохранение.
- Добавьте число разных покупателей и выручку по дням. Сравните с SQL на тех же строках.
- Присоедините клиентов через merge с validate="many_to_one": это проверка, что справа одному ключу соответствует одна запись. Повторите ключ в справочнике и убедитесь, что код сообщает об ошибке.
- В копии данных оставьте сумму пустой и испортите дату. Проверьте преобразование типов и сохраните проблемные строки отдельно. Сравните пропуск NaN, пустой текст и ноль.
Что сохранить
Ноутбук pandas-basics.ipynb, выгрузку результатов и перечень проверок качества.
Как проверить себя
- Результаты pandas и SQL совпадают.
- Ошибочная связь не проходит незаметно.
- Вы объясняете, какие пропуски исключили, какие сохранили и почему.
- Можете повторить группировку и объединение без копирования образца.
Шаг 13. Провести исследование на реальных данных
30–45 часов. До начала: pandas и воспроизводимый ноутбук.
Разберём на примере
В реальном файле магазина встречаются возвраты, пустые номера клиентов и необычно крупные покупки. Перед выводами нужно понять, как появились эти записи. Такой первый разбор называют исследовательским анализом, или EDA.
Очень необычное значение называют выбросом. Заказ на крупную сумму может быть оптовой покупкой или ошибкой записи. Решение о его обработке зависит от смысла данных.
В Online Retail строка описывает товарную позицию документа. Один документ может занимать много строк; число строк и число заказов нужно считать отдельно.
Что прочитать и посмотреть
- UCI Online Retail — открытые данные Daqing Chen, английское описание. Скачайте архив через Download, распакуйте
Online Retail.xlsx, прочитайте определения полей. Данные исторические; не используйте их как описание сегодняшнего рынка. - Seaborn tutorial, английский — distributions, categorical data, relational plots; Matplotlib — Pyplot tutorial для подписей и сохранения.
- Русское объяснение обработки — параграф pandas. В качестве дополнительного разбора EDA — главы 4–6 IMS2, английский.
Что сделать
- Скачайте Online Retail.xlsx и прочитайте словарь источника. Откройте файл через pd.read_excel. Посчитайте строки, разные документы и клиентов; сохраните происхождение и дату файла.
- Проверьте пустые номера клиентов, отрицательные количества, нулевые цены, отмены, повторы и даты. Даже если описание сайта обещает отсутствие пропусков, проверьте сам файл.
- Сделайте два расчёта Quantity * UnitPrice: отдельно положительные продажи и итог с отрицательными корректировками. Для каждого объясните включённые строки. Данных о прибыли здесь нет.
- Изучите продажи по полным месяцам, долю крупнейших клиентов, вклад стран и товаров. Постройте 4–6 графиков: распределение сумм документов, динамику и сравнения.
- Для каждого исправления запишите правило, число затронутых строк и влияние на сумму. Сравните выводы с учётом корректировок. Отметьте неполные месяцы и невозможность всегда связать возврат с исходной покупкой.
Что сохранить
project-04: паспорт источника, ноутбук очистки/EDA, журнал исключений, 4–6 графиков и записку с тремя выводами и ограничениями.
Как проверить себя
- У каждой очистки есть правило, число затронутых строк и влияние на сумму.
- Документы не посчитаны как товарные позиции.
- Исследование повторяется с исходного файла без ручной правки ячеек.
- Вы не делаете выводов о прибыли, рекламной окупаемости и причинности из отсутствующих данных.
Шаг 14. Получать данные и проверять их происхождение
20–30 часов. До начала: файлы, ошибки, pandas.
Разберём на примере
Нужны данные о населении, которые можно обновлять без ручного скачивания таблицы. API описывает, как программа запрашивает сведения у сервиса. В упражнении вы отправите запрос Всемирному банку.
Код состояния HTTP сообщает, как прошёл запрос. JSON — текстовый формат с именованными значениями и списками. Большой ответ может быть разбит на страницы; это пагинация.
После получения ответа проверьте число страниц, годы и единицы измерения. Даже успешный ответ может содержать только часть нужных наблюдений.
Что прочитать и посмотреть
- Яндекс Хендбук: requests, русский — GET, параметры, JSON и обработка ответа. OAuth и запись в облачные сервисы пока пропустите.
- Requests Quickstart, английский — параметры, timeouts, errors.
- World Bank Indicators API, английский — Basic Call Structures и Indicator API Queries; для публичных показателей не нужен секретный ключ.
Что сделать
import requests
response = requests.get(
"https://api.worldbank.org/v2/country/CYP/indicator/SP.POP.TOTL",
params={"format": "json", "date": "2015:2024", "per_page": 100},
timeout=30,
)
response.raise_for_status()
metadata, observations = response.json()
print(metadata["pages"], len(observations))
- Установите requests в окружение и обновите requirements.txt. Запустите пример выше для показателя SP.POP.TOTL за 2015–2024 годы.
- Сохраните исходный JSON. Преобразуйте годы и значения в таблицу, отсортируйте, проверьте повторы и пропуски. Запишите определение показателя и дату загрузки.
- Добавьте вторую страну. Сравните население и темп изменения отдельно. По этим числам нельзя судить обо всём уровне жизни.
- На учебных примерах проверьте неверный адрес, пустой ответ и несколько страниц. Опишите, когда прекращать расчёт и сообщать о неполных данных.
- Запустите загрузку снова: строки не должны удвоиться. Если сервис недоступен, используйте сохранённый ответ с его датой.
Что сохранить
fetch_data.py или ноутбук, исходный ответ, таблицу, паспорт показателя и журнал загрузки с датой.
Как проверить себя
- Вы проверяете статус, структуру, число страниц и полноту периода.
- Повторный запуск не создаёт дубликаты наблюдений.
- По готовой таблице можно восстановить источник, запрос и определение показателя.
- Если API недоступен, используете сохранённый ответ и явно указываете дату снимка.
Шаг 15. Понять выборку, распределение и вероятность
20–30 часов. До начала: арифметика, EDA и Python.
Разберём на примере
Магазин опросил только клиентов, оставивших хороший отзыв. Их ответы вряд ли покажут мнение всех покупателей. Генеральная совокупность — все, о ком вы хотите сделать вывод. Выборка — те, чьи ответы получили. Если способ отбора меняет состав участников, возникает смещение отбора.
Распределение показывает, какие значения встречаются и как часто. Среднее — сумма, делённая на количество; медиана — середина упорядоченных значений. Квантили отмечают границы долей: например, ниже 90-го процентиля лежит примерно 90% значений.
Дисперсия и стандартное отклонение описывают разброс. Условная вероятность отвечает на вопрос с дополнительным условием, например о покупке среди пришедших по рекламе. Независимость означает, что знание одного события не меняет вероятность другого.
Что прочитать и посмотреть
- Stepik: Основы статистики, русский, бесплатный курс — вводная часть, описательные показатели и распределения. Автор предупреждает о неточностях старых формулировок: это введение, а не единственный источник.
- Seeing Theory, английский, открытая архивная визуализация — Basic Probability, Compound Probability и Probability Distributions. Изменяйте параметры и сначала предсказывайте результат.
- IMS2, английский — главы 1–2 и 4–5, упражнения и приложение Exercise solutions. Это обязательная сверка понятий выборки и дизайна наблюдений; доступ без регистрации.
Что сделать
- Для 10, 10, 10, 10, 60 посчитайте среднее и медиану. Добавьте 1000 и повторите. Объясните, почему показатели изменились по-разному.
- В Online Retail сравните среднюю и медианную сумму положительного заказа. Постройте распределение числа заказов на клиента.
- С помощью генератора NumPy смоделируйте 100, 1000 и 10 000 бросков монеты. Сравните долю орлов с 0,5. Отдельный более длинный запуск не обязан оказаться ближе к 0,5.
- Сравните опрос довольных клиентов и случайный отбор из всех клиентов. Назовите 3 примера смещения. Решите 15 упражнений по вероятности и описанию данных.
Что сохранить
probability.ipynb, словарь терминов и три примера смещения данных из знакомой предметной области.
Как проверить себя
- Для пяти исходных чисел среднее — 20, медиана — 10.
- Различаете вероятность события и долю события в конкретной выборке.
- Объясняете, почему корреляция и большой размер выборки не доказывают причинность.
- Можете назвать единицу наблюдения в каждом своём проекте.
Шаг 16. Оценить, насколько точен расчёт по выборке
25–40 часов. До начала: шаг 15.
Разберём на примере
Вы опросили 100 клиентов и получили средний чек. При другом случайном наборе людей среднее немного изменится. Стандартная ошибка описывает разброс таких оценок между выборками. Стандартное отклонение описывает разброс самих покупок.
Доверительный интервал строят по правилу, которое при многократном повторении исследования покрывает истинный параметр с заданной частотой. Для 95%-процедуры это примерно 95% интервалов при выполнении условий метода. В уже вычисленном частотном интервале параметр фиксирован: правило не присваивает ему вероятность 95%.
Bootstrap помогает оценить неопределённость: из имеющихся наблюдений много раз выбирают новые наборы с возвращением. Это значит, что одна запись может попасть в набор несколько раз. При связанных заказах одного клиента повторно выбирайте клиентов с их заказами, чтобы сохранить связь.
Что прочитать и посмотреть
- Основы статистики — части про выборочное распределение, стандартную ошибку и интервалы, русский.
- IMS2 — глава 12 «Confidence intervals with bootstrapping», глава 13 о математических моделях; английский, обязательно разберите упражнения с ответами.
- SciPy bootstrap — английский, примеры API. Установите в окружении
python -m pip install scipy statsmodelsи обновите список зависимостей.
Что сделать
- Создайте вымышленный набор с известным средним. Много раз возьмите случайные выборки по 100 значений, постройте интервалы и посчитайте, сколько покрыли известное среднее. Используйте фиксированный seed — начальное состояние генератора — для повторения.
- Повторите для размеров 25 и 400. Покажите отдельно распределение исходных значений и распределение полученных средних. Объясните, почему доля покрытия в конечном опыте не обязана быть ровно 95%.
- Для простого bootstrap повторяйте rng.choice(values, size=len(values), replace=True) и сохраняйте среднее. Границы 2,5% и 97,5% полученных средних дают учебный percentile-интервал. Сравните с выбранным методом SciPy.
- В Online Retail сначала соберите положительные продажи по клиентам, затем повторно выбирайте клиентов. Объясните, к каким клиентам относится вывод: данные одного магазина не являются случайной выборкой покупателей всего мира.
Что сохранить
Ноутбук с фиксированным seed генератора, экспериментом покрытия и объяснением ограничения выбранной процедуры.
Как проверить себя
- Объясняете стандартное отклонение и стандартную ошибку на разных графиках.
- Можете описать 95%-покрытие без фразы «95% всех данных внутри».
- Указываете единицу повторной выборки и сохраняете зависимость наблюдений.
- Симуляция повторяется; вы не выдаёте интервал за гарантию правильного источника данных.
Шаг 17. Проверять статистические гипотезы
25–40 часов. До начала: интервалы и выборочные распределения.
Разберём на примере
В двух группах средний чек немного различается. Нужно понять, насколько такие различия совместимы со случайным разбросом. Нулевая гипотеза задаёт проверяемую модель, например отсутствие разницы средних.
p-value — вероятность при этой модели и её условиях получить столь же или более крайнее значение выбранной статистики. Это вероятность возможных результатов при модели; вероятность истинности самой гипотезы она не вычисляет.
Ошибка первого рода — отклонить верную нулевую гипотезу. Мощность — вероятность обнаружить заданный эффект выбранным способом. Небольшой полезный эффект бывает трудно заметить на малом числе наблюдений.
Поэтому рядом с p-value нужны размер эффекта, интервал и условия проверки. При десятках проверяемых показателей растёт шанс случайной находки; для этого используют поправки на множественные проверки.
Что прочитать и посмотреть
Правила интерпретации p-value также разобраны в заявлении Американской статистической ассоциации (ASA).
- IMS2 — главы 11, 14, 17, 20–21: рандомизация, ошибки решений, две доли, независимые и парные средние; английский.
- Русское повторение: Основы статистики — сравнение групп. Корректность интерпретации сверяйте по IMS2 и ASA, а не по одному пересказу.
- SciPy
ttest_ind— независимые средние,equal_var=Falseзадаёт тест Уэлча. statsmodels — статистические методы — доли и множественные проверки. Английская документация служит для выбранного метода, не для заучивания всех функций.
Что сделать
- Разберите три задачи: конверсия независимых групп; средние затраты разных клиентов; измерение одних клиентов до и после. До расчёта запишите гипотезу, единицу наблюдения, показатель и зависимость групп.
- Смоделируйте 1000 сравнений без эффекта и посчитайте, как часто тест отклоняет гипотезу при пороге 0,05. Повторите с заданным эффектом.
- Для одного результата покажите эффект, интервал и p-value. Для 20 показателей сравните решения без поправки и с Holm из statsmodels.
- Опишите условия выбранного метода: независимость, чувствительность к необычным значениям, что именно сравнивается. Одной проверки нормальности для выбора теста недостаточно. Манна—Уитни нельзя автоматически трактовать как проверку равенства медиан.
- Напишите 5 вариантов вывода для разных результатов. При p > 0,05 укажите, какой диапазон эффектов ещё допускают данные.
Что сохранить
hypotheses.ipynb, таблицу выбора методов и пять корректных формулировок вывода для разных результатов.
Как проверить себя
- До запуска теста записаны гипотеза и основной показатель.
- Различаете независимые и парные наблюдения, среднее и долю.
- Рядом с p-value есть оценка эффекта, интервал и ограничения.
- Можете объяснить, почему «p > 0,05, значит эффекта нет» — недостаточный вывод.
Шаг 18. Считать продуктовые метрики, когорты и экономику
20–30 часов. До начала: SQL, pandas, основы статистики.
Разберём на примере
На сайт пришли люди: часть добавила товар в корзину, часть оплатила. Воронка считает переходы по заданным событиям в заданном порядке и за выбранное время.
Когорта — группа с общим началом, например первая покупка в январе. Retention показывает возвращение по определённому правилу. Вернуться ровно на седьмой день и вернуться на седьмой день или позже — разные показатели.
DAU — число активных пользователей за день: сначала определите действие активности и часовой пояс. ARPU — выручка на пользователя: укажите, каких пользователей включили. CAC — затраты на привлечение одного нового клиента. Для LTV задайте период и вид ценности; один месяц выручки ещё не описывает весь срок отношений с клиентом.
Что прочитать и посмотреть
- SQL-симулятор — русские разделы «Продуктовые метрики», «Построение дашбордов», практические задачи.
- Amplitude: виды retention, английский, открытая глава; прочитайте определения Return On и Return On or After.
- Демоаккаунт Google Analytics, русская инструкция: по желанию изучите отчёты на готовых данных. Учётная запись Google нужна; доступ демо имеет ограничения. Экспорт через API не требуется.
Что сделать
user_id,event_time,event
1,2026-01-01 10:00:00,visit
1,2026-01-01 10:05:00,cart
1,2026-01-01 10:10:00,purchase
2,2026-01-01 11:00:00,visit
2,2026-01-01 11:05:00,cart
3,2026-01-01 12:00:00,visit
4,2026-01-01 13:00:00,purchase
4,2026-01-01 13:05:00,visit
- В Online Retail сгруппируйте клиентов по месяцу первой наблюдаемой положительной покупки. Постройте таблицу повторных покупок по месяцам после неё. Будущие ещё не наблюдавшиеся месяцы оставьте неизвестными.
- Для событий выше посчитайте пользователей с последовательностью visit → cart → purchase в пределах суток от первого визита. Проверьте 4 → 2 → 1 и итог 25%. У пользователя 4 покупка произошла до визита.
- Добавьте повтор события. Убедитесь, что пользователей от этого не стало больше. Запишите отличие пользователя, сессии посещения, отдельного события и покупателя.
- Посчитайте учебный пример: реклама 1000, новых клиентов 20, за 30 дней выручка на клиента 120, переменные затраты 70. Найдите CAC и остаток после затрат и привлечения. Постоянные расходы здесь не заданы.
- Составьте словарь 8 метрик: формула, период, включённые пользователи, источник чисел. Для когорт отметьте, что часть клиентов могла покупать до начала файла.
Что сохранить
Словарь восьми метрик, SQL и pandas для когорты/воронки, расчёт экономики с горизонтом и недостающими данными.
Как проверить себя
- У воронки определены порядок, окно и единица подсчёта.
- Ненаблюдённый будущий период когорты не превращён в нулевой retention.
- Вы различаете пользователей, сессии, события и покупателей.
- Для каждого экономического показателя можете назвать источник числителя и знаменателя.
Шаг 19. Спроектировать A/B-тест до получения результата
25–40 часов. До начала: шаги 15–18.
Разберём на примере
Команда предлагает новую форму оплаты. В A/B-тесте часть пользователей получает прежний вариант, часть — новый. Случайное распределение называется рандомизацией.
До запуска задайте, какой эффект хотите уметь обнаружить. Этот ориентир называют MDE. Он нужен для расчёта объёма данных и не обещает, что изменение даст такой рост.
Вместе с основной метрикой следите за показателями, которые не должны ухудшиться, например ошибками оплаты. Их называют защитными метриками, или guardrails. Если планировали группы 50/50, а получили заметно другое распределение, возможен SRM — несоответствие долей групп, которое нужно расследовать.
Что прочитать и посмотреть
- IMS2 — повторите Study design, Decision Errors и сравнение долей.
- Evan Miller: калькулятор размера выборки, английский, открытый инструмент. Разберите baseline, absolute/relative MDE, power и significance level.
- Microsoft Research: диагностика SRM, английский: несоответствие ожидаемого распределения групп и причины потери данных.
- Для русского углубления после базы: AvitoTech, A/B-тесты, часть 1 — введение в мощность и симуляционные проверки. CUPED отложите до шага 27.
Что сделать
- Составьте план учебного теста формы оплаты: исходная конверсия за 7 дней 10%, интересующий рост 1 процентный пункт, двусторонний тест, порог 0,05, мощность 0,8, группы 50/50.
- Рассчитайте число пользователей на каждый вариант. При 1000 подходящих новых пользователях в день всего оцените срок набора и добавьте время для полного семидневного результата последних участников.
- Запишите, кого включаете, как закрепляете вариант при повторном входе, какие пропуски допустимы, что считаете и когда заканчиваете. Задайте защитные метрики.
- Повторите расчёт для роста 0,5 процентного пункта: нужный объём должен увеличиться.
- Отдельно опишите аварийную остановку при ошибках. Остановка при первом удачном обычном p-value меняет свойства проверки; для статистической досрочной остановки заранее выбирают последовательный метод.
Что сохранить
experiment-plan.md, расчёт выборки и список проверок перед запуском. Это проектирование учебного теста; воздействовать на реальных пользователей не требуется.
Как проверить себя
- В плане есть эффект в процентных пунктах, мощность и размер каждой группы.
- Размер выборки не перепутан с количеством событий.
- Основная метрика и правила остановки зафиксированы до анализа.
- Вы знаете, почему SRM и потери логов требуют расследования.
Шаг 20. Проанализировать эксперимент и принять обоснованное решение
25–40 часов. До начала: утверждённый вами план шага 19.
Разберём на примере
У нового варианта конверсия выше. Сначала проверьте, что пользователи не попали в обе группы и что данные одной группы не потерялись. Ошибка сбора может выглядеть как улучшение продукта.
Затем посчитайте разницу, её неопределённость и возможную пользу. Решение учитывает также расходы и защитные показатели. В этом шаге данные вымышлены: упражнение проверяет расчёт, а не пользу настоящей формы оплаты.
Что прочитать и посмотреть
- statsmodels: тест двух долей и интервал разности долей, английский — параметры и примеры.
- Microsoft: SRM — повторите диагностическую последовательность.
- Если интерпретация затрудняет: IMS2, глава 17. Русскую формулировку вывода напишите по шаблону ниже.
Что сделать
import numpy as np
import pandas as pd
rng = np.random.default_rng(42)
n = 20000
experiment = pd.DataFrame({
"user_id": np.arange(2 * n),
"group": np.repeat(["A", "B"], n),
"converted": np.concatenate([
rng.binomial(1, 0.10, n),
rng.binomial(1, 0.11, n),
]),
})
experiment.to_csv("experiment.csv", index=False)
- Запустите генератор выше. Он создаёт по 20 000 независимых пользователей в группе для упражнения. Это число не заменяет расчёт объёма в шаге 19.
- Проверьте уникальность user_id, отсутствие пересечения групп, размеры и значения converted: только 0 или 1. Найдите конверсии, B−A в процентных пунктах и относительное изменение.
- В proportions_ztest передайте число успехов и размер каждой группы. Для интервала B−A используйте confint_proportions_2indep: сначала B, затем A, compare="diff", method="newcomb".
- Повторите с одинаковыми вероятностями — это A/A — и с потерей строк из B. Потерю данных сначала расследуйте; удаление строк A для равенства размеров её не исправляет.
- Смоделируйте 1000 A/A-запусков и посчитайте ложные обнаружения. Запишите вывод: эффект, интервал, ограничения, предлагаемое решение и будущие проверки. Укажите отсутствующие в симуляции задержки, связи между людьми и реальные расходы.
Что сохранить
project-05: план, генератор, данные симуляции, проверки, анализ и одностраничное решение. В названии проекта явно укажите «симуляция».
Как проверить себя
- Направление интервала совпадает с направлением эффекта B−A.
- A/A и испорченные данные разобраны отдельно от успешного сценария.
- Решение не сводится к одной границе p-value.
- Вы можете защитить выбор метода и назвать, что надо проверить в реальном эксперименте.
Шаг 21. Сделать отчётность повторяемой и согласованной
20–30 часов. До начала: SQL, Python, BI; завершите локальную настройку шага 8.
Разберём на примере
Отчёт нужно обновлять каждый день. Для этого удобно разделить работу: сохранить исходник, очистить позиции, собрать заказы и посчитать дневные итоги. Подготовленную для отчёта таблицу называют витриной.
Таблица фактов хранит покупки или другие события. Справочники добавляют сведения о клиентах и товарах. ETL и ELT обозначают порядок получения, преобразования и загрузки данных.
Повторная обработка того же файла должна давать тот же результат, без удвоенных заказов. Это свойство называют идемпотентностью. Его проще проверить двумя последовательными запусками.
Что прочитать и посмотреть
- Microsoft: схема «звезда», русский — факты, измерения, детализация и связи. Идеи нужны независимо от выбранного BI.
- DataLens: модель данных, русский — связи; либо темы модели и мер в PL-300, если выбрали Power BI.
- pytest — первое знакомство, английский — одна функция, проверка через
assert, запуск тестов. Для SQL используйте проверки из шага 8.
Что сделать
Ссылки для задания: DataLens: замена загруженного файла
- Разделите Online Retail на исходник, очищенные позиции, документы и дневные итоги. Для каждого запишите смысл строки и ключ. Проблемные записи сохраните отдельно с причиной.
- Перенесите обработку в функцию: прочитать файл, проверить, посчитать, записать новый CSV. Сначала пересоздавайте весь итог. Запустите дважды и сравните.
- Разделите вход на два периода и объедините результаты. Проверьте границу дат, уникальность, обязательные поля, состояния, связи и суммы. Возвраты могут иметь отрицательные значения.
- Испортите входной файл. Программа должна сообщить о проблеме и оставить предыдущий корректный отчёт.
- Обновите BI из выгрузки; для DataLens используйте ссылку на замену файла. Опишите шаги обновления и восстановления так, чтобы их повторил другой человек.
Что сохранить
build_report.py, проверки, схема слоёв, словарь мер, инструкция обновления и восстановления последнего корректного результата.
Как проверить себя
- Один и тот же вход дважды даёт один результат.
- Итоги SQL, pandas и BI совпадают на одинаковых определениях.
- Плохой вход обнаруживается до замены корректного отчёта.
- Другой человек может обновить данные по инструкции.
Шаг 22. Объяснить выводы и пройти внешнюю проверку
20–30 часов. До начала: минимум один самостоятельный проект.
Разберём на примере
Руководитель открыл ваш отчёт и спрашивает: «Что предлагаешь сделать?» Подготовьте короткий ответ с числами, основанием и условиями проверки. Подробный расчёт должен оставаться доступным для вопросов.
Рецензент — человек, который проверяет работу и указывает слабые места. Попросите одного читателя проверить понятность, другого — расчёты. Их замечания помогут исправить и текст, и анализ.
Что прочитать и посмотреть
- Claus Wilke: Fundamentals of Data Visualization, английский — разделы о подписях, избыточной сложности и storytelling; используйте оглавление, не проходите всю книгу.
- Русское повторение — курс визуализации Karpov Courses, части про оформление и объяснение данных.
- Основной материал для защиты — собственные данные и шаблон ниже.
Что сделать
Решение, которое рассматриваем:
Главный наблюдаемый результат:
Два числа или графика в подтверждение:
Как проверяли данные и расчёт:
Альтернативные объяснения и ограничения:
Предлагаемое действие и цена ошибки:
Как проверим результат действия:
- Для Online Retail заполните шаблон выше. Подготовьте записку на страницу и рассказ на 5 минут с 5–7 слайдами или страницами.
- Покажите работу человеку без подготовки и человеку, умеющему проверять расчёты. Спросите: что предлагается, что не доказано, где возможна ошибка?
- Запишите замечания, проведите нужные проверки и внесите хотя бы одно содержательное исправление. Для каждого числа подготовьте путь к расчёту.
- Если проверяющего пока нет, запишите выступление и пересмотрите через два дня. Отметьте это как самопроверку и запланируйте внешний разбор до итоговой оценки.
Что сохранить
Записку, 5–7 слайдов либо страниц, список замечаний и таблицу «замечание → проверка → изменение».
Как проверить себя
- Главная рекомендация понятна за минуту.
- На вопрос «откуда это число?» есть воспроизводимый расчёт.
- По критике сделано минимум одно содержательное исправление.
- Вы спокойно называете вывод, который ваши данные не позволяют сделать.
Шаг 23. Выполнить итоговую задачу на незнакомых данных
35–50 часов. До начала: шаги 1–22.
Разберём на примере
Возьмите новую задачу: руководитель планирования поездок хочет понять, в какие часы и районы приходится больше поездок такси. Вам предстоит пройти весь путь от вопроса до отчёта на незнакомых данных.
Файлы NYC TLC описывают исторические поездки. Они не показывают все случаи, когда человек хотел заказать такси, но не смог. Это ограничит выводы о спросе.
Parquet хранит таблицы по столбцам. DuckDB позволяет выполнять SQL прямо по локальным файлам. Вы можете также прочитать их в pandas и перенести CSV в знакомый PostgreSQL.
Что прочитать и посмотреть
- NYC TLC Trip Record Data, английский, открытые файлы. Возьмите Green Taxi за январь и февраль 2024 года, Taxi Zone Lookup Table и Green Trips Data Dictionary. Это конкретный стартовый набор; не скачивайте весь архив.
- DuckDB — Python и Parquet, английский. Parquet — столбцовый файловый формат, DuckDB выполняет локальный SQL по файлам. Установите
python -m pip install duckdb pyarrow. - При затруднениях с новым диалектом используйте pandas для чтения Parquet и выгрузку CSV в знакомый PostgreSQL. Отмечайте различия функций; освоение DuckDB не заменяет SQL-базу.
Что сделать
Ссылки для задания: данные Palmer Penguins
- Возьмите Green Taxi за январь и февраль 2024 года, справочник Taxi Zone Lookup и словарь Green Trips. До чужих разборов запишите задачу и нужное решение.
- Проверьте даты, длительность, расстояния, платежи, пропуски и присоединение районов. Разберитесь со значениями trip_type и тем, какие поездки подходят для задачи.
- Выполните минимум 10 SQL-запросов, исследование в Python и небольшой BI-отчёт. Сравните месяцы с учётом числа дней и состава дней недели.
- Предложите 2 действия для дальнейшей проверки. Объясните ограничения исторических данных и разницу между отсутствием поездок в файле и отсутствием спроса.
- Добавьте новое условие: только понедельник–пятница с 07:00 до 10:00, без исключения праздников. Сравните среднее число поездок на подходящий день. Пересчитайте из исходника и объясните изменение вывода.
- Попросите проверить работу и повторите её по инструкции в новой папке. Если TLC недоступен, используйте Palmer Penguins по ссылке: сравните измерения по видам и островам; экономические метрики остаются в шаге 18.
Что сохранить
project-06: README, паспорт данных, загрузку, SQL, проверки, ноутбук, отчёт, презентацию, внешние замечания и доработанную версию. Данные необязательно хранить в Git: дайте точные ссылки и инструкцию получения.
Как проверить себя
- Проект воспроизведён с нуля по README.
- Проверены ключи, периоды, знаменатели и чувствительность к очистке.
- Новое требование обработано без ручной замены итоговых чисел.
- Внешний читатель понял решение, а технический разбор выявил и помог исправить слабое место.
Шаг 24. Проверить готовность к первой работе
20–30 часов. До начала: самостоятельный итоговый проект.
Разберём на примере
Посмотрите вакансии начального уровня и сопоставьте задачи со своими работами. Для «умею SQL» подготовьте запрос и объяснение, как проверяли строки и суммы. Для «умею проводить эксперименты» — план, расчёт и ограничения.
Пропущенный навык удобно превратить в следующую учебную задачу. Если незнаком только инструмент, уточните, насколько он важен в выбранных вакансиях. Общие навыки проверяйте на новых данных.
Что прочитать и посмотреть
- PostgreSQL Exercises — незнакомые задачи для проверки SQL.
- IMS2 — ещё не решённые упражнения на интервалы, гипотезы и дизайн.
- Для проверки BI-покрытия: Microsoft PL-300. Это перечень тем, экзамен покупать не нужно.
- Для задания ниже используйте страницы работодателей или выбранную площадку вакансий. Читайте обязанности, требуемый опыт и условия работы; отделяйте обязательные навыки от желательных.
Что сделать
- Соберите 15 свежих вакансий своего региона и уровня. Сохраните даты, ссылки, обязательные навыки и пожелания. Рядом укажите свой пример или пробел.
- За 90 минут решите 4 новых SQL-задачи: подсчёт, JOIN, окно, дата. Ещё за 90 минут исследуйте небольшой новый CSV и напишите вывод. За 30 минут объясните план эксперимента и две возможные ошибки. Это учебный способ найти пробелы.
- Выберите 3 работы: SQL/BI, реальные данные, эксперимент. Для каждой опишите вопрос, свой вклад, проверки, результат и ограничения. Симуляцию подпишите как учебную.
- Подготовьте резюме и пробное собеседование с человеком. Запишите вопросы, на которые не удалось ответить, и план повторения. Если собеседника нет, начните с записи ответов и найдите проверяющего позже.
Что сохранить
Три оформленных проекта, резюме, таблицу вакансий, запись пробной проверки и план закрытия пробелов.
Проверка перед откликами
- Самостоятельно формулируете вопрос и критерий завершения.
- Получаете данные SQL, проверяете детализацию и итоги.
- Очищаете и исследуете данные в Python с повторяемым запуском.
- Создаёте понятный отчёт в выбранном BI.
- Объясняете неопределённость и ограничения статистического вывода.
- Можете защитить проект и изменить его по новому требованию.
- Знаете конкретные пробелы относительно выбранных вакансий.
Если провален расчёт, качество или воспроизводимость, вернитесь к соответствующему шагу. Если не хватает только инструмента конкретного работодателя, составьте короткий план его освоения и продолжайте искать подходящие начальные позиции. Углубление ниже можно совмещать с работой, а не откладывать все отклики до последней страницы.
Углубление: от выполнения задач к ответственности за результат
Дальше — восемь шагов для более сложных задач. Продолжайте на знакомых данных и связывайте упражнения с выбранной областью работы. Здесь больше чтения на английском; выделите время на перевод терминов и проверку примеров.
Шаг 25. Освоить математическую базу и регрессию
35–50 часов. До начала: Python, статистика и самостоятельное исследование.
Разберём на примере
Нужно понять, как масса пингвина связана с длиной ласта. Регрессия описывает связь результата с одним или несколькими признаками. В простой модели y = a + b*x число b показывает изменение предсказания при увеличении x на единицу.
Разница между наблюдением и предсказанием называется остатком. Метод подбирает коэффициенты так, чтобы уменьшить выбранную ошибку. Для понимания пригодятся функции, производная как скорость изменения, векторы — списки чисел, и матрицы — таблицы чисел.
Если добавить вид пингвина, смысл коэффициента длины ласта изменится: теперь сравнение учитывает вид. Найденная связь сама по себе не объясняет причину изменения массы.
Что прочитать и посмотреть
- Karpov Courses: математика для анализа данных, русский, бесплатный с регистрацией — элементарные функции, производные/оптимизация одной переменной, первые темы векторов и матриц. Этот курс не заменяет статистику; сложные разложения пока пропустите.
- An Introduction to Statistical Learning, английский, легально доступное Python-издание — главы 2–3, линейная регрессия и лабораторная.
- IMS2 — главы 7–9 и 24–26 по интерпретации регрессии; используйте как другое объяснение.
Что сделать
Ссылки для задания: Palmer Penguins: описание данных и полей
- Для 5 точек вручную посчитайте y = a + b*x, остатки и сумму их квадратов. Попробуйте другие a и b и сравните ошибку.
- Откройте Palmer Penguins, изучите измерения и пропуски. Постройте модель массы по длине ласта, затем добавьте вид и пол.
- Сравните коэффициенты и остатки моделей, крупные отклонения и связанные признаки. Запишите, какие выводы поддерживает модель.
- Прочитайте нужную часть главы 4 ISLP и повторите лабораторную логистической регрессии для цели из двух вариантов. Объясните вероятность p, odds = p/(1−p) и порог, по которому выбирают вариант.
Что сохранить
Ноутбук, разбор предпосылок и записку «какой вывод модель позволяет, какой — нет».
Как проверить себя
- На одном наблюдении показываете, как коэффициенты дают прогноз и как считается остаток.
- Знаете, почему добавление признака меняет интерпретацию остальных.
- Не выдаёте ассоциацию за причинный эффект.
- Проверили качество и ограничения модели, а не только значимость коэффициентов.
Шаг 26. Проверить прогноз на новых данных
30–45 часов. До начала: шаг 25.
Разберём на примере
Модель хорошо описала прошлые продажи. Теперь проверьте, как она предсказывает ещё не виденные дни. Baseline — простой прогноз для сравнения, например продажи как вчера.
Данные делят на обучение, выбор настроек и финальную проверку — train, validation, test. Для временного прогноза прошлое должно предшествовать будущему. Признак, который станет известен только после прогнозируемого дня, создаёт утечку данных.
Ошибку оценивайте по задаче. MAE — средняя абсолютная ошибка. MAPE делит ошибку на фактическое значение, поэтому нули создают проблему. Для редких событий общей доли верных ответов accuracy бывает недостаточно.
Что прочитать и посмотреть
- ISLP — главы 4–5: классификация и resampling; затем одна лабораторная по деревьям, если базовая модель уже понятна.
- scikit-learn: common pitfalls, английский — data leakage и Pipeline. Сначала разделение, потом обучение преобразований только на train.
- Forecasting: Principles and Practice, the Pythonic Way, английский — разделы визуального исследования рядов, простых методов, оценки прогноза и временной кросс-валидации. Следуйте разделу установки самой книги для её лабораторных.
Что сделать
- В лабораторной ISLP сравните простую модель и более сложную. Заранее выберите показатель качества. Для классификации посчитайте precision — долю верных положительных ответов, и recall — долю найденных положительных случаев. Объясните цену двух типов ошибок.
- По дневным положительным продажам Online Retail постройте прогноз на неделю: как в последний день, как в соответствующий день прошлой недели и один метод FPP. Проверьте несколько последовательных периодов.
- Используйте MAE и объясните трудность MAPE при нулях. Отдельно опишите, как изменится задача при прогнозе среднего чека.
- В учебной копии добавьте сведения из будущего и сравните оценку. Затем удалите утечку. Обучайте преобразования только на train, не подбирайте модель по test.
- Укажите ограничения: данных немногим больше года и только один магазин. Этого мало для уверенных выводов о годовой сезонности в других условиях.
Что сохранить
Проект сравнения моделей, временные разбиения, baseline, ошибки по сегментам и ограничения применения.
Как проверить себя
- Test не использовался для выбора модели и преобразований.
- Есть простой baseline и оценка на отложенных данных.
- Временной прогноз не проверяется случайным перемешиванием будущего и прошлого.
- Можете предпочесть простое решение, если сложное не даёт устойчивой пользы.
Шаг 27. Углубить эксперименты и причинное мышление
35–55 часов. До начала: эксперименты, регрессия и проверка моделей.
Разберём на примере
Активные клиенты чаще видят предложение и чаще покупают. Простое сравнение получивших предложение с остальными может приписать рекламе разницу, которая была раньше. Общий фактор, влияющий на воздействие и результат, называют конфаундером.
Причинный эффект сравнивает результаты при разных воздействиях. Для одного человека в один момент обычно виден только один из возможных результатов. Приходится явно описывать условия сравнения.
DAG — схема предполагаемых причинных связей стрелками без замкнутых циклов. Она помогает заметить, какие связи учтены. Предположения всё равно нужно обосновывать.
Что прочитать и посмотреть
- Matheus Facure: Causal Inference for the Brave and True, английский, открытая книга с Python. Пройдите Introduction, Randomised Experiments, Graphical Causal Models, затем Difference-in-Differences. Начинайте с предпосылок и симуляций, а не с готовой библиотеки.
- AvitoTech: часть 1 и часть 2, русский — CUPED и стратификация. Это методы углубления после базового дизайна.
- Microsoft Research: исследование SRM, английский — таксономия проблем качества экспериментов.
Что сделать
- Смоделируйте активных и менее активных клиентов, которым с разной вероятностью показывают предложение. Сравните разность средних, поправку на исходную активность и случайное назначение предложения. Нарисуйте связи и назовите непроверяемые по файлу предположения.
- Повторите Difference-in-Differences — сравнение изменений двух групп — из книги. Метод опирается на параллельные тренды без воздействия. Нарушьте это условие в генераторе и покажите ошибку.
- Сделайте placebo-проверку: попробуйте найти эффект там или тогда, где воздействия не было. Отсутствие такого эффекта полезно, но ещё не доказывает все условия метода.
- В A/B-симуляции добавьте показатель до воздействия и примените CUPED — способ уменьшить разброс оценки с помощью прежних измерений. Сравните неопределённость, не используя для поправки изменённые тестом показатели.
- Разберите общий эффект внутри семей или команд. Иногда случайно распределять нужно целые группы — кластеры; число событий не равно числу независимых участников.
Что сохранить
Два разобранных кейса, графы предположений и памятку выбора: рандомизированный тест, наблюдательный дизайн или отказ от причинного вывода.
Как проверить себя
- Для причинного вывода сформулированы предпосылки и возможные нарушения.
- Показан пример, где метод даёт неверный вывод при нарушении предпосылок.
- Вы отличаете повышение точности от исправления смещения.
- Сложность метода не используется как аргумент его достоверности.
Шаг 28. Работать с большими файлами и понимать стоимость SQL
25–40 часов. До начала: самостоятельный SQL и Python; для отдельных упражнений достаточно шага 23.
Разберём на примере
Большой файл долго загружается, хотя нужны только дата и сумма. Попробуйте прочитать нужные столбцы и посчитать итог до переноса всего набора в память Python.
План запроса показывает, как база ищет и соединяет строки. Индекс — дополнительная структура для поиска; его польза зависит от запроса и данных. Маленькую таблицу иногда быстрее прочитать целиком.
Сравнивайте время при одинаковых условиях. Повторное чтение может ускориться благодаря кэшу — уже сохранённым в памяти данным.
Что прочитать и посмотреть
- PostgreSQL: EXPLAIN, английский — scan, join, estimates/actual; русский раздел ищите в документации, «Оптимизация производительности».
- DuckDB: чтение Parquet, английский — запросы к одному файлу и нескольким файлам, выбор столбцов и фильтров.
- NYC TLC — добавьте ещё несколько месяцев Green Taxi, если хватает места. Для понимания метода не требуется покупать облачный кластер.
Что сделать
- На TLC сравните чтение всего файла в pandas, чтение выбранных столбцов и подсчёт в DuckDB до загрузки результата в Python. Запишите объём, время, условия и несколько повторов.
- В PostgreSQL откройте EXPLAIN для фильтра и JOIN. На достаточно большой учебной таблице добавьте подходящий индекс и сравните план, время и результат.
- EXPLAIN ANALYZE запускает запрос: используйте в упражнении только SELECT по учебным данным. Сравните предполагаемое и фактическое число строк.
- Опишите, какие объёмы, задержки и требования совместной работы заставили бы сменить инструмент. Соотнесите ClickHouse, Spark или облачное хранилище с такой потребностью и затратами сопровождения.
Что сохранить
Замеры, планы, одинаковые контрольные результаты и записку с выбором самого простого подходящего решения.
Как проверить себя
- Оптимизация не изменила смысл результата.
- Вы видите различие оценочного и фактического количества строк.
- Объясняете эффект уменьшения столбцов и предварительной агрегации.
- Выбор инструмента связан с измеренной задачей и стоимостью сопровождения.
Шаг 29. Построить проверяемую аналитическую витрину
30–45 часов. До начала: шаги 21 и 28.
Разберём на примере
В магазин пришёл возврат за прошлую неделю. Нужно обновить прошлые итоги и сохранить согласованность отчётов. Пересчёт прошлого периода называют backfill.
Контракт данных описывает ожидаемые столбцы, типы и значения. Freshness показывает, насколько недавно пришли данные. Свежий файл всё ещё нужно проверить на полноту.
Расчёты зависят друг от друга: сначала позиции, потом документы, потом дневная сумма. Их порядок можно показать схемой зависимостей — DAG — и выполнять одним запуском.
Что прочитать и посмотреть
- dbt: локальное начало работы, английский — настройка проекта, модели, зависимости и запуск. Для локальной базы выберите открытый dbt Core и адаптер PostgreSQL по инструкции PostgreSQL. Не нужен платный облачный аккаунт.
- dbt: data tests — unique, not_null, relationships, accepted_values и собственные SQL-проверки.
- Если настройка dbt пока мешает понять процесс, сначала реализуйте те же слои SQL-скриптами и проверками Python из шага 21, затем перенесите их в dbt.
Что сделать
- В отдельном окружении настройте dbt Core для PostgreSQL по материалам. Зафиксируйте версии. Начните с маленьких заказов и клиентов, затем перенесите обработку Online Retail.
- Опишите каждый слой и добавьте проверки: уникальность, заполненность, связи, допустимые значения и суммы. Временно можно начать с SQL и Python из шага 21, затем перенести в dbt.
- Смоделируйте пропавший столбец, повтор ключа, поздний возврат и неверный справочник. Для каждого выберите действие: остановить выпуск отчёта, сохранить проблемные строки отдельно, пересчитать период или уточнить правило.
- Сначала выполните весь порядок вручную, затем настройте локальный планировщик своей системы по справке. Сохраняйте время запуска, число строк и даты в локальный журнал.
- Пересчитайте один прошлый день и сравните с полной обработкой. Напишите инструкцию запуска и восстановления — runbook. Объясните, кого затронет изменение определения выручки.
Что сохранить
Проект витрины, тесты, документацию зависимостей, примеры сбоев и runbook.md: запуск, проверка, восстановление, владелец показателя.
Как проверить себя
- Нарушение контракта обнаруживается до публикации некорректной витрины.
- Повтор партии и backfill не удваивают показатели.
- Для каждого слоя известны детализация и зависимость от источников.
- Коллега может восстановить последний корректный результат по инструкции.
Шаг 30. Углубиться в одну предметную область
30–50 часов. До начала: основной путь и базовая практика надёжного анализа.
Разберём на примере
Магазин, приложение и служба доставки принимают разные решения. Аналитику нужно понимать, что происходит за цифрами: как появляется заказ, когда учитывается возврат, кто несёт расходы.
Выберите одну предметную область — вид деятельности, который будете изучать. Начать можно с торговли и знакомых данных Online Retail. Разбирайте определения вместе с человеком из этой области.
Что прочитать и посмотреть
Выберите одно направление. Для маршрута по умолчанию продолжайте торговлю на знакомых данных.
| Направление | Материалы | Итоговая задача |
|---|---|---|
| Торговля и операции — основной вариант | UCI Online Retail, FPP Python — прогнозирование и оценка, английский | Сегменты покупателей, повторные покупки, возвраты, прогноз; перечень данных о затратах и остатках для следующего решения |
| Продуктовая аналитика | Amplitude: critical event и интервал использования, product analysis toolkit, английский | Словарь событий, дерево метрик, когортный анализ, предложение эксперимента |
| Веб- и маркетинговая аналитика | Google Analytics: демо, справка Analytics, русский — источники трафика, события и атрибуция | Разбор каналов и воронки, ограничения атрибуции, запрос затрат и проверка окупаемости на данных с затратами |
| BI и аналитическая инженерия | Microsoft PL-300, dbt data tests, английский | Согласованные меры, модель, обновление, доступы и передача отчётности |
Что сделать
- Выберите направление из таблицы. Составьте словарь 20 терминов и схему 8–12 связанных показателей. Для каждого укажите решение, которое он помогает принять.
- Придумайте случай, когда показатель вырос, а положение ухудшилось. Например, средний чек вырос после ухода покупателей с маленькими заказами.
- За 2–3 недели выполните проект: вопрос, данные, расчёт, возможные объяснения, рекомендация и план наблюдения. Для торговли перечислите отсутствующие затраты, остатки и поставки; оставьте их неизвестными.
- Попросите специалиста проверить определения и полезность отчёта. Если его нет, разберите открытый пример компании и отметьте, что это чтение примера, а не беседа с заказчиком.
Что сохранить
Предметный проект, дерево метрик, словарь, полученные замечания и план сбора недостающих данных.
Как проверить себя
- Вы объясняете, как организация создаёт ценность и что в этом измеряете.
- Метрики связаны с решениями и рисками нежелательного поведения.
- У проекта есть предметная обратная связь или явно отмеченный разбор внешнего кейса.
- Вы различаете найденный сегмент и доказанную полезность воздействия на него.
Шаг 31. Использовать AI с независимой проверкой результата
15–25 часов. До начала: самостоятельное владение SQL и Python.
Разберём на примере
AI предложил SQL для выручки, но после соединения таблиц заказ посчитался три раза. Проверить такой ответ помогут маленький набор и заранее рассчитанная сумма.
Сначала определите ожидаемый результат, затем запускайте код. Сверяйте непонятные операции с документацией. Даже уверенно написанный ответ может содержать неверное условие или выдуманное правило бизнеса.
Что прочитать и посмотреть
- PostgreSQL — SQL Tutorial и pandas tutorials — проверяйте фактическую семантику предложенного кода.
- scikit-learn: утечка данных — повторите ошибку, которую легко спрятать за автоматически написанным кодом.
- Основной материал — собственные ошибочные примеры из шагов 6, 16, 18 и 26. Подписка на конкретный AI-сервис не обязательна: при отсутствии доступа анализируйте ошибки вручную.
Что сделать
- Дайте AI вымышленную схему заказов и товаров и попросите посчитать выручку. До запуска посчитайте ответ на 5 строках вручную. Если AI недоступен, возьмите свою учебную ошибку.
- Проверьте соединение, отмены, NULL, разные заказы с одинаковой суммой и границы дат. Исправьте ошибку и повторите расчёт.
- Проверьте также формулу retention и фразу «p > 0,05, варианты одинаковы». Попросите назвать условия вывода. Если ответ верный, внесите известную ошибку и убедитесь, что ваши проверки её находят.
- Запишите, какую помощь будете просить при учёбе и как проверять рабочий черновик. Перечислите данные, которые нельзя отправлять без разрешения владельца: замена имени на номер ещё не убирает все чувствительные сведения.
- Сохраните три разных найденных ошибки и объясните принятый код построчно. Повторите одну задачу без AI.
Что сохранить
ai-review.md: задача, предложенный ответ либо намеренно испорченный код, независимая проверка, найденная ошибка и исправление.
Как проверить себя
- Можете объяснить каждую строку принятого кода.
- Правильность проверяется выполнением и эталоном, а не уверенностью ответа.
- Проверки ловят минимум три разные категории ошибок.
- Ту же задачу решаете без AI, когда он недоступен.
Шаг 32. Вести аналитическую задачу целиком и спланировать рост
30–50 часов на учебную репетицию; опыт реальной ответственности календарём курса не ограничен. До начала: основной путь, предметный проект и углубление.
Разберём на примере
Заказчик хочет увеличить повторные покупки, а времени хватит только на одно изменение. Нужно выбрать полезный вопрос, договориться о показателе и объяснить, какая проверка даст нужные сведения.
По ходу проекта могут измениться определения или прийти запоздалые данные. Важно сохранить решения, обновить расчёты и передать работу так, чтобы коллега смог продолжить.
Опыт растёт на таких проектах и обратной связи. Отдельно записывайте, что вы предложили, что внедрили и какой результат удалось проверить.
Что прочитать и посмотреть
- Собственные проекты, брифы, журнал ошибок, runbook и обратная связь — основной материал.
- Для проверки полноты технической работы повторите PL-300, dbt tests и Microsoft Research: доверие к экспериментам. Это ориентиры отдельных навыков, не единый стандарт senior.
- Выберите реального рецензента или учебного партнёра. Без него можно выполнить репетицию, но не заявить, что получен опыт командной работы.
Что сделать
- С партнёром разберите задачу повторных покупок. Один играет заказчика, другой аналитика. Согласуйте определение покупки, группу клиентов, варианты исследования и срок.
- После первого расчёта измените определение метрики и добавьте позднюю поставку данных. Запишите решения, пересчитайте и укажите затронутые отчёты.
- Передайте проект партнёру по инструкции. Разберите ошибку: что произошло, какая проверка её пропустила, что изменить.
- Для настоящего проекта получите разрешение на задачу, согласуйте действие и дату проверки результата. Учебную репетицию подпишите отдельно. Если есть только рекомендация, так и укажите её статус.
- Выберите следующее углубление на 6–8 недель. Обсудите с опытным человеком, что уже делаете самостоятельно и где нужна помощь.
Что сохранить
growth-evidence.md: постановка, обсуждённые варианты, техническое решение, review, передача, обратная связь и статус внедрения. Отдельно пометьте учебную и реальную работу.
Что проверить перед следующей задачей
- Есть пример самостоятельно уточнённой неоднозначной задачи.
- Есть обнаруженная существенная ошибка и улучшение процесса проверки.
- Есть передача работы, которую смог продолжить другой человек.
- Есть предметная обратная связь и честно описанный статус решения.
- Выбрано одно следующее углубление на 6–8 недель с конкретным результатом.
Обсудите с руководителем или опытным рецензентом, какой масштаб задач уже выполняете самостоятельно, где нужна помощь и какие навыки ещё предстоит показать на практике. Повторяйте цикл на более сложных задачах, сохраняя качество объяснения и проверки.
Как пользоваться источниками
Открывайте материалы внутри текущего шага и находите указанные темы. Перед регистрацией проверьте условия доступа на странице курса: для упражнения нужна только обозначенная бесплатная часть.
| Тип источника | Как использовать |
|---|---|
| Программы школ и сертификатов | Для понимания состава профессии; покупать их для прохождения этой карты не нужно |
| Открытые тренажёры | Выполнить обозначенные темы; учётная запись может быть обязательной |
| Официальная документация | Проверять актуальный синтаксис, установку и ограничения |
| Открытые учебники | Читать заданные главы и решать упражнения; открытый доступ не означает разрешение перепубликовывать книгу |
| Реальные открытые данные | Сохранять источник, определения, дату снимка и условия использования |
| Синтетические данные этой карты | Для ручных эталонов и симуляций; не выдавать за наблюдения компании |
Если объяснения не хватило, запишите конкретный вопрос и пример своей попытки. Для самостоятельных проектов попросите человека проверить расчёты и понятность выводов.
При изменении интерфейса найдите названную операцию в актуальной официальной справке. При закрытии курса используйте альтернативу внутри шага, сохранив практику и критерии. Если альтернативы тоже недоступны, зафиксируйте конкретный пробел и запросите обновление карты; не отмечайте шаг пройденным только за просмотр описания.