Академический и инженерный разбор
Дедуктивная логика обещает необходимость. Реальные решения чаще слабее:
после релиза выросли ошибки
→ релиз, возможно, причина
новый процесс совпал с ускорением delivery
→ процесс, возможно, помог
положительный тест
→ болезнь стала вероятнее
В таких выводах ошибка часто не делает заключение невозможным. Она делает его
сильнее, чем позволяют данные.
Правило главы
Всегда называйте базовую частоту, механизм отбора, альтернативные причины и
силу вывода. «Совместимо с», «повышает вероятность» и «вызывает» — разные
утверждения.
1. Корреляция не доказывает причинность
Пусть X и Y меняются вместе. Возможны как минимум:
X → Y X вызывает Y
Y → X обратная причинность
Z → X и Z → Y смешивающий фактор
X ← Z → Y общий источник
X ↔ Y обратная связь
Selection(X,Y) отбор создал связь
случайность связь нестабильна
Пример:
Команды с большим числом on-call инженеров чаще имеют инциденты.
Неверный вывод:
On-call вызывает инциденты.
Возможный confounder: критичность и масштаб системы одновременно требуют
больше on-call и создают больше наблюдаемых инцидентов.
2. Post hoc: после — значит вследствие
A произошло.
Затем произошло B.
∴ A вызвало B.
После деплоя выросла latency. Деплой — сильный кандидат, но последовательность
сама по себе недостаточна:
- изменилась нагрузка;
- деградировала зависимость;
- обновилась конфигурация;
- метрика пересчитана;
- эффект начался до деплоя.
Ремонт
Синхронизируйте временные ряды, проверьте changelog, контрольную группу,
механизм и откат.
3. Cum hoc: вместе — значит вследствие
Одновременность принимают за причинность:
Чем больше команда пишет тестов, тем больше находит багов. Значит, тесты
создают баги.
Больше тестов увеличивает наблюдаемость уже существующих дефектов. Это
measurement effect.
4. Обратная причинность
Высокопроизводительные команды чаще внедряют практику X; значит, X сделала их
высокопроизводительными.
Возможно, зрелость позволила внедрить X. Для различения нужны временной
порядок, естественный эксперимент, инструментальная переменная или иная
идентификационная стратегия.
5. Смешивающий фактор
Z влияет и на предполагаемую причину X, и на результат Y:
Пример:
X = использование микросервисов
Y = частота релизов
Z = размер организации, зрелость платформы, автономность команд
Без контроля Z корреляция не оценивает эффект X.
Не «контролируйте всё»
Контроль за переменной-посредником или collider может добавить смещение.
Нужна причинная модель до регрессии.
6. Collider bias
Если:
и мы отбираем только случаи с C, X и Y могут стать статистически связанными,
хотя в общей популяции независимы.
Пример:
- техническая сила кандидата повышает шанс найма;
- коммуникативная сила повышает шанс найма;
- анализируем только нанятых.
Среди нанятых может возникнуть ложная отрицательная связь: слабость по одной
оси компенсировалась силой по другой.
7. Посредник
Если процесс улучшает скорость через автоматизацию, контроль за уровнем
автоматизации уберёт часть реального эффекта процесса. Выбор переменных зависит
от вопроса: общий эффект или прямой?
8. Ошибка единственной причины
Сложный результат объясняют одним фактором:
Проект провалился из-за плохой архитектуры.
Возможны продуктовый спрос, бюджет, зависимости, команда, сроки, governance.
Архитектура может быть необходимой частью объяснения, не единственной.
Ремонт — причинный граф и вклад механизмов, а не список виноватых.
9. Монотонная причинность
Предполагают: если немного X полезно, больше X ещё полезнее.
code review полезен → больше reviewers всегда лучше
Реальные кривые имеют насыщение и цену координации. Ищите функцию отклика, а
не бинарную метку.
10. Базовая частота
Пусть:
- 1% деплоев содержат критический дефект;
- детектор находит 90% дефектных;
- даёт 5% ложных тревог.
На 10 000 деплоев:
дефектные: 100 → 90 тревог
нормальные: 9900 → 495 тревог
все тревоги: 585
Вероятность дефекта при тревоге:
Не 90%. Чувствительность теста — не вероятность причины после результата.
Формула Байеса
P(D|+) = P(+|D)P(D) / [P(+|D)P(D) + P(+|¬D)P(¬D)]
Лучший способ объяснять — натуральные частоты, как выше.
11. Ошибка обвинителя
Путают:
с:
Если совпадение профиля встречается у одного из миллиона, это не значит, что
вероятность невиновности конкретного найденного человека — один к миллиону.
Нужны:
- размер популяции поиска;
- способ выбора подозреваемого;
- другие свидетельства;
- ошибки измерения;
- зависимость улик.
Инженерный аналог: редкий fingerprint в логах может встречаться у нескольких
причин, а поиск по миллиардам событий почти гарантирует случайные совпадения.
12. Ошибка защиты
Обратная крайность:
В городе два человека могли оставить такой след, значит, улика почти ничего
не значит.
Нужно обновлять вероятность с учётом всей совокупности независимых и зависимых
свидетельств, а не выбрасывать сильный likelihood ratio.
13. Ошибка конъюнкции
Конъюнкция не может быть вероятнее каждой части:
Но детальная история кажется более правдоподобной:
Сервис упал.
Сервис упал из-за race condition после rollout новой версии.
Второе описание репрезентативнее, но логически уже.
При оценке сценариев отделяйте яркость истории от вероятности множества.
14. Ошибка игрока
После серии результатов ожидают «компенсацию» в независимом процессе:
Пять сборок подряд были зелёными; следующая наверняка упадёт.
Если испытания независимы и вероятность постоянна, прошлые исходы не меняют
следующий.
Но серия может быть свидетельством изменившегося процесса: flakiness,
автокорреляции, износа. Сначала проверяйте независимость.
15. Hot-hand и кластерная иллюзия
Люди видят серии в случайном шуме или, наоборот, считают любую серию
иллюзией. Реальный процесс может иметь зависимости. Нужна модель ожидаемой
длины серий и проверка против неё.
16. Закон малых чисел
Малая выборка воспринимается как миниатюра популяции:
Три кандидата из источника X не прошли.
Значит, источник X плохой.
Малая выборка имеет высокую дисперсию. Показывайте доверительный интервал и
минимальный практически значимый эффект.
17. Поспешное обобщение
Вывод выходит за охваченную популяцию:
Пять backend-команд ускорились после практики; значит, она ускорит любую
команду.
Проверяйте:
- способ отбора;
- размер и разнообразие;
- переносимость механизма;
- исключённые случаи;
- время наблюдения.
18. Нерепрезентативная выборка
Convenience sample
Опросили тех, кого легко найти.
Self-selection
Отвечают особенно довольные или недовольные.
Non-response
Не ответившие систематически отличаются.
Coverage bias
Часть популяции не могла попасть в выборку.
Healthy worker / survivor selection
Наблюдаем только тех, кто выдержал процесс.
19. Ошибка выжившего
Изучают успешные проекты и выводят их практики как причины успеха, не видя
провалы с теми же практиками.
Все заметные стартапы нарушали правило X.
В архиве могут лежать тысячи незаметных стартапов, нарушавших X и закрывшихся.
Ремонт:
требует и успешных, и неуспешных случаев.
20. Регрессия к среднему
После экстремального результата следующий обычно ближе к среднему даже без
вмешательства.
Команда провалила худший спринт.
Провели жёсткую встречу.
Следующий спринт лучше.
∴ жёсткая встреча помогла.
Возможно, первый спринт был случайным экстремумом.
Используйте контроль, несколько периодов и модель тренда.
21. Ошибка отбора по результату
Выбирают объекты из-за высокого/низкого результата, затем измеряют изменение.
Регрессия почти неизбежна.
Пример: оптимизируем только самые медленные запросы по шумному однодневному
замеру; часть «ускорения» произойдёт без изменений.
22. Multiple comparisons
При уровне значимости 0,05 из 100 независимых нулевых тестов в среднем около
пяти дадут p < 0,05.
Если проверить:
- 20 метрик;
- 5 сегментов;
- 4 окна;
а показать лучший результат, nominal p-value теряет смысл.
Решения:
- preregistration;
- корректировка множественных проверок;
- разделение exploratory и confirmatory анализа;
- независимая репликация.
23. P-hacking
Исследовательская гибкость используется до получения желаемого результата:
- менять выборку;
- удалять «выбросы» после просмотра;
- останавливать сбор при
p < 0,05;
- выбирать метрику и модель post hoc;
- пробовать преобразования без учёта множества попыток.
Проблема не в одном p-value, а в скрытом пространстве решений.
24. Optional stopping
Постоянно проверять тест и остановиться при успехе — значит изменить
распределение статистики.
Используйте:
- фиксированный горизонт;
- последовательные тесты с корректной процедурой;
- always-valid p-values или байесовский план;
- заранее заданное правило остановки.
25. Texas sharpshooter
Сначала видят случайный кластер, затем рисуют вокруг него мишень:
В этом сегменте, на этой неделе и на этой платформе эффект особенно сильный.
Гипотеза, созданная по данным, должна проверяться на новых данных.
26. Overfitting как ошибка рассуждения
Модель объясняет шум обучающей выборки и выдаётся за закономерность.
Логический аналог: теория обрастает исключениями, пока не объясняет каждый
старый случай, но не делает рискованных новых прогнозов.
Проверка:
- holdout;
- cross-validation;
- временное разделение;
- внешняя валидность;
- простота относительно данных.
27. Парадокс Симпсона
Тренд в каждой группе может измениться или исчезнуть после объединения из-за
разных весов.
Пример:
Команда A и B по отдельности ускорились.
Общий средний lead time вырос.
Возможно, доля сложных задач переместилась в одну группу. Всегда смотрите:
- агрегат;
- релевантные страты;
- причинную роль переменной стратификации.
Нельзя автоматически предпочитать агрегат или группы; выбор задаёт причинный
вопрос.
28. Ошибка знаменателя
Ошибок стало на 50% больше.
Без числа запросов неизвестно, вырос ли error rate.
errors / requests
affected users / active users
incidents / deploys
Показывайте числитель, знаменатель и абсолютные числа.
29. Относительный и абсолютный риск
Риск вырос с 1 на миллион до 2 на миллион:
- относительный рост: 100%;
- абсолютный рост: 1 на миллион.
Обе цифры верны и отвечают на разные вопросы. Манипуляция — показывать только
удобную.
30. Среднее без распределения
Среднее latency 100 мс может скрывать:
- 99% по 10 мс и 1% по 9 секунд;
- всех пользователей около 100 мс;
- два разных сегмента.
Нужны:
- медиана и квантили;
- распределение;
- сегменты;
- хвосты;
- временная динамика.
31. Экологическая и атомистическая ошибки
Экологическая
Свойство группы переносят на индивида:
В командах с высоким seniority выше скорость; значит, любой senior быстрее
любого junior.
Атомистическая
Индивидуальную связь переносят на группы:
Более опытный инженер обычно быстрее; значит, увеличение средней опытности
команды всегда повышает throughput.
На уровне команды действуют координация, специализация и распределение задач.
32. Ошибка точности
Вероятность проекта — 73,42%.
Два знака после запятой не создают знания. Показывайте:
- диапазон;
- чувствительность к предпосылкам;
- калибровку модели;
- источник неопределённости.
33. Причинный протокол
- Определите X, Y и момент измерения.
- Сформулируйте контрфактический вопрос: что было бы с Y без X?
- Нарисуйте предполагаемый DAG.
- Найдите confounders, mediators, colliders.
- Опишите механизм.
- Определите intervention или стратегию идентификации.
- Зафиксируйте выборку и missingness.
- Задайте primary outcome и горизонт.
- Покажите абсолютный эффект и неопределённость.
- Проверьте устойчивость и переносимость.
flowchart LR
X["Изменение X"] --> M["Механизм M"]
M --> Y["Результат Y"]
Z["Контекст Z"] --> X
Z --> Y
S["Отбор S"] --> X
S --> Y
C["Контрольная группа /
контрфактическая оценка"] -. сравнение .-> Y
34. Разбор: «после внедрения AI скорость выросла на 30%»
Уточнения:
Что такое скорость?
Какая единица анализа?
Кто попал в выборку?
Как выбран период до/после?
Изменилась сложность задач?
Были параллельные изменения?
Есть контроль?
Как учтено качество и rework?
Кто не использовал инструмент?
Это intention-to-treat или usage effect?
Корректный ограниченный вывод может звучать:
У участников пилота медианное время выполнения выбранного класса задач
снизилось на 30% относительно их предыдущего периода. Дизайн до/после не
отделяет инструмент от обучения, изменения задач и отбора участников;
результат обосновывает контролируемый следующий эксперимент, но не общий
causal claim.
35. Чек-лист
- Условные вероятности не переставлены?
- Указана базовая частота?
- Есть числитель и знаменатель?
- Относительный эффект дополнен абсолютным?
- Выборка покрывает целевую популяцию?
- Не видим ли только выживших?
- Экстремум не регрессирует к среднему?
- Гипотеза и метрика выбраны до просмотра?
- Учтены множественные проверки и stopping rule?
- Агрегат проверен по релевантным группам?
- Корреляция дополнена причинным графом?
- Confounder не спутан с mediator или collider?
- Альтернативное объяснение проверено?
- Неопределённость и переносимость обозначены?
36. Задания
- Детектор имеет sensitivity 95%, false positive rate 2%, базовая частота
дефекта 0,1%. Посчитайте
P(дефект | тревога) натуральными частотами.
- После обязательного обучения число зарегистрированных инцидентов выросло.
Дайте три причинные модели.
- Изучили только проекты, дожившие до трёх лет, и нашли общую практику.
Какой знаменатель отсутствует?
- Команда выбрала худшие 10 endpoint и после оптимизации увидела улучшение.
Где возможна регрессия к среднему?
- Эксперимент показал рост conversion на 20% в mobile и desktop, но общий
conversion снизился. Постройте возможный пример Симпсона.
- Из 200 метрик нашли три значимых. Какие данные нужны для интерпретации?
Источники
Что дальше
Статистическая ошибка описывает структуру данных и вывода. Когнитивное
искажение описывает, почему внимание и оценка систематически толкают нас к
некоторым ошибкам. Эти уровни связаны, но не тождественны.
Когнитивные искажения