Привет, я Паша - продуктовый аналитик во ВкусВилле, занимаюсь аналитикой коммуникаций. По долгу продукта касаюсь многих частей внутри мобильного приложения и почти всегда хочется знать как фактор X влияет на пользователя. Тут все вспомнили про AB тесты, но они не всегда возможны, поэтому в статье рассмотрим 4 метода исследований, которые помогут понять что делать, если выводы нужны, а рандомизации не случилось.
Для нашей цели нужны квази эксперименты – это исследования ситуаций, когда выборка разделилась на группы по естественным (не обязательно случайным) причинам. В этой статье не будем детально разбирать математику и новейшие достижения методов, но посмотрим на идеи, кейсы и специфические предпосылки. Будет полезно тем, кто на вопросы вида “мы год назад запускали фичу, стало лучше?” не задумываясь говорит, что сказать нельзя.
Я искренний фанат структурированного текста, поэтому дальше будут 4 блока с методами и в каждом есть разделы: идея метода, специфические предпосылки, типичные примеры, мои наблюдения из практики.
Целью статьи себе ставил сделать своего рода справочник, который бы помог продвинуться в начале изучения этой темы, а что вышло, предлагаю оценить самостоятельно.
Difference in Differences (DiD)
Идея метода:
Есть выборка, которая разделилась на группы по какому-то естественному критерию (гео, тип устройств, пол и т.д.), на одну из групп было влияние, остальные не трогали. Тогда мы можем найти группу без воздействия, которая в прошлом была похожа на целевую, и для обеих посчитать значение метрики до периода воздействия и после.
В таком случае оценка эффекта от воздействия будет равна:
Где Y(1), Y(0) – значение метрики на пост- и пре-периоде, T=0, T=1 – индикатор отсутствия или наличия воздействия.
То есть для целевой группы мы прогнозируем значение метрики, если бы воздействия не было. Прогноз наивный – предполагаем, что к пост-периоду метрика в целевой группе изменится так же, как и в контрольной, затем смотрим разницу между реальным значением метрики и спрогнозированным. Картинка в помощь:
Предпосылки метода:
Параллельность трендов. Если бы мы не воздействовали на группу B, то разница средних значений между группами A и B была бы одинаковой в периоды t0 и t1.
Несмещенность КГ. Ни на кого из контрольной группы не было воздействия.
Постоянство воздействия. Эффект от воздействия остается постоянным на протяжении всего исследуемого периода.
Типичные примеры:
Продаем товары в нескольких регионах, в одном запустили оффлайн рекламу, хотим оценить эффективность.
Без A/B-теста выпустили фичу только на ios, надо проверить, улучшились ли метрики.
На одной из версий приложения что-то сломалось, надо оценить ущерб.
Рассуждения из практики
Вообще штука хоть и простая, но очень мощная. Основная проблема в параллельности трендов, в небольших задачах для точеченого сравнения редко получается найти подходящую группу. Часто хорошие идеи для поиска сопоставимых групп приходят из естественных факторов пользователя (соц-дем, гео), а вот факторы взаимодействия с компанией у меня редко получалось успешно использовать.
Regression discontinuity design (RDD)
Идея метода:
В природе все изменения достаточно плавные, поэтому, когда мы находим разрывы значений, можно предполагать искусственное воздействие. Тогда, если есть какая-то точка, которая разделяет выборку на 2 группы, где одной доступно воздействие, а другой – нет, можно посмотреть на значение метрики в окрестности этой точки. Разница между оценкой слева и справа и будет оценкой эффекта, более формально она выражается так:
Где с – это пороговое значение.
Картинка помощи:
Предпосылки метода:
Существование порогового значения. Самая частая ошибка с RDD – манипуляции с пороговым значением, поэтому нужно точно определить из контекста задачи, что считать порогом.
Стабильность переменных в окрестности порогового значения. Ни у какой из переменных не должна возрастать дисперсия в окрестности порога.
Локальность воздействия интервенции. Предполагается, что эффект от воздействия локален и измеряется только вблизи порога, а не на всей выборке.
Типичные примеры:
После 18 лет пользователю доступен больший ассортимент, хотим исследовать, как меняется его поведение.
Через каждые 10 покупок в месяц пользователь получает новый уровень в программе лояльности, можно анализировать изменения в покупательском поведении вблизи этого порога.
При релизе фичи полезно посмотреть изменение поведения пользователя при первом контакте с ней.
При использовании ML моделей важно смотреть различия между пользователями в окрестности порога классов.
Если расположение пользователя влияет на условия доставки, то полезно изучить, как ведут себя пользователи на границе зон.
Рассуждения из практики
Для этого метода критично важно аккуратно работать с пороговым значением. Тут чаще всего бывают 2 ошибки:
Соблазн “подобрать” его - избитая история, помним, что каждая наша оценка параметров это ошибки 1 и 2 рода с заданной вероятностью, следовательно если хотим их на этом уровне сохранять на весь эксперимент надо четко ставить гипотезы, считать их число и использовать поправки.
Поиск не “точки” перехода, а “полосы”. Такое чаще всего случается, когда по задаче недостаточно данных и есть мысли в духе “на графике слева метрика низкая, справа высокая, значит посередине что-то есть”. Для RDD критически важна оценка плотности данных вокруг предполагаемой точки перехода, например тестом маккрари, в случае нарушения этой предпосылки стоит изучать природу явления другими методами.
Instrumental variables
Идея метода:
Мы хотим оценить влияние какого-то фактора X на нашу метрику Y, но у нас нет данных по другим факторам, которые почти наверняка тоже влияют на метрику. Тогда можно постараться найти такой фактор (инструментальную переменную), который будет влиять только на X и не будет влиять напрямую на Y.
То есть мы хотим добиться такого вида связей в данных:
В таком случае мы можем оценить X через инструментальную переменную, тогда получим X^, на который не влияют скрытые факторы и используем его для оценки Y. В таком случае, будет следующая взаимосвязь данных:
Формулами выражается так:
Регрессия инструментальной переменной (Z) на X
Регрессия X с крышкой на Y:
Предпосылки метода:
Релевантность инструментальной переменной (IV). Переменная Z, которая служит инструментом, должна сильно коррелировать с эндогенной переменной X.
Экзогенность инструментальной переменной. Инструментальная переменная Z не должна коррелировать с ошибками модели.
Типичные примеры:
Хотим исследовать воздействие скорости загрузки приложения на отток, возможный инструмент – параметры хостинга и инфраструктуры.
Оцениваем влияние отзывов в сторах на установки приложения, варианты инструментов – параметры ранжирования отзывов, цикл деловой активности основной аудитории.
Изучаем связь активности в приложении и перехода на новые версии, варианты инструмента – версия ОС, модель устройства, тип интернета.
NB. Поиск хорошей инструментальной переменной – сложная творческая задача, поэтому готовых рецептов нет, а выше мы перечислили примеры, которые сами проверяли и получали приемлемый результат.
Рассуждения из практики
Главное наблюдение - искать хорошие инструментальные переменные очень сложно. Часто их берут из фактов внешней независимой среды - регуляторные ограничения, правила платформы или естественные катаклизмы. Вообще поиск хороших инструментов это искусство, есть интересный тред по теме на quora, а мои любимые оттуда - данные о состоянии дорог в колониальную эпоху для оценки экономического потенциала штата и данные о призывной кампании для оценки эффекта от образования.
Matching
Идея метода:
Допустим, выборка как-то поделилась на группы, но группы друг с другом не сопоставимы: например, в ЦА чаще попадал более платежеспособный сегмент. В таком случае логично сравнивать не группы в среднем, а конкретные, похожие между собой наблюдения из разных групп и исследовать среднее значение такой попарной разницы схожих объектов.
Формально мы хотим получить следующую оценку:
Где Y c верхним индексом T – значение из целевой группы, а Y с верхним индексом C – сопоставленное значение из контрольной.
То есть мы хотим найти среднее разниц ближайших объектов из разных групп.
Картинка помощи:
На картинке разные фигуры отражают тот факт, что пользователи в одной группе могут быть не похожими друг на друга.
Предпосылки метода:
Перекрытие. Для каждого наблюдения из экспериментальной группы есть похожее из контрольной.
Возможность сопоставления. Мы можем надежно и адекватно для контекста задачи определять похожесть наблюдений.
Сбалансированность. Распределение наблюдаемых характеристик среди участников с воздействием и без должно быть схожим после процедуры сопоставления.
Рассуждения из практики
В общем виде, matching это не конкретный метод оценки разницы среднего, а подход к выравниванию перекосов в выборке. Т.е. Простыми словами matching позволяет не сопоставимые группы сделать сопоставимыми. Идея метода сопоставления может использоваться много где, даже в A/B-тестах. Поэтому типичных примеров для метода нет, т.к. он может использоваться практически со всеми остальными.
Итоги:
Выявлять и оценивать причинно-следственные связи можно не только через классические рандомизированные эксперименты. Выше мы обсудили четыре популярных подхода, и еще стоит уточнить два важных момента:
Во-первых, в статье приведены самые базовые идеи. На практике существует множество доработок и улучшений для каждого из подходов, поэтому, если вы поняли, что какой-то метод вам подходит, стоит подробнее с ним познакомиться.
Во-вторых, стоит уделять особое внимание области применимости метода. Убедитесь на уровне бизнес-контекста, что метод решает именно ту задачу, которая вам нужна. А на уровне техники проверьте выполнение предпосылок метода, если они не будут выполняться, то и результат вы получите смещенный.
Ну и самое главное -а как вы отвечаете на вопрос “сколько принесла фича из 2020 года”?)
Материалы, где можно ознакомиться с методами до наших статей о каждом: