SurvPlot() в "RMS": количество риска отображается для всей группы, а не для каждой кривой
Я строил кривые выживания, используя survplot{rms}
, Тем не менее, когда я использовал n.risk = TRUE
Чтобы построить график таблицы рисков, R дал мне номер всего набора данных, а не для каждой кривой, и я не могу понять, почему.
# initialize survival commands in R
survive <- Surv(dat$dx_lastcontact_death_months, dat$event)
library(rms)
ff <- cph(survive ~ radiation, data = dat,x = T, y = T)
survplot(ff,radiation,conf.int = 0.95,
lty = c(1,1,1), col = c("red","blue","yellow"), xlab = "", ylab = "",
xlim = c(0,60), time.inc = 12, label.curves = F, n.risk = T)
Например, в момент времени 0 число риска должно быть 7442 3210 3042, теперь на графике отображается 13694, сумма трех групп. Может ли кто-нибудь помочь мне понять, где идет не так? Спасибо?
1 ответ
Решение
@WeehuangWong, возможно, правильно. Я получаю такой же вывод, как и вы, когда я использую первый пример в survplot
, но добавив strat()
Функция вокруг категориальной переменной приводит к ожидаемому выходному формату. Я тоже добавил surv=T
,
n <- 1000
set.seed(731)
age <- 50 + 12*rnorm(n)
label(age) <- "Age"
sex <- factor(sample(c('male','female'), n, TRUE))
cens <- 15*runif(n)
h <- .02*exp(.04*(age-50)+.8*(sex=='female'))
dt <- -log(runif(n))/h
label(dt) <- 'Follow-up Time'
e <- ifelse(dt <= cens,1,0)
dt <- pmin(dt, cens)
units(dt) <- "Year"
dd <- datadist(age, sex)
options(datadist='dd')
f <- cph(Surv(dt,e) ~ strat(sex), x=T,y=T, surv=T)
survplot(f, sex, label.curves = F, n.risk = T)