R - Анализ выживаемости: руковод для начинающих

Здравствуйте,future данные科学家ы! Сегодня мы отправимся в увлекательное путешествие в мир анализа выживаемости с использованием R. Не волнуйтесь, если вы никогда не писали ни строчки кода - я буду вашим дружелюбным проводником на каждом шагу. Погружаемся!

R - Survival Analysis

Что такое анализ выживаемости?

Прежде чем мы начнем программировать, давайте поймем, что такое анализ выживаемости. Представьте, что вы врач, изучающий, как долго пациенты живут после определенного лечения. Или, может быть, вы аналитик в бизнесе, который анализирует, как долго клиенты остаются с подпиской, прежде чем отписаться. Вот где на помощь приходит анализ выживаемости!

Анализ выживаемости помогает нам ответить на вопросы, такие как:

  • Как долго длится до наступления события?
  • Какие факторы влияют на время до наступления события?
  • Как сравниваются различные группы по времени выживаемости?

Теперь давайте脏我们的手写一些R代码!

Установка и загрузка необходимых пакетов

Сначала нам нужно установить и загрузить необходимые пакеты. В R пакеты resemble ящики с инструментами, содержащие полезные функции для конкретных задач.

# Установите пакет 'survival'
install.packages("survival")

# Загрузите пакет
library(survival)

Не волнуйтесь, если вы видите некоторые сообщения при выполнении этих команд. Пока нет ошибок в красном цвете, вы в порядке!

Загрузка и изучение данных

Для этого руководства мы использовать встроенный набор данных 'lung' из пакета survival. Этот набор данных содержит информацию о пациентах с запущенным раком легких.

# Загрузите набор данных lung
data(lung)

# Загляните в первые несколько строк
head(lung)

# Получите резюме набора данных
summary(lung)

Когда вы выполните эти команды, вы увидите snapshot данных. Возьмите片刻, чтобы ознакомиться с переменными. Мы будем работать с:

  • 'time': время выживания в днях
  • 'status': статус цензуры (1=цензурирован, 2=умер)
  • 'age': возраст пациента
  • 'sex': пол пациента (1=мужской, 2=женский)

Создание объекта выживаемости

Теперь давайте создадим объект выживаемости. Это особый объект R, который combines время выживания и статус события.

# Создайте объект выживаемости
surv_object <- Surv(time = lung$time, event = lung$status == 2)

# Выведите первые несколько записей
head(surv_object)

Вы увидите series чисел с знаками '+'. Знак '+' indicates censурированные наблюдения (пациенты, которые были еще живы на конец исследования).

Кривая выживаемости Kaplan-Meier

Одна из самых распространенных визуализаций в анализе выживаемости - кривая Kaplan-Meier. Она показывает вероятnost выживания с течением времени.

# Подогнайте кривую Kaplan-Meier
km_fit <- survfit(surv_object ~ 1, data = lung)

# Постройте кривую
plot(km_fit, main = "Kaplan-Meier Survival Curve",
xlab = "Time (days)", ylab = "Survival Probability")

Вот и все! Вы только что создали свою первую кривую выживаемости. Осевая линия y показывает вероятnost выживания, а осевая линия x показывает время в днях. Кривая опускается каждый раз, когда происходит событие (смерть).

Сравнение групп: Мужчины и женщины

Давайте сравним кривые выживаемости для мужчин и женщин.

# Подогнайте кривые Kaplan-Meier по полу
km_sex <- survfit(surv_object ~ sex, data = lung)

# Постройте кривые
plot(km_sex, col = c("blue", "red"), main = "Survival Curves by Sex",
xlab = "Time (days)", ylab = "Survival Probability")
legend("topright", c("Male", "Female"), col = c("blue", "red"), lty = 1)

Теперь у вас две кривые: синяя для мужчин и красная для женщин. Видите ли вы какие-либо различия?

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

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

# Подогнайте модель пропорциональных рисков Кокса
cox_model <- coxph(surv_object ~ age + sex, data = lung)

# Выведите резюме
summary(cox_model)

Не пугайтесь вывода! Вот на что обратить внимание:

  • Столбец 'coef' показывает влияние каждого переменной.
  • Столбец 'exp(coef)' легче интерпретировать: значения > 1 indicate увеличенный риск, < 1 indicate уменьшенный риск.
  • Столбец 'Pr(>|z|)' показывает вероятность. Малые значения (< 0.05) indicate统计学意义。

Заключение

Поздравления! Вы только что完成了 свой первый анализ выживаемости в R. Мы covered много информации, от создания объектов выживаемости до подгонки сложных моделей. Помните, что практика makes perfect. Попробуйте поиграть с кодом, изменять переменные и see что happens.

Вот резюме основных функций, которые мы использовали:

Функция Назначение
Surv() Создание объекта выживаемости
survfit() Подгонка кривой выживаемости
plot() Визуализация кривых выживаемости
coxph() Подгонка модели пропорциональных рисков Кокса

Продолжайте исследовать, continue учиться и, главное, получайте удовольствие от R и анализа выживаемости!

Credits: Image by storyset