Причинно-следственный вывод
Измерение причинности без A/B — DiD, синтетический контроль, matching, IV, RDD и иерархия доказательств.
10 вопросов
JuniorТеорияОчень частоКорреляция — не причинность. Назовите три разных способа, которыми две переменные коррелируют без причинной связи между ними.
Корреляция — не причинность. Назовите три разных способа, которыми две переменные коррелируют без причинной связи между ними.
Три пути без связи X→Y. Общая причина (конфаундер) двигает обе переменные. Обратная причинность — предполагаемое следствие на деле двигает предполагаемую причину. Либо отбор и совпадение — коллайдер, на который вы обусловились, или случайное совпадение на малой выборке. Ни один не значит, что X двигает Y.
Типичные ошибки
- ✗Считать высокий коэффициент корреляции доказательством причинного эффекта
- ✗Забывать, что обратная причинность даёт ту же корреляцию
- ✗Игнорировать, что обусловливание на коллайдер порождает связь
Уточняющие вопросы
- →Как обусловливание на коллайдер создаёт ложную корреляцию?
- →Какой из трёх путей исключает рандомизированный эксперимент?
MiddleТеорияОчень частоРанжируйте иерархию причинных доказательств от RCT до сырой корреляции — что даёт каждая ступень?
Ранжируйте иерархию причинных доказательств от RCT до сырой корреляции — что даёт каждая ступень?
Каждая ступень — больше контроля над конфаундингом. RCT рандомизирует, балансируя все конфаундеры. Естественный эксперимент берёт как-бы-случайный шок. Diff-in-diff убирает разрывы при параллельных трендах. Matching балансирует лишь измеренные ковариаты, а сырая корреляция — ничего.
Типичные ошибки
- ✗Считать matching эквивалентом рандомизации
- ✗Полагать, что большая выборка поднимает сырую корреляцию до доказательства причинности
- ✗Путать иерархию контроля смещения со статистической мощностью
Уточняющие вопросы
- →Почему рандомизация балансирует ненаблюдаемые конфаундеры, чего matching не может?
- →Какой как-бы-случайный источник превращает наблюдательное исследование в естественный эксперимент?
MiddleДизайнЧастоКомпания запустила новую страницу с ценами в одном городе (Казань) и больше нигде. Вы хотите измерить её эффект на недельную выручку на пользователя дизайном difference-in-differences — сравнивая изменение до-и-после в Казани с тем же изменением в наборе нетронутых контрольных городов. Коллега спрашивает, какое допущение делает это валидным и как вы его защитите. Какой ответ верно формулирует допущение параллельных трендов и здравый способ его проверить?
Компания запустила новую страницу с ценами в одном городе (Казань) и больше нигде. Вы хотите измерить её эффект на недельную выручку на пользователя дизайном difference-in-differences — сравнивая изменение до-и-после в Казани с тем же изменением в наборе нетронутых контрольных городов. Коллега спрашивает, какое допущение делает это валидным и как вы его защитите. Какой ответ верно формулирует допущение параллельных трендов и здравый способ его проверить?
Параллельные тренды — без запуска Казань и контроли двигались бы по одному тренду, параллельно, а не на равных уровнях. Доказать нельзя, только подкрепить — постройте несколько дозапусковых периодов и убедитесь, что группы уже шли параллельно до начала воздействия.
Типичные ошибки
- ✗Требовать равных дозапусковых уровней вместо равных трендов
- ✗Верить, что параллельные тренды можно доказать, а не только подкрепить
- ✗Проверять период после воздействия вместо периода до него
Уточняющие вопросы
- →Что ломает diff-in-diff, если шок бьёт только по контрольным городам в середине исследования?
- →Как event-study график делает нарушение дотренда видимым?
MiddleТеорияЧастоВключившие фичу удерживаются лучше. Почему наивное сравнение бесполезно, и что чинит метод propensity-score matching?
Включившие фичу удерживаются лучше. Почему наивное сравнение бесполезно, и что чинит метод propensity-score matching?
Включение — самоотбор: те, кто включает фичу, уже были активнее, поэтому разрыв смешивает эффект фичи с тем, кто её выбрал. Propensity-score matching сопоставляет включивших и невключивших с равной модельной вероятностью включения, балансируя наблюдаемые ковариаты, чтобы сравнивать подобное с подобным.
Типичные ошибки
- ✗Читать разрыв удержания включивших как причинный эффект фичи
- ✗Полагать, что matching балансирует и ненаблюдаемые конфаундеры
- ✗Сопоставлять по исходу вместо вероятности включения
Уточняющие вопросы
- →Какой ненаблюдаемый конфаундер мог бы пережить propensity-score matching здесь?
- →Как проверить баланс ковариат после сопоставления по скору?
SeniorДизайнЧастоНужно измерить прирост продаж от ТВ- и наружной кампании, но рандомизировать отдельных пользователей нельзя — все в регионе видят одну рекламу. Вы выбираете гео-эксперимент: рандомизируете целые регионы в тест и контроль, крутите кампанию только в тестовых регионах и сравниваете. Коллега спрашивает, как назначить регионы, как читать результат при всего нескольких крупных единицах и что угрожает валидности. Какой ответ описывает здравый дизайн гео-эксперимента и его чтение?
Нужно измерить прирост продаж от ТВ- и наружной кампании, но рандомизировать отдельных пользователей нельзя — все в регионе видят одну рекламу. Вы выбираете гео-эксперимент: рандомизируете целые регионы в тест и контроль, крутите кампанию только в тестовых регионах и сравниваете. Коллега спрашивает, как назначить регионы, как читать результат при всего нескольких крупных единицах и что угрожает валидности. Какой ответ описывает здравый дизайн гео-эксперимента и его чтение?
Рандомизируйте сопоставленные регионы в тест и контроль по дозапусковым продажам и тренду; рекламу лишь в тесте. При немногих единицах читайте прирост через diff-in-diff или синтетический контроль на агрегатах, вывод — из перестановок, не из пользовательских тестов. Переток через границы и мало регионов — угроза.
Типичные ошибки
- ✗Гонять тест на уровне пользователей по немногим агрегированным регионам
- ✗Брать тестовые регионы по размеру вместо рандомизации сопоставленных пар
- ✗Игнорировать переток рекламы через границы соседних регионов
Уточняющие вопросы
- →Почему учёт пользователей как единицы занижает дисперсию в гео-тесте?
- →Как переток через границы смещает измеренный прирост, и как его ограничить?
SeniorТеорияИногда«Пользователи фичи X удерживаются втрое лучше — выкатим X на всех.» Разнесите это причинное заявление за минуту.
«Пользователи фичи X удерживаются втрое лучше — выкатим X на всех.» Разнесите это причинное заявление за минуту.
Оно путает корреляцию с причинностью. Пользователи X отбираются сами — уже активнее, удерживались бы лучше и без X. В 3× подмешаны отбор, обратная причинность (лояльные сами ищут X) и конфаундеры. На всех прибавка может исчезнуть; только рандомизированная раскатка выделяет эффект.
Типичные ошибки
- ✗Читать разрыв удержания 3× как причинный эффект X
- ✗Игнорировать самоотбор активных пользователей в X
- ✗Полагать, что поправка на одну ковариату убирает весь конфаундинг
Уточняющие вопросы
- →Какой один эксперимент чисто измерил бы причинный эффект X на удержание?
- →Как одна обратная причинность могла бы дать наблюдаемый разрыв 3×?
SeniorДизайнИногдаВаш уровень лояльности переключается с Silver на Gold в момент, когда суммарные траты клиента переходят 10 000 ₽, и Gold открывает бесплатную доставку. Вам нужен причинный эффект статуса Gold на частоту повторных покупок. Рандомизировать нельзя, но резкий порог 10 000 ₽ можно использовать дизайном regression-discontinuity — сравнивая клиентов чуть выше отсечки с теми, кто чуть ниже. Коллега спрашивает, как дизайн идентифицирует эффект и что может его обесценить. Какой ответ верен?
Ваш уровень лояльности переключается с Silver на Gold в момент, когда суммарные траты клиента переходят 10 000 ₽, и Gold открывает бесплатную доставку. Вам нужен причинный эффект статуса Gold на частоту повторных покупок. Рандомизировать нельзя, но резкий порог 10 000 ₽ можно использовать дизайном regression-discontinuity — сравнивая клиентов чуть выше отсечки с теми, кто чуть ниже. Коллега спрашивает, как дизайн идентифицирует эффект и что может его обесценить. Какой ответ верен?
У отсечки попадание чуть выше или ниже 10 000 ₽ практически случайно, клиенты по обе стороны сопоставимы, и скачок частоты повторов на пороге оценивает локальный эффект Gold. Ломается, если клиенты подгоняют траты ради перехода черты или если ещё что-то меняется на 10 000 ₽.
Типичные ошибки
- ✗Сравнивать всех Gold со всеми Silver вместо клиентов у отсечки
- ✗Игнорировать подгонку трат ради перехода порога
- ✗Экстраполировать локальный эффект у отсечки на всю базу
Уточняющие вопросы
- →Как тест плотности вокруг отсечки выявляет манипуляцию управляющей переменной?
- →Почему эффект regression-discontinuity локален у порога, а не глобален?
SeniorДизайнИногдаИзменение получил лишь один город (Казань), и ни один отдельный контрольный город не подходит — каждый отличается размером, сезонностью или структурой категорий. Вы решаете построить синтетический контроль: взвешенную смесь нетронутых «донорских» городов, подобранную так, чтобы смесь плотно повторяла дозапусковый исход Казани. Стейкхолдер спрашивает, как вы её строите и, главное, откуда знаете, что ей можно верить, ещё до чтения эффекта. Какой ответ описывает здравую сборку синтетического контроля и его дозапусковую проверку?
Изменение получил лишь один город (Казань), и ни один отдельный контрольный город не подходит — каждый отличается размером, сезонностью или структурой категорий. Вы решаете построить синтетический контроль: взвешенную смесь нетронутых «донорских» городов, подобранную так, чтобы смесь плотно повторяла дозапусковый исход Казани. Стейкхолдер спрашивает, как вы её строите и, главное, откуда знаете, что ей можно верить, ещё до чтения эффекта. Какой ответ описывает здравую сборку синтетического контроля и его дозапусковую проверку?
Подберите веса донорских городов так, чтобы смесь совпадала с дозапусковой траекторией Казани и предикторами на дозапусковых данных. Проверьте до чтения эффекта — синтетика должна повторять реальную Казань на дооконном периоде, а плацебо-прогоны на нетронутых донорах подтверждают, что разрыв не случаен.
Типичные ошибки
- ✗Подгонять веса на данных, включающих послезапусковый период
- ✗Пропускать проверку дозапускового фита до чтения эффекта
- ✗Игнорировать плацебо-тесты, что выявили бы ложный разрыв
Уточняющие вопросы
- →Как плацебо-тест на нетронутых донорах калибрует значимость эффекта?
- →Почему плохой дозапусковый фит может обесценить всю оценку синтетического контроля?
SeniorДебаггингРедкоЧтение difference-in-differences показывает большой эффект, но дозапусковые тренды уже расходились — поставьте диагноз.
Чтение difference-in-differences показывает большой эффект, но дозапусковые тренды уже расходились — поставьте диагноз.
Параллельные тренды нарушены — тест уже расходился вверх с контролем до недели 0. Diff-in-diff относит разрыв на счёт запуска, так что большая часть «эффекта» — смещение, не влияние. Доложите, что оценка недостоверна — нужен контроль с совпадающими дотрендами, прежде чем заявлять эффект.
Открыть задачу →Типичные ошибки
- ✗Читать расходящийся дотренд как импульс воздействия
- ✗Верить, что больше контролей чинит нарушение параллельных трендов
- ✗Докладывать оценку diff-in-diff вопреки проваленной проверке дотренда
Уточняющие вопросы
- →Какой метод всё же восстановит эффект, когда дотренды не параллельны?
- →Как event-study график количественно оценил бы нарушение дотренда?
SeniorТеорияРедкоMatching балансирует лишь то, что вы измерили. Объясните ненаблюдаемый конфаундинг и как instrumental variable его обходит.
Matching балансирует лишь то, что вы измерили. Объясните ненаблюдаемый конфаундинг и как instrumental variable его обходит.
Matching балансирует только наблюдаемые ковариаты, так что ненаблюдаемый конфаундер — скажем, мотивация — всё ещё смещает. Instrumental variable сдвигает воздействие, но касается исхода лишь через него и независим от конфаундера. Её как-бы-случайная вариация идентифицирует эффект, что конфаундер иначе скрыл бы.
Типичные ошибки
- ✗Полагать, что matching убирает и ненаблюдаемые конфаундеры
- ✗Добавлять инструмент как обычный контроль в регрессию
- ✗Брать инструмент, что влияет на исход напрямую, нарушая exclusion
Уточняющие вопросы
- →Каковы условие exclusion restriction и релевантности для валидного инструмента?
- →Почему слабый инструмент раздувает дисперсию оценки?