Как мы применили метод Difference-in-Difference вместо обычных A/B-тестов и улучшили продукт
Иногда нужно проверить гипотезу, но старые добрые и широко известные методики вроде A/B-тестов не подходят. Например, когда нет никакой возможности рандомизировать тестовую и контрольную группу. Тогда в дело вступает метод Difference-in-Difference. Показываем на примере из EdTech, как мы меняем продукт на основе данных, полученных с помощью такого анализа.
Виктор Пчелин
Продуктовый аналитик отдела образовательной аналитики Нетологии
Какие гипотезы мы тестировали: студентам слишком сложно изучать программирование
В Нетологии неплохо развит институт проведения A/B-тестирования. Но эти тесты мы применяем в коммерческой аналитике: смотрим переходы, конверсии и оплаты — это широко известная и изученная область. А мы стараемся принести data-driven подход ещё и в область образовательной аналитики, то есть проверять контент и методики обучения, чтобы подобрать студентам оптимальную структуру курсов и материалов.
Одна из проблем, с которой мы столкнулись — это нехватка времени у студентов.
Нагрузка на курсах, особенно связанных с программированием, высокая. И если приходят люди без бэкграунда, им трудно осваивать программу.
Мы со своей стороны рассчитывали, что на прохождение курса будет уходить 10–15 часов в неделю, но по факту студенты тратят намного больше. Из-за этого они отказываются от обучения.
Люди работают, и в течение недели не так много времени, которое они готовы потратить на обучение. Когда за семь дней нужно просмотреть несколько вебинаров и сдать несколько домашних заданий, параллельно прочитав дополнительную литературу, студенты не успевают должным образом усвоить материал.
Мы со своей стороны рассчитывали, что на прохождение курса будет уходить 10–15 часов в неделю, но по факту студенты тратят намного больше. Из-за этого они отказываются от обучения.Наша задача — сделать курс, который не напугает людей непомерной нагрузкой. При этом он соответствует и нашим требованиям к обучению, и готовит специалистов.
Мы провели UX-исследование, убедились, что действительно есть проблема: превышение учебной нагрузки по сравнению с планируемой. Возникла идея провести эксперимент, связанный с распределением образовательной нагрузки на студентов.
Как мы проводили Difference-in-Difference тестирование: гипотезы
Цель и метрики эксперимента
Цель нашего эксперимента — сделать фактическую учебную нагрузку посильной, повысить активность студентов на курсе и снизить количество отказов от обучения.
Основная гипотеза: снижение образовательной нагрузки должно привести к увеличению активности студентов.
В Нетологии мы используем сегментацию по активности. Раз в несколько дней мы смотрим, как студент посещает занятия, решает задачи и усваивает материал. После этого присваиваем один из чётырех статусов:
активный;
отстающий;
сильно отстающий;
пропавший.
Основная метрика нашего эксперимента — доля двух наиболее активных сегментов. Это универсальный показатель, который не зависит от контента конкретного курса. Метрика, основанная на этом показателе, подойдёт разным профессиям.
Мы сравнивали численность в активных группах с января по апрель. В этот период стартуют сразу несколько потоков обучения, по три в тестовой и контрольных группах. На основании численного моделирования методом Monte-Carlo был определён необходимый объём выборки. Мы предположили, что трёх наборов хватит, чтобы получить статистически значимый результат.
Метод проведения теста — Difference-in-Difference: почему он
У нас есть модуль, на котором изучают основы HTML, — это первый модуль сразу для нескольких профессиональных курсов: FullStack, JavaScript, Битрикс и Frontend.
В качестве тестовой мы взяли студентов Frontend (далее — FE), а остальных — в качестве контрольной группы. По численности студентов группы получились примерно равные.
В качестве методики выбрали Difference-in-Difference. Это метод проверки гипотез при помощи сравнения значений метрики в разные периоды времени: до внедрения изменений в тестовую группу и после.
У него есть ряд отличий от A/B-тестирований. Основное — распределение пользователей между группами эксперимента. Для A/B-тестирований нужно случайное распределение, потому что оно помогает исключить влияние на результаты факторов, которые мы не учли и не проверяем. То есть проводится рандомизация тестовой и контрольной группы, чтобы они отличались только одним параметром — тем, который мы исследуем. Например, в группах должно быть одинаковое соотношение мужчин и женщин, если только мы не исследуем фактор пола.
В условиях Нетологии распределение уже не может быть рандомизированным, потому что студенты целенаправленно записываются на выбранную профессию. Перемешать мы их не можем, как не можем показывать на одной профессии разный контент. Когда люди выбирают курс для обучения, на это влияет очень много факторов, которые искажают результат: это и доход, и наличие свободного времени, и существующие знания и ещё много чего.
Так что мы взяли метод Difference-in-Difference, с помощью которого можно исследовать нерандомизированные группы и при этом получать достоверные результаты.
Как работает Difference-in-Difference
В Difference-in-Difference мы берём две группы, наблюдаем за ними на историческом периоде, чтобы зафиксировать, насколько динамика метрики в них одинакова. Потом одну из групп делаем контрольной, вносим изменения и фиксируем изменения. Затем сравниваем результаты тестовой и контрольный группы.
Для применимости метода должны выполняться определённые условия. Например, средняя активность в тестовой и контрольной группе должна изменяться одинаково. Активность каждого студента не должна зависеть от активности другого студента. Поэтому студенты друг с другом почти не взаимодействовали во время обучения.
На графике видно работу метода. У нас есть две группы. Тестовая — зелёная линия, контрольная — оранжевая линия. В периоде ДО изменений динамика групп была похожей: если росла активность в одной группе, росла и в другой.
ПОСЛЕ изменений динамика групп начинает различаться. Чтобы оценить эффект от изменений, мы сравниваем фактическую динамику и предполагаемую. Предполагаемая динамика тестовой группы соответствует динамике контрольной группы.
Почему мы уверены в том, что метод корректный
При планировании эксперимента мы провели А/А-тесты. У нас была историческая выборка по обучению студентов за полугодовой период. Мы взяли эти данные, разделили на два периода и сравнили их между собой, как если бы второй период был этапом тестирования изменений.
Это было нужно, чтобы проверить, покажет ли метод тестирования разницу между наблюдениями. В идеале метод вычислений не должен ничего найти, потому что изменений фактически не было. Мы сделали много симуляций и оценили вероятность ошибки первого рода — не выше 5%. Это значит, что результатам исследований можно доверять.
Нас ещё интересует оценка доверительного интервала и статистической значимости эффекта от изменений. Они показывают, насколько мы можем быть уверенными в том, что эффект на самом деле есть. Для оценки доверительного интервала мы строим линейную регрессию. Окончательный вывод о статистической значимости изменений строится на основании P-value — оно должно быть меньше заранее установленного критического значения. Стандартное значение — 0,05.
Какие данные мы получили
В тестовой группе средняя нагрузка снизилась на три часа в неделю. Количество занятий на курсе не снизилось, но увеличился период обучения.
Вот так у нас выглядит изменение активности студентов на разных неделях обучения. Красная линия — тестовая группа, синяя — контрольная. В тестовой группе выросла активность как относительно контрольной группы, так относительно предыдущего периода.
Итого по итогам теста мы получили четыре значения метрики. Дальше мы строим три разности.
Метрика после изменений минус метрика до изменений для тестовой группы.
Метрика после изменений минус метрика до изменений для контрольной группы.
Прирост значений метрики в тестовой группе минус прирост значений метрики в контрольной группе.
В начале эксперимента мы заметили рост активности на 3,6%. В конце эксперимента активность в тестовой группе выросла на 4,4%. P-value равно 0,09. По результатам теста сделаем вывод о том, как нагрузка влияет на активность.
Какие выводы мы сделали и к чему это приведёт
Эксперимент закончился, и на основе результатов мы приняли решение о корректировке учебной программы в тех модулях, где есть высокая нагрузка.
Мы также следили, чтобы изменения не сказались на отзывах студентов. Пока студентам в тестовой группе больше нравится контент. До финального теста в тестовой группе дошло на 13% учащихся больше. Но некоторые студенты отметили, что обучение для них стало слишком медленным, и попросили перевести их в контрольную группу — правда, так сделали только три человека.
Благодаря тесту у нас появились и новые гипотезы. Например, что на активность влияет время занятий и их сложность — проверим эти версии следующими.
Получите новую специальность или повышение с этими курсами Нетологии:
Для самых внимательных — скидка 10% по промокоду dshabr10.