Введение в концепции анализа выживания и его реализацию в пакете жизненных циклов для Python.

Анализ выживаемости используется для оценки продолжительности жизни конкретной исследуемой популяции. Его также называют анализом «времени до события», поскольку цель состоит в том, чтобы оценить время, в течение которого отдельный человек или группа людей могут пережить интересующее событие. На этот раз оценка времени - это промежуток времени между событиями рождения и смерти [1]. Анализ выживаемости был первоначально разработан и использовался медицинскими исследователями и аналитиками данных для измерения продолжительности жизни определенного населения [1]. Но на протяжении многих лет он использовался в различных других приложениях, таких как прогнозирование оттока клиентов / сотрудников, оценка срока службы Машины и т. Д. Событие рождения можно рассматривать как время, когда клиент начинает свое членство с компании, а событие смерти можно рассматривать как уход клиента из компании.

Данные

В анализе выживаемости нам не нужны точные начальные и конечные точки. Все наблюдения не всегда начинаются с нуля. Субъект может войти в исследование в любое время. Все длительности относительны [7]. Все субъекты приобретаются до общей начальной точки, где время t равно нулю (t = 0), и все субъекты имеют вероятность выживания, равную единице, то есть их шансы не испытать интересующее событие (смерть, отток и т. Д.) 100%.

Могут возникнуть ситуации, когда объем данных не позволяет полностью использовать их в Анализе выживаемости. В таких ситуациях может помочь стратифицированная выборка. В стратифицированной выборке ваша цель состоит в том, чтобы иметь равное или почти равное количество субъектов из каждой группы субъектов во всем населении. Каждая группа называется стратами. Все население стратифицировано (разбито) на группы по некоторому признаку. Теперь, чтобы выбрать определенное количество предметов из каждой группы, вы можете использовать простую случайную выборку. Общее количество субъектов указывается в начале, и вы разделяете необходимое общее количество между каждой группой и выбираете это количество субъектов случайным образом из каждой группы [12].

Цензура

Важно понимать, что не каждый член населения испытает интересующее событие (смерть, отток и т. Д.) В течение периода исследования. Например, будут клиенты, которые все еще являются членами компании, или сотрудники, все еще работающие в компании, или машины, которые все еще работают в течение периода наблюдения / изучения. Мы не знаем, когда они испытают интересующее событие на момент исследования. Все, что мы знаем, они еще не испытали этого. Их время выживания больше, чем их время в исследовании. Таким образом, их время выживания обозначается как «цензура» [2]. Это указывает на то, что время их выживания было сокращено. Таким образом, цензура позволяет измерять продолжительность жизни населения, которое еще не пережило интересующее событие.

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

В «Анализе выживания» используются различные типы цензуры, как описано ниже [3]. Обратите внимание, что цензурирование не должно зависеть от будущей стоимости опасности для данного конкретного объекта [24].

  • Правильная цензура: это происходит, когда субъект входит в момент t = 0, то есть в начале исследования, и завершает его до того, как произойдет интересующее событие. Это может быть либо отсутствие интересующего события во время исследования, т. Е. Они прожили дольше, чем продолжительность исследования, либо не могли полностью участвовать в исследовании и ушли раньше, не испытав интересующего события, т. Е. Они ушли, и мы не мог больше их изучать.
  • Цензура слева: это происходит, когда рождение ребенка не наблюдалось. Здесь также следует упомянуть другую концепцию, известную как выборка со смещением по длине. Этот тип выборки происходит, когда цель исследования состоит в том, чтобы провести анализ людей / субъектов, которые уже пережили событие, и мы хотим увидеть, испытают ли они его снова. Пакет Lifelines поддерживает наборы данных с цензурой слева путем добавления ключевого слова left_censoring = True. Обратите внимание, что по умолчанию установлено значение False. Пример [9]:
  • Интервальная цензура: это происходит, когда период наблюдения, то есть время между наблюдениями, не является непрерывным. Это может быть еженедельно, ежемесячно, ежеквартально и т. Д.
  • Усечение слева: это называется позднее запись. Субъекты могли испытать интересующее событие до входа в исследование. Существует аргумент под названием «запись», который указывает время между рождением и поступлением в исследование. Если мы заполним усеченную область, это заставит нас быть слишком уверенными в том, что происходит в ранний период после постановки диагноза. Вот почему мы их усекаем [9].

Короче говоря, субъекты, которые не испытали интересующее событие в течение периода исследования, подвергаются цензуре справа, а субъекты, рождение которых не было замечено, подвергаются цензуре слева [7]. Анализ выживаемости был разработан, в основном, для решения проблемы цензуры справа [7].

Функция выживания

Функция выживания задается следующим образом:

Функция выживания определяет вероятность того, что интересующее событие не произошло в момент времени t. Его также можно интерпретировать как вероятность выживания после времени t [7]. Здесь T - случайное время жизни, взятое из совокупности, и оно не может быть отрицательным. Обратите внимание, что S (t) находится между нулем и единицей (включительно), а S (t) - невозрастающая функция. т [7].

Функция опасности

Функция опасности, также называемая функцией интенсивности, определяется как вероятность того, что субъект испытает интересующее событие в течение небольшого временного интервала, при условии, что человек дожил до начала этого интервала [2]. Это мгновенная скорость, рассчитанная за период времени, и эта скорость считается постоянной [13]. Это также можно рассматривать как риск столкновения с интересующим событием в момент времени t. Это количество субъектов, переживающих событие в интервале, начинающемся в момент времени t, деленное на произведение количества субъектов, выживших в момент времени t, и ширины интервала [2].

Поскольку вероятность того, что непрерывная случайная величина равна определенному значению, равна нулю. Поэтому мы рассматриваем вероятность того, что событие произойдет в определенный промежуток времени от T до (T + ΔT). Поскольку наша цель - найти риск события, и мы не хотим, чтобы этот риск увеличивался по мере увеличения временного интервала ΔT. Таким образом, чтобы скорректировать это, разделим уравнение на ΔT. Это масштабирует уравнение на ΔT [14]. Уравнение уровня опасности представлено как:

Предел ΔT, приближающийся к нулю, означает, что наша цель - измерить риск события, происходящего в определенный момент времени. Таким образом, переход к пределу ΔT, приближающемуся к нулю, дает бесконечно малый период времени [14].

Здесь следует отметить, что опасность не является вероятностью. Это потому, что, даже если у нас есть вероятность в числителе, но ΔT в знаменателе может привести к значению, большему единицы.

Оценка Каплана-Мейера

Оценка Каплана-Мейера используется для измерения доли субъектов, которые выжили в течение определенного времени выживания t [4] при тех же обстоятельствах [2]. Он используется для получения среднего представления о населении [7]. Этот метод также называется лимитом продукта. Это позволяет составить таблицу, называемую таблицей дожития, и график, называемый кривой выживаемости, для лучшего представления о группе риска [2]. Время выживания определяется как время, начиная с заранее определенной точки до наступления интересующего события [5]. Кривая выживания Каплана-Мейера - это вероятность выживания в течение заданного промежутка времени, когда время учитывается с небольшими интервалами. Для анализа выживаемости с использованием оценки Каплана-Мейера существует три допущения [4]:

  • Субъекты, подвергнутые цензуре, имеют такие же шансы на выживание, как и те, за которыми продолжают следить.
  • Вероятность выживания одинакова для всех испытуемых, независимо от того, когда они были задействованы в исследовании.
  • Интересующее событие происходит в указанное время. Это потому, что событие может произойти между двумя экзаменами. Расчетное время выживания можно более точно измерить, если обследование проводится часто, т.е. если временной интервал между обследованиями очень мал.

Вероятность выживания в любой конкретный момент времени рассчитывается как количество выживших субъектов, деленное на количество людей, находящихся в группе риска. Цензурированные предметы не учитываются в знаменателе [4]. Уравнение имеет следующий вид:

Здесь ni представляет количество субъектов риска до момента t. di представляет собой номер интересующего события в момент времени t.

Для кривой выживаемости для оценки Каплана-Мейера ось y представляет вероятность того, что субъект все еще не испытал интересующее событие по прошествии времени t, где время t находится на оси x [9]. Чтобы увидеть, насколько мы не уверены в точечных оценках, мы используем доверительные интервалы [10]. Среднее время - это время, когда в среднем половина населения пережила интересующее событие [9].

Нельсон Аален Установщик

Подобно Kaplan-Meier Fitter, Nelson Aalen Fitter также дает нам усредненное представление о населении [7]. Он выражается делением количества смертей в момент времени t на количество субъектов, находящихся в группе риска. Это непараметрическая модель. Это означает, что не существует функциональной формы с параметрами, под которые мы подбираем данные. У него нет подходящих параметров [7].

Здесь ni представляет количество субъектов риска до момента t. di представляет собой номер интересующего события в момент времени t.

Регрессия выживаемости

Регрессия выживаемости предполагает использование не только продолжительности и цензурных переменных, но и дополнительных данных (пол, возраст, заработная плата и т. Д.) В качестве ковариат. Мы «регрессируем» эти ковариаты по переменной продолжительности.

Набор данных, используемый для регрессии выживаемости, должен быть в форме (Pandas) DataFrame со столбцом, обозначающим продолжительность испытуемых, необязательным столбцом, указывающим, наблюдалось ли интересующее событие или нет, а также дополнительными ковариатами, необходимыми для регрессии. против. Как и в случае с другими методами регрессии, вам необходимо предварительно обработать данные перед их передачей в модель.

Модель пропорциональной регрессии рисков Кокса

Модель регрессионного анализа пропорциональных рисков Кокса была введена Коксом и учитывает влияние нескольких переменных одновременно [2] и исследует связь распределения выживаемости с этими переменными [24]. Он похож на множественный регрессионный анализ, но разница в том, что зависимая переменная является функцией риска в данный момент времени t. Он основан на очень небольших интервалах времени, называемых щелчками по времени, которые содержат не более одного интересующего события. Это полупараметрический подход к оценке весов в модели пропорциональной опасности [16]. Оценки параметров получаются путем максимизации частичного правдоподобия весов [16].

Градиентный спуск используется для подгонки модели Кокса к данным [11]. Объяснение градиентного спуска выходит за рамки этой статьи, но она определяет веса, которые минимизируют ошибку.

Формула для модели регрессии пропорциональных рисков Кокса приводится ниже. Модель работает таким образом, что логарифм риска отдельного субъекта является линейной функцией их статических ковариат и базовой функцией риска на уровне популяции, которая изменяется с течением времени. Эти ковариаты можно оценить по частичному правдоподобию [24].

β0 (t) - это базовая функция риска, определяемая как вероятность возникновения интересующего события, когда все другие коварианты равны нулю. И это единственный компонент модели, зависящий от времени. Модель не делает никаких предположений относительно базовой функции риска и принимает параметрическую форму для влияния ковариат на опасность [25]. Частичный риск - это неизменный во времени скалярный фактор, который только увеличивает или уменьшает базовый риск. Это похоже на перехват в обычной регрессии [2]. Ковариаты или коэффициенты регрессии x дают пропорциональное изменение, которое можно ожидать в опасности [2].

Знак коэффициентов регрессии βi играет роль в опасности объекта. Изменение этих коэффициентов регрессии или ковариат будет либо увеличивать, либо уменьшать исходный риск [2]. Положительный знак для βi означает, что риск события выше, и, следовательно, прогноз интересующего события для этого конкретного субъекта выше. Точно так же отрицательный знак означает, что риск события ниже. Также обратите внимание, что величина, то есть само значение, также играет роль [2]. Например, для значения переменной, равной единице, это будет означать, что это не повлияет на Опасность. Значение меньше единицы снижает опасность, а значение больше единицы увеличивает опасность [15]. Эти коэффициенты регрессии β оцениваются путем максимизации частичного правдоподобия [23].

Модель пропорциональных рисков Кокса - это полупараметрическая модель в том смысле, что базовая функция рисков не требует указания, то есть она может варьироваться, что позволяет использовать разные параметры для каждого уникального времени выживания. Но предполагается, что соотношение частот остается пропорциональным на протяжении всего периода наблюдения [13]. Это приводит к увеличению гибкости модели. Полностью параметрическая модель пропорциональных рисков также предполагает, что базовая функция рисков может быть параметризована в соответствии с конкретной моделью распределения времени выживания [2].

Модель Кокса может обрабатывать данные с цензурой справа, но не может напрямую обрабатывать данные с цензурой слева или с интервальной цензурой [19].

Есть некоторые ковариаты, которые могут не подчиняться допущению о пропорциональной опасности. Им разрешено оставаться частью модели, но без оценки ее эффекта. Это называется стратификацией. Набор данных разбивается на N меньших наборов данных на основе уникальных значений стратифицирующих ковариат. Каждый меньший набор данных имеет свой собственный базовый риск, который составляет непараметрическую часть модели, и все они имеют общие параметры регрессии, которые составляют параметрическую часть модели. Для стратифицированных ковариат не существует параметра регрессии.

Термин «пропорциональные риски» относится к предположению о постоянной связи между зависимой переменной и коэффициентами регрессии [2]. Таким образом, это означает, что функции риска для любых двух субъектов в любой момент времени пропорциональны. Модель пропорциональных рисков предполагает, что существует мультипликативный эффект ковариат на функцию рисков [16].

Модель Кокса делает три допущения [23].

  • Коэффициент опасности для двух предметов всегда остается неизменным.
  • Объясняющие переменные мультипликативно действуют на функцию опасности.
  • Время отказа отдельных субъектов не зависит друг от друга.

Некоторые встроенные функции, предоставляемые пакетом lifelines [11]

  • print_summary позволяет распечатать коэффициенты и соответствующую статистику в виде таблицы.
  • hazards_ напечатает коэффициенты
  • baseline_hazard_ распечатает базовую опасность.
  • baseline_cumulative_hazard_ распечатает N базовых опасностей для N наборов данных.
  • _log_likelihood выведет значение максимального логарифмического правдоподобия после подбора модели.
  • variance_matrix представит матрицу дисперсии коэффициентов после подбора модели.
  • score_ распечатает индекс соответствия подобранной модели.
  • Градиентный спуск используется для подгонки модели Кокса к данным. Подгонку можно даже увидеть с помощью переменной show_progress = True в функции подгонки.
  • pred_partial_hazard и pred_survival_function используются для вывода подобранной модели.
  • Метод plot можно использовать для просмотра коэффициентов и их диапазонов.
  • Метод plot_covariate_groups используется, чтобы показать, как выглядят кривые выживаемости, когда мы изменяем одну (или несколько) ковариант, сохраняя все остальное равными. Таким образом, мы можем понять влияние ковариаты на модель.
  • метод check_assumings выведет нарушения предположения о пропорциональной опасности.
  • weights_col = ’column_name’ определяет столбец веса, который содержит целые числа или значения с плавающей запятой, которые представляют некоторые веса выборки. Вам также необходимо указать robust = True в методе подбора, чтобы изменить вычисления стандартной ошибки.

Аддитивная модель Аалена

Как и модель Кокса, эта модель также является регрессионной, но, в отличие от модели Кокса, она определяет степень риска как аддитивную, а не мультипликативную линейную модель. Опасность определяется как:

Во время оценки линейная регрессия вычисляется на каждом шаге. Регрессия может стать нестабильной из-за небольшого размера выборки или высокой колинеарности в наборе данных. Добавление члена coef_penalizer помогает контролировать стабильность. Начните с небольшого срока и увеличивайте, если он станет слишком нестабильным [11].

Это параметрическая модель, что означает, что она имеет функциональную форму с параметрами, под которые мы подбираем данные. Параметрические модели позволяют нам расширить функцию выживания, функцию риска или функцию совокупного риска за пределы нашей максимальной наблюдаемой продолжительности. Эта концепция называется экстраполяцией [9]. Функция выживания модели Вейбулла выглядит следующим образом:

Здесь λ и ρ положительны и больше нуля. Их значения оцениваются, когда модель соответствует данным. Функция опасности определяется как:

Модель ускоренной регрессии времени отказа

Если нам даны две отдельные популяции A и B, каждая из которых имеет свои собственные функции выживания, заданные SA (t) и SB (t), и они связаны друг с другом некоторым ускоренным коэффициентом отказов λ, так что:

Это может замедлить или ускорить продвижение по функции выживания. λ можно моделировать как функцию ковариат [11]. Он описывает увеличение или уменьшение времени выживания как функцию переменных-предикторов [19].

Где,

В зависимости от ковариат субъектов модель может увеличивать или уменьшать время отказа. Увеличение xi означает, что среднее / медианное время выживания изменяется в exp (bi) раз [11]. Затем мы выбираем параметрическую форму для функции выживания. Для этого выберем форму Вейбулла.

Анализ выживаемости в Python с использованием пакета Lifelines

Первым шагом является установка пакета lifelines на Python. Вы можете установить его с помощью pip.

Следует отметить, что пакет «Линии жизни» предполагает, что каждый субъект испытал интересующее событие, если мы не укажем это явно [8].

Входные данные для метода соответствия регрессии выживаемости, то есть CoxPHFitter, WeibullAFTFitter и AalenAdditiveFitter, должны включать длительности, цензурированные индикаторы и ковариаты в форме фрейма данных Pandas. При вызове метода fit [8] необходимо указать продолжительность и индикатор цензуры.

Пакет lifelines содержит функции в lifelines.statistics для сравнения двух кривых выживаемости [9]. Тест Log-Rank сравнивает два генератора серии событий. У серий есть разные генераторы, если значение, возвращаемое из теста, превышает какое-то заранее определенное значение.

Тест ранжирования журнала

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

Индекс соответствия

Он обычно используется для оценки производительности моделей выживаемости. Он используется для проверки предсказательной способности модели выживания [18]. Это вероятность соответствия между прогнозируемой и наблюдаемой выживаемостью. Это «доля всех пар субъектов, чье прогнозируемое время выживания правильно упорядочено среди всех субъектов, которые можно фактически упорядочить» [16].

Выбор модели

Если цензура присутствует, мы не должны использовать среднеквадратичную ошибку или потери средней абсолютной ошибки. Мы должны выбрать индекс соответствия (или для краткости c-index). Индекс соответствия оценивает точность упорядочения прогнозируемого времени. Это трактуется следующим образом [11]:

  • Случайные прогнозы: 0,5
  • Идеальное соответствие: 1.0
  • Идеальное антиконкорданс: 0,0 (в этом случае мы должны умножить прогнозы на -1, чтобы получить идеальное 1,0)

Обычно подобранные модели имеют индекс соответствия между 0,55 и 0,7, что связано с шумом, присутствующим в данных.

Мы также можем использовать перекрестную проверку K-Fold с моделью Кокса и аддитивной моделью Аалена. Функция разделяет данные на обучающий набор и набор для тестирования, подстраивается под обучающий набор и оценивает себя на тестовом наборе. Функция повторяет это для каждой складки.

Во второй части мы реализуем на Python анализ выживаемости (регрессии) для прогнозирования оттока клиентов.

Ссылки

[1] Линии жизни: анализ выживания на Python: https://www.youtube.com/watch?v=XQfxndJH4UA

[2] Что такое модель Кокса? Стивен Дж. Уолтерс. Www.whatisseries.co.uk

[3] Прикладной анализ выживаемости: регрессионное моделирование данных о времени до события Дэвид У. Хосмер-младший, Стэнли Лемешоу, Сюзанна Мэй.

[4] Понимание анализа выживаемости: оценка Каплана-Мейера: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3059453/

[5] Статистический обзор 12: анализ выживаемости. Бьюик В., Чик Л., Болл Дж. Crit Care. 2004 Oct; 8 (5): 389–94.

[6] Альтман Д.Г. Лондон (Великобритания): Чепмен и Холл; 1992. Анализ продолжительности жизни. В: Практическая статистика для медицинских исследований; С. 365–93.

[7] линии жизни - Введение в анализ выживания

[8] спасательные круги - Быстрый старт

[9] линии жизни - Анализ выживаемости с помощью линий жизни

[10] Гринвуд и Экспоненциальный Гринвуд. Доверительные интервалы в анализе выживаемости - С. Сойер - 4 сентября 2003 г.

[11] линии жизни - Регресс выживания

[12] Стратифицированная выборка, https://www.youtube.com/watch?v=sYRUYJYOpG0

[13] Анализ выживаемости, часть 3: Статья о регрессии Кокса в Американском журнале ортодонтии и челюстно-лицевой ортопедии · ноябрь 2017 г.

[14] Определение функции риска в анализе выживания: https://www.youtube.com/watch?v=KM23TDz75Fs

[15] Модель пропорциональных рисков Кокса - STHDA

[16] О рейтинге в анализе выживаемости: границы индекса соответствия - Викас К. Райкар, Харальд Штек, Баладжи Кришнапурам САПР и решения для знаний (IKM CKS), Siemens Medical Solutions Inc., Малверн, США, и Кэри Дехинг-Оберидж, Филипп Клиника Ламбин Маастро, Университетская клиника Маастрихта, Маастрихтский университет, GROW, Нидерланды

[17] Линии жизни - Изменяющаяся во времени регрессия выживания

[18] Индекс соответствия

[19] Параметрические модели выживания - Кристоф Датвайлер и Тимон Штуки. 9. мая 2011 г.

[20] StatQuest: Максимальное правдоподобие, ясно объяснено! Https://www.youtube.com/watch?v=XepXtl9YKwc

[21] Кокс (1972)

[22] Частичное правдоподобие Д. Р. Кокса (1975).

[23] Модель регрессии Кокса

[24] Регрессия пропорциональных рисков Кокса для данных о выживании в R Приложение к R Companion к прикладной регрессии, третье издание Джон Фокс и Сэнфорд Вайсберг

Дополнительная информация