MiddleData Analyst > SQL и данные > Статистика и теория вероятностей
Короткий ответ Z-score (отклонение от среднего в единицах стандартного отклонения) хорошо работает для примерно нормально распределённых данных без сильных выбросов; IQR устойчивее к выбросам и скошенным распределениям, так как опирается на квантили, а не на среднее и SD, которые сами искажаются выбросами. Как это работает подробнее Z-score = (x − mean) / SD; и среднее, и SD вычисляются по всей выборке, включая потенциальные выбросы, поэтому при экстремальных значениях сам порог «сдвигается» вместе с ними — это называется эффектом маскировки выбросов. IQR опирается на квартили, которые гораздо устойчивее к отдельным экстремальным значениям. Пример кода Что использовать на практике На практике. для метрик, близких к нормальному распределению (например, время отклика сервера в стабильной системе без сбоев), Z-score с порогом 2–3 — простой и интерпретируемый способ. Для метрик с тяжёлыми хвостами или сильной скошенностью (доход, время сессии, размер заказа) обычно лучше IQR или предварительное логарифмирование п
iqrnormal-distribution
MiddleData Analyst > Метрики и эксперименты > A/B-тесты
Короткий ответ Для сравнения двух конверсий (биномиальные доли) обычно используют z-тест для разности пропорций или эквивалентный chi-square тест (для таблицы 2x2 они дают математически согласованные результаты); t-тест для независимых выборок уместен для непрерывных метрик (например, среднего чека), а не для бинарных конверсий, хотя на больших выборках численно даёт близкий результат к z-тесту. Как это работает подробнее Как это работает: z-тест и chi-square тест для таблицы 2x2 проверяют одну и ту же нулевую гипотезу о равенстве долей и при двустороннем сравнении дают эквивалентные p-value, так как chi-square статистика является квадратом z-статистики; t-тест основан на предположении о приблизительно нормальном распределении метрики внутри группы, что лучше подходит для непрерывных величин с ограниченной асимметрией. Пример в Python: Для среднего чека с длинным хвостом вместо t-теста можно применить bootstrap-доверительный интервал разницы медиан или средних с 10 000 ресэмплов — это устойчивее к выбросам, ч
ab-testingchi-square
JuniorData Analyst > SQL и данные > Визуализация и BI
Короткий ответ Pie chart уместна только для 2–4 категорий, в сумме дающих осмысленное целое; при большем числе категорий или близких по размеру долях лучше использовать столбчатую диаграмму. Как это работает подробнее Pie кодирует долю через угол и площадь сектора — человек воспринимает такие величины менее точно, чем длину столбца, особенно при похожих значениях. Что использовать на практике Рекомендация. Используйте pie только для простого «доля от целого» с 2–4 сегментами. Рекомендация. Для точного сравнения или большего числа категорий берите bar chart. Рекомендация. Donut chart — просто другой стиль с теми же ограничениями. Подводные камни Риск. Pie на 8+ категорий. Риск. Использование pie для показа динамики во времени (нужен линейный/столбчатый график). Риск. 3D pie, дополнительно искажающий восприятие площади. Риск. Доли, не суммирующиеся в 100%.
bar-chartdata-visualization
SeniorSMM Manager > Общее > SMM-аналитика и метрики
Короткий ответ Однозначного правила нет — инкрементальные тесты (например, geo-holdout, где часть регионов не получает рекламу) оправданы при достаточно большом бюджете канала и высокой ставке решения (масштабировать или сократить канал), особенно когда стандартная атрибуция вызывает серьёзные сомнения; для небольших бюджетов и низких ставок затраты и время на такой тест обычно не оправданы. Как это работает подробнее инкрементальный тест измеряет разницу в бизнес-результате между группой, которая видела рекламу, и контрольной группой, которая не видела, что показывает реальный дополнительный эффект канала сверх того, что произошло бы без него, тогда как стандартная атрибуция просто приписывает конверсии каналам касания без такого контроля. Компания тратит 30% рекламного бюджета на ретаргетинг с заявленным высоким ROAS по атрибуции. Geo-holdout тест (отключение ретаргетинга в нескольких регионах на 4 недели) показывает, что реальная разница в продажах между тестовыми и контрольными регионами значительно меньш
attributionmetrics
SeniorPerformance Marketer > Google Ads > Эксперименты
Короткий ответ Holdout ограничивает воздействие канала для части аудитории или регионов и сравнивает итоговый бизнес-результат с контролем. Один тест применим лишь к изученным условиям. Как это работает подробнее В holdout или geo-эксперименте часть аудитории или регионов временно лишается канала или получает сильно сниженный бюджет, а другая часть продолжает получать его как обычно; разница в итоговых бизнес-метриках между группами — это оценка инкрементального эффекта канала, которую невозможно получить только из атрибуционных отчётов. Помимо географического деления, holdout можно организовать на уровне случайно выбранных пользователей внутри одного региона, где это технически поддерживается платформой, что может быть точнее при сильных региональных различиях в поведении аудитории. Что использовать на практике Начинайте с крупных и неопределённых каналов; спланируйте выборку, длительность, сопоставимость групп и предел допустимого риска до запуска. Подводные камни Слишком короткий или малый тест не даст над
cost-of-informationgeo-experiment
SeniorDevOps Engineer > Контейнеры и доставка > Kubernetes и оркестрация
Короткий ответ Однозначного правила нет: StatefulSet в Kubernetes даёт больше контроля и может снизить стоимость/избежать vendor lock-in, но перекладывает на команду всю операционную сложность (бэкапы, репликация, failover, патчинг, мониторинг специфичных метрик СУБД), тогда как managed-сервис (RDS, Cloud SQL и т.п.) стоит дороже и может иметь свои ограничения, но снимает значительную часть этой операционной нагрузки — выбор зависит от зрелости команды в эксплуатации конкретной технологии БД, требований к контролю и бюджета. Как это работает подробнее Kubernetes StatefulSet решает только часть задач эксплуатации БД — устойчивую идентичность и привязку хранилища к конкретному поду; но сама логика failover, резервного копирования с проверкой восстановимости, обновления минорных/мажорных версий без потери данных, мониторинга репликационного лага и прочих специфичных для конкретной СУБД операций либо должна быть реализована через Kubernetes-оператор (например, для PostgreSQL — Zalando/CloudNativePG, для Kafka — S
kubernetesstatefulset
MiddleData Analyst > SQL и данные > SQL
Короткий ответ Материализованную таблицу или вью стоит создавать, когда один и тот же тяжёлый расчёт выполняется многократно (например, дашборд, который открывают десятки раз в день) и исходные данные меняются не чаще, чем требуется обновлять агрегат; если запрос выполняется редко или всегда должен быть «в реальном времени», обычный запрос на лету проще и избавляет от риска показать устаревшие данные. Как это работает подробнее материализованное представление (MATERIALIZED VIEW в PostgreSQL, таблица, обновляемая по расписанию, или материализованная вью в BigQuery) физически сохраняет результат агрегации, избавляя от повторного пересчёта по сырым данным при каждом обращении; обновление такой таблицы требует отдельного процесса (REFRESH MATERIALIZED VIEW, scheduled query и т.п.), который должен быть надёжным и мониториться отдельно. Пример кода Что использовать на практике Практика. выбор — это компромисс между скоростью чтения и свежестью данных плюс дополнительной инфраструктурной сложностью (ещё один процесс
aggregationdata-freshness
MiddleDevOps Engineer > Контейнеры и доставка > Права доступа Linux
Короткий ответ Стандартная модель прав позволяет задать права только для одного владельца и одной группы; когда нужно дать разные права нескольким конкретным пользователям или группам на один и тот же файл или каталог (например, трём разным командам с разным уровнем доступа), используют POSIX ACL через setfacl для установки и getfacl для просмотра. Как это работает подробнее ACL расширяют классическую модель, добавляя список дополнительных записей (user:имя:права, group:имя:права) поверх стандартных владельца/группы/остальных; при проверке доступа ядро учитывает совпадающую ACL-запись точнее, чем обычный механизм, что требует поддержки ACL в самой файловой системе (обычно включено по умолчанию в ext4/xfs с нужными опциями монтирования). Пример кода Что использовать на практике Практика. ACL особенно полезны на общих каталогах, где несколько команд или сервисных аккаунтов должны иметь разный доступ без создания отдельной группы на каждое сочетание прав; также полезны default ACL на каталоге (setfacl -d), чтобы
access-controlacl
SeniorPython Developer > Основы Python > Архитектура систем
Короткий ответ Event sourcing оправдан, когда бизнесу реально нужна полная история изменений с возможностью восстановления состояния на любой момент и аудита причин изменений; издержки — сложность чтения текущего состояния (нужны проекции), миграция схемы событий и высокий порог входа для команды. Как это работает подробнее Вместо обновления строки до нового значения система добавляет запись о событии; текущее состояние — результат применения (reduce) всех событий сущности по порядку, получают через проекции, что сближает event sourcing с CQRS. Event sourcing даёт сильную аудируемость и возможность восстановления состояния на любой момент, но многократно увеличивает сложность разработки (события, проекции, миграция схем) и требует зрелости команды — ошибки в дизайне событий сложно исправить, так как события неизменяемы. Обычное хранение текущего состояния с отдельным audit log проще в поддержке и покрывает большинство практических целей, но не даёт «бесплатного» восстановления состояния на произвольный момент
architecturedistributed-systems
MiddlePerformance Marketer > Google Ads > События и GA4
Короткий ответ Кастомное событие стоит использовать, когда действие пользователя не укладывается ни в одно из рекомендуемых событий GA4 (например, специфичное для бизнеса действие вроде «подбор размера» в калькуляторе), но при этом важно помнить, что кастомные события не получают автоматических улучшенных отчётов и интеграций, которые есть у рекомендуемых. Как это работает подробнее Рекомендуемые события (purchase, generate_lead, sign_up и т.д.) имеют заранее определённую Google структуру параметров и автоматически поддерживаются в готовых отчётах, Looker Studio шаблонах и при экспорте в Google Ads; кастомные события просто принимают произвольное имя и параметры, но GA4 не «знает» их семантику заранее. Такая регистрация делается один раз в настройках свойства GA4 (Admin → Custom definitions) и не требует изменений в самом коде отправки события — после регистрации параметр становится доступен как измерение в произвольных отчётах и в Looker Studio. Что использовать на практике Практика. На практике стоит сначал
analyticscustom-events