Вы можете сделать это, используя набор данных DIVAT из пакета iptwsurvival:
##Generate ID
DIVAT$ID<- 1:nrow(DIVAT)
Мы можем рассчитать IPTW как средний лечебный эффект, а не как средний лечебный эффект среди обработанных
DIVAT$p.score <- glm(retransplant ~ age + hla, data = DIVAT,
family = "binomial")$fitted.values
DIVAT$ate.weights <- with(DIVAT, retransplant * 1/p.score + (1-retransplant)* 1/(1-p.score))
Чем мы можем выполнить регрессию Кокса
####COX without weight
coxph(Surv(times, failures)~ retransplant, data=DIVAT)->fit
summary(fit)
Добавить вес довольно просто
###COX with weight naive model
coxph(Surv(times, failures)~ retransplant, data=DIVAT, weights = ate.weights)->fit
summary(fit)
###COX with weight and robust estimation
coxph(Surv(times, failures)~ retransplant + cluster(ID), data=DIVAT, weights = ate.weights)->fit
summary(fit)
Однако, таким образом, оценка стандартной ошибки является предвзятой (пожалуйста, см. Остин, ПитерC. «Оценка дисперсии при использовании обратной вероятности взвешивания лечения (IPTW) с анализом выживаемости». Статистика в медицине 35.30 (2016): 5642-5655.).Остин предложил положиться на оценщик начальной загрузки.Однако я тоже сложен, так как не могу найти способ провести такой анализ.Если вы нашли ответ, пожалуйста, дайте мне знать.