A/B-тесты · ПродвинутоеВремя до события: Каплан–Мейер

Кривая Каплана–Мейера онлайн и анализ выживаемости: удержание, время до покупки, срок подписки с учётом тех, у кого событие ещё не случилось. Лог-ранговый критерий, медианы, RMST и решение по шагам.

Цифры остаются в браузере и никуда не отправляются

01Расчёт02О теме03Проверить в Python / R04Разборы05Вопросы06Похожие
01

Расчёт

Подставить
Событие — пользователь ушёл; время — дни после регистрации. Время через запятую; 12+ — событие ещё не случилось. Или два столбца из Excel: время и 1/0.
8 наблюдений · событий 5 · цензура 3
8 наблюдений · событий 7 · цензура 1
Критерий
Разница пограничная.
Медианное время до ухода: «Новый онбординг» — 7 дн., «Старый онбординг» — 15 дн.; log-rank p = 0,055.
Что делать дальше: Наберите больше наблюдений — или дождитесь, пока цензурированные дойдут до события.
Доля без события · S(t)
0%25%50%75%100%051015202530
Старый онбордингНовый онбордингцензурапунктир 50 % — медиана
Медиана · Старый онбординг
15 дн.
ДИ 5…∞
Медиана · Новый онбординг
7 дн.
ДИ 3…18
Без события к 10 дн.
75 % · 33 %
Старый онбординг · Новый онбординг
Среднее до τ = 30 (RMST)
17,7 · 9,5
разница −8,2 дн.
Log-rank
χ² = 3,670
p = 0,055 · df 1
Наблюдений · событий
8/5 · 8/7
цензура: 3 · 1
Таблица дожития
ВремяПод рискомСобытийS(t)95 % ДИ
5810,8750,387…0,981
8710,7500,315…0,931
12610,6250,229…0,861
15410,4690,120…0,763
22210,2340,013…0,616
02

О теме

Цензура — не пропуск

Пользователь, который ещё не ушёл, — тоже данные: он продержался как минимум столько дней.

Медиана вместо среднего

Среднее время не посчитать, пока у части людей событие не наступило. Медиану и S(t) — можно.

Log-rank сравнивает кривые целиком

Он смотрит на каждый момент события, а не на одну точку.

03

Проверить в Python / R

Проверить в Python / R
from lifelines.statistics import multivariate_logrank_test

time = [5, 8, 12, 12, 15, 20, 22, 30, 3, 4, 6, 7, 9, 10, 14, 18]
event = [1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1]
group = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]

r = multivariate_logrank_test(time, group, event)
r.test_statistic, r.p_value
# 3.67, 0.0554
# При S ровно 0,5: R — середина до следующего события (8,5), lifelines — следующий момент (10), на странице — 7

Медиана здесь — первое время, где S(t) ≤ 0,5. При S ровно 0,5 другие программы считают иначе: R берёт середину до следующего события (8,5), lifelines — следующий момент (10), здесь — 7.

04

Разборы по теме

Все разборы
A/B-тестирование: как провести тестСемь шагов от гипотезы до вывода, шаблон гипотезы, 12 частых ошибок и словарь8 минСколько ваших побед в A/B-тестах — ложныеПочему при α = 5 % ложна каждая третья победа: сетка 100 тестов, таблица и симуляция8 минКак не надо проводить A/B-тестВосемь ошибок с живыми демонстрациями и чек-лист для печати12 мин
05

Частые вопросы

Это ступенчатый график доли людей, у которых событие ещё не случилось. Каждая ступенька — момент события: доля падает на столько, сколько людей из оставшихся под риском дошли до него. Цензурированные ступеньки не дают, но уменьшают число под риском, поэтому кривая не завышает и не занижает удержание.

Обновлено