Модель пропорциональных рисков Кокса и модель Кокса, зависящая от времени в R

У меня есть данные о выживаемости, в которых описывается уровень смертности от трех типов услуги (салон, ресторан и экспресс) в течение десяти лет обучения.

Данные содержат три переменные: тип обслуживания (1 = салон, 2 = ресторан и 3 = экспресс), годы (целое число от 1 до 11, где 11 означает более 10 лет) и цензор.

У меня два вопроса:

1) Я применил модель пропорциональных рисков Кокса, но как можно проверить допущение о пропорциональных рисках. То есть мы предполагаем, что коэффициент риска для каждого человека и базовый риск не зависят от времени.

2) Как вписать в R модель Кокса, зависящую от времени?

Вот мой код:

   #Cox Proportional Hazards
   cox <- coxph(Surv(Years, Censor) ~ data$`Service Type` )
   summary(cox)

person Rann    schedule 07.03.2016    source источник
comment
Это одновременно не по теме и слишком широко. Это не вопрос программирования, это вопрос статистики (который лучше подходит для stats.stackexchange). Это тоже кажется довольно широким. Я бы рекомендовал прочитать Приложение Джона Фокса на Анализ выживаемости. Он охватывает эти и другие темы с большим количеством примеров кода R.   -  person Gregor Thomas    schedule 08.03.2016
comment
Предполагается, что исходные риски не зависят от времени, и данные не поддерживают модель, зависящую от времени. Я отвечу на вопрос о том, как проверить пропорциональность в предикторах, поскольку это однострочный.   -  person IRTFM    schedule 08.03.2016
comment
Для зависимого от времени анализа требуется время начала и окончания для предикторов, которые зависят от времени. Эти данные не подтверждают такой анализ.   -  person IRTFM    schedule 08.03.2016
comment
Вы должны сделать свой вопрос самодостаточным. Рано или поздно вы разорвете ссылку на свои данные, и этот вопрос будет менее полезен для будущих посетителей.   -  person Frank    schedule 09.03.2016


Ответы (1)


Функция cox.zph в пакете выживания проверяет пропорциональность. Обратите внимание, что использование «Тип службы» в качестве имени столбца создает проблемы с программированием, которых можно легко избежать, разрешив замену пробелов точками, как действие по умолчанию с read.table:

data <- read.table(url("http://www.stat.ufl.edu/~winner/data/bizmort.dat"), col.names=c("Service Type","Years",  "Censor")
# Also note that the censoring indicatior is reversed so will use 1-Censor
require(survival)

cox <- coxph(Surv(Years, 1-Censor) ~ factor(Service.Type), data=data )
# The test fro proportionality:

> cox.zph(cox)
                         rho chisq     p
factor(Service.Type)2 0.0306  0.98 0.322
factor(Service.Type)3 0.0429  1.91 0.167
GLOBAL                    NA  2.33 0.312
person IRTFM    schedule 08.03.2016