Switchback-тестирование. Как бороться с социальными эффектами в A/B-тестах

Iskander Mirmakhmadov
expf
Published in
14 min readJan 26, 2021

Дисклеймер

Всем привет, это команда EXPF.

Ниже представлен перевод статьи компании Doordash — сервис по доставке продуктов, чья капитализация уже приблизилась к 2 млрд $. В статье рассказано про альтернативную A/B-тестам методику проведения экспериментов Switchback. Эта техника тестирования полезна в условиях сильного влияния наблюдений (например, таксистов, курьеров или потребителей) друг на друга — эту проблему еще называют как “социальный эффект” или Network Effect (про Network Effect мы выкладывали статьи в нашем telegram канале, на который вы можете подписаться).

Классическое разбиение на сплиты A и B тут не подойдет. Вызвано это в первую очередь влиянием офлайна, где классические подходы проведения A/B не всегда возможны. Т.к. наша деятельность и область интересов связаны с подготовкой к проведению и анализом оффлайн-экспериментов, мы решили перевести эту статью.

В Ситимобил уже успешно внедряется свитчбэк-тестирование. В конце статьи вы можете прочитать комментарий об их опыте и впечатления от использования свитчбэка из первых уст.

В переводе специально опущены или сохранены на английском языке некоторые оригинальные формулировки для упрощения восприятия текста, а также добавлены примечания. И мы себе позволили немного изменить заголовок, чтобы познакомить аудиторию со свитчбэком т.к. в российских медиа мы не нашли его упоминаний (оригинальный заголовок статьи – Еxperiment Rigor for Switchback Experiment Analysis)

Записывайтесь на следующий поток интенсивного курса по A/B-тестированиям и математической статистике от EXPF, который стартует в марте 2021

Перейти на сайт

В DoorDash мы изучаем маркетплейс потребителей, дэшеров и продавцов (прим.: дэшеры — курьеры), и потому в значительной степени полагаемся на эксперименты, чтобы принимать продуктовые и бизнес-решения основанные на данных

Хотя большинство экспериментов, проводимых в DoorDash, являются A/B-тестами или оценкой методом “разностью разностей” (“difference-in-differences”), DoorDash иногда полагается на тип экспериментов, который внутри компании называется «свитчбэк-тестированием» (switchback testing). Свитчбэк-тесты рандомизируют корзины по географическому региону и «единицам» времени (прим.: “единицы” здесь и далее будут обозначаться как “unit”, что соответствует формулировке оригинала статьи Doordash), а не по пользователям, для того чтобы снизить влияние зависимостей в наблюдениях на результаты наших экспериментов. Хотя проведение свитчбэка схоже с A/B-тестами, у них есть две особенности, которые добавляют сложность в их анализе: (1) вложенная структура данных и (2) малая выборка на основе более независимых «unit’ов», доступных для анализа.

В данном посте будет рассказано о том, как мы определили наиболее подходящий подход для анализа свитчбэк-экспериментов и повысили статистическую мощность. Таким образом, мы смогли принимать продуктовые решения более уверенно и на 30% быстрее.

Введение в Свитчбэк

В то время как A/B-тестирование в DoorDash является обычным делом, оно не является оптимальным для тестирования нашего алгоритма назначения заказов, потому что назначение одной доставки дэшеру сильно зависит от результата назначения на другую доставку дэшеру . Например, существует две доставки которые необходимо назначить, но доступен только один дэшер. Если мы применим изменение алгоритма к одной доставке, которая будет назначена быстрее стандартной, мы рискуем повлиять на назначение второй, «контрольной» доставки, так как «обработанная» доставка (прим.: имеется ввиду из тестового варианта) скорее всего и будет назначена единственному дэшеру . Свитчбэк-тестирование снижает риск подобных сетевых эффектов, рандомизируя наш эксперимент в корзинки по регионам и времени суток, а не по дэшерам и доставкам. Перемешивая случайным образом эти «unit’ы» региона-времени, все доставки и дэшеры в каждом unit’е попадают в один и тот же тип алгоритма, что в свою очередь снижает влияние зависимостей среди доставок в двух экспериментальных корзинах.

Рандомизация проиллюстрирована на изображении ниже

Как только рандомизация происходит на уровне региона-времени, каждая доставка закидывается в тестовую или контрольную группу, в зависимости от её региона и времени, и в результате мы получаем вложенную структуру данных: несколько доставок становятся частью одного «unit’а».

Ключевые соображения о Свитчбэк-анализе

Самым простым путем проанализировать свитчбэк может показаться двухвыборочный t-тест, который напрямую сравнивает среднюю продолжительность доставки в экспериментальной группе и контрольной группе, что представлено следующей зависимостью:

Duration ~ bucket (Продолжительность ~ корзина)

Однако, использование доставок как предмета для наблюдений нарушает предположение о независимости, которое мы в первую очередь пытались скорректировать, рандомизируя unit’ы региона-времени. Как следствие, мы пытались агрегированить наши результаты по случайным unit’ам (то есть unit региона-времени) перед применением t-теста, так как мы обнаружили, что это дает более точную оценку среднего эффекта и дисперсии при обработке эксперимента . Подробнее об анализе «на уровне unit’ов» можно узнать в нашем предыдущем посте «Switchback Tests and Randomized Experimentation Under Network Effects at DoorDash»

Тем не менее, агрегация на уровне unit’ов имеет два недостатка. Во-первых, при изначальном агрегировании продолжительности доставки по unit’у региона-времени трудно получить статистически-значимые результаты ввиду ограниченного размера выборки. Например, предположим, что у одного unit’а региона-времени есть 20 доставок. Если мы проанализируем наш эксперимент по unit’ам региона и времени, а не по доставкам, те 20 доставок, доступных для анализа станут лишь 1 unit’ом из которого мы сможем получить статистическую мощность. Во-вторых, анализ на уровне unit’а неправильно учитывает те случаи, в которых изменение нашего алгоритма может иметь явные последствия в unit’е региона-времени с небольшим количеством доставок (например, в 1 час ночи) по сравнению с теми, где количество доставок больше (например, в 5 утра). В таких случаях нам становится трудно с уверенностью сказать о том, уменьшило ли или увеличило ли изменение алгоритма продолжительность доставки в среднем, так как результаты на уровне unit’а и на уровне доставки могут существенно различаться.

Таким образом, мы хотели протестировать то, что можем ли мы лучше оценивать эффект от теста и дисперсию, проанализировав результаты эксперимента с использованием двух других методов: t-тест на уровне unit’а с ковариатами, сокращающие дисперсию и multilevel modeling (MLM), оба из которых кратко обсуждены ниже.

t-Тест на уровне unit’а с уменьшением дисперсии привлекателен тем, что решал наши проблемы связанные со статистической мощностью анализа на уровне unit’а. Добавляя ковариаты X_i, которые удовлетворяют требованиям условной независимости (выраженные ниже), мы пытались объяснить некоторые изменения во времени доставки, которые не связаны с экспериментальной корзиной в наших экспериментах. Некоторые ковариаты, которые мы использовали, включали в себя время суток, номер недели, регион и общую стоимость заказа.

MLM привлекателен, т.к. наш набор данных естественно вложен (что означает, что существует корреляция между продолжительностью временем доставки в один и тот же день, в то же время суток и в том же регионе), а MLM — это опробованный подход для вложенных данных.

Чтобы лучше понять MLM, давайте взглянем на пример свитчбэк-эксперимента, проведенного только в Сан-Франциско показанного ниже. Обратите внимание: несмотря на то, что свитчбэк рандомизирует по регионам и времени, в этом примере для простоты мы рандомизируем только время:

Запуск MLM может быть рассмотрен как комбинация двух шагов.

На первом шаге выполняется линейная регрессия для каждого unit’а региона-времени чтобы объяснить изменение уровня доставки, используя уравнение Duration ~ 1 + bucket + ε (Продолжительность ~ 1 +корзина + ε) для каждого региона и времени. В приведенном выше примере это будет означать выполнение четырех таких регрессий, две из которых проиллюстрированы ниже:

Регрессия второго шага использует определенные на первом шаге коэффициенты для того чтобы объяснить изменчивость между unit’ами региона-времени, как показано в следующих регрессиях, где β_0 и β_1 представляют intercept и средний эффект соответственно, а þ_0_RegionTime и þ_1_RegionTime представляют случайные эффекты. Случайные эффекты позволяют каждому unit’у региона-времени иметь разные intercept’ы для объяснения продолжительности доставки.

Хотя MLM не совсем двухшаговая регрессия, но она очень на неё похожа. Комбинируя два шага в одну формулу (как показано ниже), MLM может учитывать длительность каждой отдельной доставки в каждом unit’е при оценке среднего intercept’а β_0 и эффекта β_1.

Region_Time представляет собой unit региона-времени (например Сан-Франциско День 1 в примере выше), а i — доставку.

Выбирая MLM в качестве альтернативного подхода, мы предположили, что он будет не только обладать большей статистической мощностью, чем анализ на уровне unit’а, но и потому что он включает отдельные доставки в свои расчеты эффекта и дисперсии; мы также полагали, что MLM при расчете дисперсии будет учитывать зависимость между доставками, что будет доказано в результатах.

Улучшение Свитчбэка

Усовершенствуя наш свитчбэк-анализ, мы нацелились на уменьшение ложноположительных и ложноотрицательных оценок, связанных с анализом эксперимента, потому что мы хотим быть уверены в том что (А) мы не делаем неправильный вывод о существовании эффекта, когда его нет и (Б) мы обнаруживаем изменение в нашей ключевой метрике когда тест действительно воздействует на эту метрику.

В частности, ложноположительная оценка срабатывает, если мы заключаем, что эффект есть, хотя в реальности он отсутствовал. Например, если мы запустим АА-тест и увидим p-value менее чем 0.05, мы ошибочно отклоним «нулевую гипотезу» , которая будет указывать на то, что эффекта не было, хотя на самом деле он был. Ложноотрицательная оценка возникает, если мы не можем сделать вывод о том, присутствовал ли эффект, когда он на самом деле был. Например, если мы проведем A/B тест и, при учете что у нас на достаточный размер выборки для необходимого уровня мощности, p-value больше чем 0.05, мы неверно примем нулевую гипотезу, когда эффект на самом деле есть. Обратите внимание что размер выборки является в данном случае (важной) составляющей, так как ложноотрицательный результат зависит от статистической мощности.

Сравнение методов анализа с помощью симуляции данных

Мы оценили наши модели на данных свитчбэка, используя частотную статистику, т.к. мы предположили, что (А) существует фиксированный эффект (то есть 0 для АА-тестов) и (Б) оценка от этого эффекта зависит от доступных данных.

Чтобы реализовать описанный подход, мы взяли данные о доставках в масштабах компании за несколько недель и смоделировали множество версий искусственного эксперимента базирующегося на этих данных. Эти симуляции были выполнены при помощи группирования данных о доставках по unit’ам региона-времени и случайному присвоению unit’ов в тестовые и контрольные варианты, как это было бы сделано при использовании свитчбэка, что означает, что каждая доставка получит экспериментальную группу своего unit’а. Для AA-тестов мы оставили всё как есть, а для A/B-тестов мы добавили нормально распределенный эффект ко всем доставкам в unit’ах тестовых групп; нормальное распределение было упрощенно приближенным. Затем мы протестировали 4 метода анализа (анализ на уровне доставки, анализ на уровне unit’а, анализ на уровне unit’а с сокращением дисперсии и многоуровневое моделирование) на каждом из смоделированных AA и A/B тестов и записали средний эффект и p-value для каждой из симуляций. Наконец, мы построили график распределений p-value и эффект для последнего шага: вычисление частоты ложноположительных, ложноотрицательных результатов и ошибки (bias).

Результаты моделирования: MLM против других методов

По результатам моделирования мы определили что MLM является оптимальным методом анализа. Как показано ниже, у MLM самый низкий показатель ложноположительных результатов (0.03) и вторая по величине статистическая мощность (0.93).

Применение MLM для анализа экспериментов со свитчбэком дает несколько преимуществ.

Во-первых, хотя t-тест на уровне доставки имеет наивысшую статистическую мощность, MLM обеспечивает более надежную оценку эффекта, учитывая неблагоприятно высокий уровень ложноположительных результатов (0.62). Высокий уровень ложноположительных результатов на уровне доставки растет из-за вложенной структуры данных: чем больше скоррелированы доставки в пределах одного unit’а региона-времени, тем больше мы недооцениваем дисперсию нашего кластерного набора данных при использовании традиционного t-теста.

Чтобы конкретно понимать, почему t-тест на уровне доставки недооценивает дисперсию эксперимента со свитчбэком, полезно сравнить оценку дисперсии t-теста с оценкой истинной дисперсии, используя формулу для метода наименьших квадратов (OLS): Duration ~ β_0 + β_hat + bucket (Продолжительность ~ β_0 + β_hat + корзина). Предполагая, что Var (β_hat) — это истинная дисперсия от эффекта, n — размер нашей выборки, а ρ_eintraclass correlation coefficient (ICC) (подробно описанный ниже), дисперсия для оценки эффекта составляет:

Из приведенной выше формулы легко заметить, что мы верно оцениваем дисперсию нашего эффекта только тогда, когда ICC (обозначаемый ρ_e) равен 0. Это невозможно с данными свитчбэка, потому что, когда данные имеют вложенную структуру, ICC всегда больше 0. Это связано с тем, что ICC количественно определяет долю общей дисперсии, которая возникает из двух компонентов дисперсии во вложенных данных: дисперсия между группами (т. е. дисперсия в unit’ах региона-времени) и дисперсия внутри группы (т. е. дисперсия в продолжительности доставки в пределах unit’а региона-времени). Более конкретно, ICC рассчитывается следующим образом, где числитель обозначает межгрупповую дисперсию, а знаменатель обозначает общую дисперсию:

Если в приведенном выше уравнении числитель равен нулю, это означает, что мы не видим наличия межгрупповой дисперсии, наши данные не вложены, и мы теоретически можем использовать t-тест для анализа. Однако, когда существует какая-либо корреляция между группами, как в случае со свитчбэком, мы знаем, что данные являются вложенными, и t-тест больше не подходит. Следовательно, используя t-тест для свитчбэка, имеет смысл получить большую t-статистику и неверно малый p-value:

MLM исправляет недооценивание дисперсии во вложенных данных путем учитывания как межгрупповой, так и внутригрупповой дисперсии в оценке дисперсий, о чем свидетельствует низкий уровень ложноположительных результатов MLM.

Во-вторых, хотя анализ на уровне unit’а улучшает оценку дисперсии, устраняя корреляцию среди доставок, MLM имеет гораздо более высокую статистическую мощность, чем анализ на уровне unit’а. Более того, используя MLM, мы сокращаем время, необходимое для получения статистически значимых результатов, примерно на 30% по сравнению с анализом на уровне unit’а. Это связано с тем, что размер выборки при анализе на уровне unit’а, значительно ниже, чем в MLM, в связи с тем, что добавляются данные на уровне доставки и на уровне unit’а в MLM. При меньшем количестве наблюдений мы получаем меньшую t-статистику и, следовательно, p-value выше 0.05 на уровне unit’а, когда эффект на самом деле присутствует.

В-третьих, хоть мы и можем улучшить мощность теста на уровне unit’а, добавив больше ковариат, таких как время дня (например, обед или ужин) и регион, мы не смогли найти ковариаты, которые уменьшили бы дисперсию при оценке эффекта в достаточной степени, чтобы компенсировать разницу в размере выборки между анализом на уровне unit’а и MLM. Вдобавок к этому, с сокращением дисперсии с помощью регрессии мы рискуем внести систематическую ошибку в результаты наших экспериментов, если добавляем неправильные ковариаты (т.е. ковариаты, которые коррелируют с эффектом) или пропускаем необходимые ковариаты. Подробная информация о систематической ошибке содержится в Приложении. Например, если мы добавим unit_id в качестве dummy-переменной, то значительно уменьшим количество степеней свободы и увеличим дисперсию, в то время как MLM не имеет проблем, т.к. он берет unit_id как случайный эффект. Включая unit_id в качестве случайного эффекта, мы можем смоделировать разницу между средним времени доставки на unit’е региона-времени и всеми доступными данными, что по сути является двухшаговой регрессией.

Все эти результаты убедительно свидетельствуют о том, что мы должны использовать MLM для анализа свитчбэка с unit_id в качестве случайного эффекта.

Заключение

Получение результатов эксперимента, в которых мы можем быть уверены, является ключевым компонентом для доставки продуктов, что в конечном итоге улучшит пользовательский опыт для наших потребителей, дэшеров и продавцов. Анализ свитчбэк-экспериментов с использованием MLM — это большой шаг вперед в постоянном проведении экспериментов в маркетплейсе более уверенно и значительно быстрее, чем когда-либо.

Это только начало. Еще есть простор для возможностей и совершенствования сокращения дисперсии при свитчбэк-тестировании, чтобы быстрее получать результаты эксперимента через (1) использование случайных эффектов в других методах уменьшения дисперсии, таких как sequential testing или CUPED, (2) добавление дополнительных предикторов, фиксированных и случайных коэффициентов в MLM (используя build-up strategy, чтобы помочь определить и то, какие эффекты включить, и сложность модели), (3) с использованием других надежных оценок дисперсии, таких как cluster standard errors, Huber–White standard errors, Generalized Estimating Equations и/или (3) другие решения, такие как взвешенный метод наименьших квадратов (Weighted least squares (WLS)) для данных на уровне unit’а или Block bootstrap. Поскольку мы стремимся к более быстрому проведению экспериментов в marketplace с небольшими эффектами, мы планируем расширить используемые здесь процессы моделирования, чтобы найти лучшую модель MLM для анализа наших экспериментов в будущем.

Комментарии Ситимобил о Свитчбэк-тестировании

Андрей Павлов, Head of Marketplace в Ситимобил

Сервис такси это пример так называемого two-sided marketplace, где в нашем случае одна из сторон это водители, а другая пассажиры. Примечательно, что их взаимодействие тесно связано, так например, количество водителей на линии, находящихся в радиусе назначения заказа клиента напрямую влияет на цену, которую увидит пассажир. Эта связь добавляет сложности (Network Effect/нарушение SUTVA), когда при разработке алгоритмов ценообразования и распределения заказов (радиус распределения) хочется количественно установить причинно-следственную связь между изменениями в алгоритме и изменением бизнес-показателей. С методом switchback мы познакомились более года назад, когда перед нами встала задача разработки принципиально нового алгоритма динамического ценообразования. В том числе статья, которую вы читаете, послужила нам плацдармом для собственной реализации a/b тестирования методом switchback-а. При всех преимуществах этого метода над классическим a/b тестированием (нивелирование Network Effect) мы столкнулись с рядом проблем, такими как: сходимость в группа А1/А2, ручная очистка выбросов в гео-зонах (например, Мурино в Ленинградской области, аномальный спрос на такси как следствие проблемы с общественным транспортом), настройка гиперпараметров (пространственно-временно окно) и др. Важно отметить, что switchback это не серебренная пуля, в виду его специфики по частой смене treatment / control, пользовательский опыт у конкретного водителя или пассажира может меняться, что может внести ошибку восприятия в эксперимент. Именно поэтому мы не останавливаемся, а продолжаем искать эффективные способы верно рассчитывать treatment effect. Область наших интересов сейчас лежит в применении метода Synthetic Control, Multiple Randomization Design и совершенствование Switchback тестирования.

Артём Солоухин, Product Owner динамического ценообразования в Ситимобил

В Ситимобил, в подразделении динамического ценообразования, мы проводим switchback-эксперименты с середины 2019-го года. Когда мы начинали проводить эксперименты со сплитованием по геохроно, мы не знали о том что такая практика является распространённой — мы сами постепенно пришли к такому сплитованию, решая проблему сетевых эффектов. Вскоре мы провели литературный обзор и обогатили свои знания в проведении подобных экспериментов.Со временем мы обнаружили разного рода недостатки switchback-экспериментов и нашли для них решения. Такие эксперименты в чистом виде не исключают полностью сетевой эффект и не всегда дают сходимость A/A. Поэтому чтобы быть уверенными в сходимости групп мы используем A/A/B эксперименты, а также применяем некоторые хитрости для снижения влияния остаточных сетевых эффектов и выбросов. Кроме того, существуют свои сложности с оценкой таких экспериментов. Более подробно о нашем опыте мы расскажем в ближайшее время в нашем блоге на habr

ПРИЛОЖЕНИЕ

Дальнейшее объяснение результатов уменьшения дисперсии на уровне unit’а

Чтобы лучше понять, почему результаты на уровне unit’а с уменьшением дисперсии не работают так же хорошо, как MLM, нам нужно вспомнить (1) требования условной независимости и (2) проблемы с размером выборки на уровне unit’а, которые были упомянуты выше в разделе «Ключевые соображения о Свитчбэке»

Что касается условной независимости, если мы сможем найти набор ковариат, который удовлетворяет требованиям условной независимости, это сведет к нулю систематическую ошибку отбора, и, следовательно, наблюдаемая разница в продолжительности доставки будет являться средним эффектом, как показано ниже:

где Duration_0i — это продолжительность i-ой доставки, если бы она была назначена для контрольной корзины, независимо от того, была ли она фактически назначена для контроля, а Duration_1i — это продолжительность доставки, если бы она была назначена для теста.

Как правило, мы не знаем идеального набора ковариат, удовлетворяющих условной независимости, и, скорее всего, опустим переменные, которые коррелируют с продолжительностью доставки и одной или несколькими её объясняющими ковариатами в модели. Это известно как bias (смещение) вследствие пропущенных переменных. Мы можем количественно оценить этот bias, используя формулу bias’а вследствие пропущенных переменных (Omitted Variables Bias), чтобы иметь представление о том, как меняется результат, при добавлении новых ковариат.

Однако, даже если мы уменьшим bias вследствие пропущенных переменных, результаты дисперсии на уровне unit’а по-прежнему будут начинаться с меньшего чем у MLM количества наблюдений, из которых можно получить статистическую значимость. Следовательно, исследованная мощность ковариат, добавляемых к модели, должна будет компенсировать преимущество наличия как внутригрупповой, так и межгрупповой дисперсий.

Ссылка на оригинальную статью — https://doordash.engineering/2019/02/20/experiment-rigor-for-switchback-experiment-analysis/

--

--