JuniorData Analyst > SQL и данные > Статистика и теория вероятностей
Короткий ответ Альфа — это заранее выбранный порог допустимой вероятности ложно отвергнуть верную нулевую гипотезу (ошибка первого рода); альфа=0.05 означает, что мы готовы принять риск «увидеть различие там, где его на самом деле нет» примерно в 5% случаев при многократном повторении теста. Как это работает подробнее альфа задаётся до проведения теста и сравнивается с p-value после его завершения; если p-value < альфа, нулевую гипотезу отвергают. Выбор альфа — это, по сути, явное управленческое решение о приемлемом уровне риска ложного вывода, а не чисто техническая деталь. Пример кода Что использовать на практике На практике: 0.05 — широко распространённое соглашение, а не универсальный закон природы; в задачах с высокой ценой ложного срабатывания (медицина, финансовые риски) часто используют более строгий порог (0.01), а в разведочном анализе — иногда более мягкий. Выбор альфа должен быть обоснован ценой ошибки, а не выбран автоматически. На практике полезно заранее согласовать уровень альфа со стейкхолдер
alphahypothesis-testing
JuniorData Analyst > Метрики и эксперименты > A/B-тесты
Короткий ответ Alpha — это заранее установленный порог вероятности ложноположительного результата (ошибки I типа), который команда готова допустить, обычно 0.05. Его фиксируют до теста, чтобы решение «значим/не значим» не подгонялось под желаемый результат после того, как данные уже видны. Как это работает подробнее alpha — порог для p-value: если p-value < alpha, различие признаётся статистически значимым. При alpha = 0.05 в среднем 5% экспериментов без реального эффекта будут ошибочно признаны значимыми. Пример недобросовестной практики: после теста с p-value = 0.06 аналитик пишет в отчёте «результат на грани значимости при alpha=0.1» без того, чтобы alpha=0.1 была согласована заранее. Проверка: в документе дизайна эксперимента должна быть зафиксирована alpha до запуска — это и есть способ защититься от такой подгонки. Что использовать на практике alpha выбирают с учётом стоимости ошибки: для рискованных изменений (например, влияющих на платежи) иногда берут более строгий порог (0.01), для низкорисковых — м
alphadizayn-eksperimenta
MiddleSMM Manager > Общее > Рекламные платформы и медиазакупка
Короткий ответ Фаза обучения — период, когда алгоритм накапливает данные о том, каким пользователям показ объявления приводит к целевому действию; любое существенное изменение (бюджета, аудитории, креатива, ставки) сбрасывает накопленный прогресс и запускает обучение заново. Как это работает подробнее во время обучения стоимость результата обычно выше и менее стабильна, чем после его выхода, так как алгоритм ещё экспериментирует с показами внутри заданной аудитории. Что использовать на практике Подход. рекомендуется ограничивать количество правок в первые дни после запуска или значимого изменения и давать кампании накопить достаточно конверсий (ориентировочно около 50 на группу объявлений за неделю) для выхода из обучения. Пример. Менеджер меняет дневной бюджет на 15% каждый день в течение недели «чтобы протестировать». Статус группы объявлений постоянно показывает «Обучение», а CPA не стабилизируется — решение — зафиксировать бюджет минимум на 3–4 дня без изменений. Подводные камни Ошибка. ежедневно менять с
campaign-optimizationmeta-ads
MiddlePython Developer > Основы Python > Тестирование кода
Короткий ответ Фикстуры нужны, чтобы выполнить код до тест-метода и не повторять подготовку в каждом тесте. Метод помечается декоратором @pytest.fixture, а тест указывает имя фикстуры как параметр: pytest сам вызовет её и передаст возвращённое значение. Как это работает подробнее Обычно с помощью фикстур инициализируют подключения к базе данных, передают базовый URL и готовят другие данные. Назначение. Фикстура избавляет от повторения одного и того же подготовительного кода в каждом тесте. Подключение. Тест объявляет имя фикстуры аргументом, и pytest сам вызывает фикстуру и передаёт результат. Область видимости. Фикстура из тестового файла видна только в нём; общие для нескольких файлов выносят в conftest.py. Поиск. pytest сначала ищет фикстуру в самом тестовом файле, а если не находит — обращается к conftest.py. Scope. По умолчанию фикстура вызывается для каждого теста (function); доступны также class, module, package и session. Пример кода Что использовать на практике conftest.py. Фикстуры, нужные в несколь
fixturespytest
MiddlePython Developer > Основы Python > Индексы и производительность
Короткий ответ Функциональный индекс строится не по значению колонки напрямую, а по результату выражения/функции от неё (например, lower(email)); он нужен, когда запросы фильтруют по результату такого выражения, а не по исходному значению — обычный индекс на email в этом случае не используется планировщиком для условия с lower(email). Как это работает подробнее PostgreSQL может строить B-tree индекс по любому детерминированному выражению, вычисляя и храня в индексе результат для каждой строки; планировщик использует индекс только при точном совпадении формы выражения в условии WHERE. Пример кода Что использовать на практике Практика. Типичный пример — регистронезависимый поиск по email: вместо LOWER(email) = LOWER(:input) с полным сканированием строят CREATE INDEX ON users (lower(email)) и фильтруют по WHERE lower(email) = lower(:input); альтернатива — тип citext. Подводные камни Ошибка. Создают обычный индекс на email, а в запросах используют LOWER(email), из-за чего индекс не применяется; рассинхронизируют
indexespostgresql
JuniorPython Developer > Основы Python > Функции и области видимости
Короткий ответ zip() берёт элементы с одинаковыми индексами из переданных итерируемых объектов и собирает из них кортежи. Возвращается объект zip — итератор, который создаётся лениво, поэтому результат обычно преобразуют в список через list(). Как это работает подробнее Синтаксис — zip(*iterables): элементы с индексом 0 образуют первый кортеж, элементы с индексом 1 — второй и так далее. Механизм. Функция попарно соединяет элементы переданных коллекций: names[0] и scores[0] попадают в один кортеж. Короткий вход. Обход останавливается на самом коротком из переданных объектов, а лишние элементы длинных коллекций просто игнорируются. Ленивый итератор. Кортежи создаются по требованию, поэтому для просмотра результата нужен list() или прямой обход в цикле. Одноразовость. Как и любой итератор, объект zip можно использовать один раз — для повторного обхода результат сохраняют в список. Пример кода Что использовать на практике Совместный обход. Применяй for x, y in zip(a, b), чтобы идти по нескольким спискам одновреме
builtinsiterators
JuniorSMM Manager > Общее > SMM-аналитика и метрики
Короткий ответ Frequency — это среднее количество раз, которое один уникальный пользователь увидел объявление за период; рассчитывается как impressions / reach и помогает понять, не «приелась» ли реклама аудитории. Как это работает подробнее рекламный кабинет делит общее число показов на число уникальных людей, которые их увидели, получая среднюю частоту на пользователя за выбранный период. За две недели impressions = 300 000, reach = 50 000, frequency = 6. Если за это время CTR упал с 1,8% до 0,6%, вероятная причина — усталость аудитории от объявления. Проверка: смена креатива или сужение периода показа и повторный замер CTR на том же сегменте аудитории. Что использовать на практике Практический подход. слишком высокая частота (порог зависит от формата, аудитории и длительности показа) может означать усталость аудитории от рекламы (ad fatigue) и снижение CTR/рост стоимости результата, поэтому креатив нужно обновлять или сужать период показа. Подводные камни Частые ошибки. игнорировать рост частоты при падени
frequencyimpressions
JuniorPerformance Marketer > Google Ads > Рекламные платформы и форматы
Короткий ответ Частота — среднее число показов объявления одному охваченному пользователю за выбранный период. Если она растёт, а CTR или конверсии снижаются, аудитория может уставать от креатива; показатель оценивают вместе с охватом и результатами. Как это работает подробнее При узкой аудитории повторные показы распределяются между теми же людьми. Со временем креатив может приносить меньше кликов и конверсий. Совместная оценка. Сопоставляй частоту с CTR, конверсиями, охватом и стоимостью результата. Сигнал, не порог. Универсального значения, после которого обязательно менять кампанию, нет. Что использовать на практике Если частота растёт вместе с ухудшением отклика, обнови креатив или расширь аудиторию и сравни результат на сопоставимом периоде. Подводные камни Не повышай бюджет автоматически при высокой частоте: без расширения охвата это может ускорить насыщение.
creative-fatiguefrequency
JuniorSMM Manager > Общее > Рекламные платформы и медиазакупка
Короткий ответ Частота — среднее количество показов одного объявления одному пользователю за период; слишком высокая частота приводит к усталости аудитории, раздражению и снижению CTR при той же или большей стоимости. Как это работает подробнее частота = показы / охват за выбранный период; растёт, если аудитория мала или бюджет кампании велик относительно её размера. Что использовать на практике Подход. в кабинетах есть инструменты ограничения частоты (частотный кап) на уровне группы объявлений, особенно важные для охватных и ретаргетинговых кампаний. Пример. Ретаргетинговая кампания за месяц показала частоту 14 при охвате аудитории 8000 человек — CTR упал с 1,8% до 0,4%. Решение — обновить креатив и/или сузить период ретаргетинга. Подводные камни Ошибка. не следить за частотой в длительных кампаниях на узкую аудиторию, из-за чего один и тот же пользователь видит рекламу десятки раз без эффекта.
ad-metricscampaign-optimization
JuniorPerformance Marketer > Google Ads > Оптимизация кампаний
Короткий ответ Частота рассчитывается как показы, делённые на уникальный охват за выбранный период. При фиксированной аудитории новые показы чаще приходятся на тех же людей. Как это работает подробнее Frequency = Показы / Уникальные пользователи (Reach); она растёт, когда аудитория кампании ограничена, а бюджет или срок показа продолжают генерировать показы тем же людям повторно. На некоторых платформах Frequency считается только за выбранный период, например последние 7 или 28 дней, и для аудитории с длинным циклом принятия решения стоит смотреть частоту за более длинный горизонт. Пример кода Что использовать на практике Следите за частотой вместе с Reach, CTR и CPA, учитывая формат, период и тип аудитории: ретаргетинг переносит более высокую частоту, чем широкий охват. Подводные камни Нет единого порога частоты для всех платформ; ждать падения CTR означает пропустить ранний сигнал исчерпания аудитории.
audiencecreative-fatigue