Учебники

R — Анализ выживания

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

Пакет R под названием « выживание» используется для анализа выживаемости. Этот пакет содержит функцию Surv (), которая принимает входные данные в виде формулы R и создает объект выживания среди выбранных переменных для анализа. Затем мы используем функцию Survfit (), чтобы создать график для анализа.

Установить пакет

install.packages("survival")

Синтаксис

Основной синтаксис для создания анализа выживаемости в R —

Surv(time,event)
survfit(formula)

Ниже приведено описание используемых параметров:

  • время — время наблюдения до наступления события.

  • Событие указывает на состояние возникновения ожидаемого события.

  • формула — это отношение между переменными предиктора.

время — время наблюдения до наступления события.

Событие указывает на состояние возникновения ожидаемого события.

формула — это отношение между переменными предиктора.

пример

Мы рассмотрим набор данных с именем «pbc», присутствующий в пакетах выживания, установленных выше. Он описывает данные о выживаемости людей с первичным билиарным циррозом печени. Среди множества столбцов, представленных в наборе данных, мы в первую очередь занимаемся полями «время» и «статус». Время представляет собой количество дней между регистрацией пациента и более ранним событием между пациентом, получающим трансплантацию печени, или смертью пациента.

# Load the library.
library("survival")

# Print first few rows.
print(head(pbc))

Когда мы выполняем приведенный выше код, он дает следующий результат и диаграмму —

  id time status trt      age sex ascites hepato spiders edema bili chol
1  1  400      2   1 58.76523   f       1      1       1   1.0 14.5  261
2  2 4500      0   1 56.44627   f       0      1       1   0.0  1.1  302
3  3 1012      2   1 70.07255   m       0      0       0   0.5  1.4  176
4  4 1925      2   1 54.74059   f       0      1       1   0.5  1.8  244
5  5 1504      1   2 38.10541   f       0      1       1   0.0  3.4  279
6  6 2503      2   2 66.25873   f       0      1       0   0.0  0.8  248
  albumin copper alk.phos    ast trig platelet protime stage
1    2.60    156   1718.0 137.95  172      190    12.2     4
2    4.14     54   7394.8 113.52   88      221    10.6     3
3    3.48    210    516.0  96.10   55      151    12.0     4
4    2.54     64   6121.8  60.63   92      183    10.3     4
5    3.53    143    671.0 113.15   72      136    10.9     3
6    3.98     50    944.0  93.00   63       NA    11.0     3

Из приведенных выше данных мы рассматриваем время и статус для нашего анализа.

Применение функций Surv () и Survfit ()

Теперь мы переходим к применению функции Surv () к указанному выше набору данных и создаем график, который покажет тренд.

# Load the library.
library("survival")

# Create the survival object. 
survfit(Surv(pbc$time,pbc$status == 2)~1)

# Give the chart file a name.
png(file = "survival.png")

# Plot the graph. 
plot(survfit(Surv(pbc$time,pbc$status == 2)~1))

# Save the file.
dev.off()

Когда мы выполняем приведенный выше код, он дает следующий результат и диаграмму —

Call: survfit(formula = Surv(pbc$time, pbc$status == 2) ~ 1)

      n  events  median 0.95LCL 0.95UCL 
    418     161    3395    3090    3853 

Анализ выживания с использованием R

Тенденция на приведенном выше графике помогает нам прогнозировать вероятность выживания в конце определенного количества дней.