Анализ выживания имеет дело с предсказанием времени, когда определенное событие произойдет. Это также известно как анализ времени отказа или анализ времени до смерти. Например, прогнозирование количества дней, в течение которых человек с раком выживет, или прогнозирование времени, когда механическая система выйдет из строя.
Пакет 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
Тенденция на приведенном выше графике помогает нам прогнозировать вероятность выживания в конце определенного количества дней.