当生存资料中死亡事件较少时,出现无法计算中位生存期的情况。但是中位生存期是寿命表分析的重要指标,如果无法计算中位生存期,从而可能会出现以下问题,以供大家讨论:
1、这种情况下,cox回归是否也就理论不充分,从而无法采用cox回归对这类数据进行多因素分析。
2、如果中位生存期无法计算,是否有办法计算60%位生存时间,70%位生存时间等,进而采用中位生存期的类似方法进行比较。
如果对R中进行生存资料分析的基础程序包不是很熟悉的话,可以先看看之前的一个帖子:
https://bbs.pinggu.org/thread-4127756-1-1.html
- library(stats)
- library(survival)
- ## Information of data
- data(package = "survival") # List datasets in survival package
- help(bladder1) # Description of data
- head(bladder1) # Show first 6 rows
- str(bladder1) # Check type of variables
- summary(bladder1) # Statistical summary
- ## Get the final data with nonzero follow-up
- bladder1$time <-
- as.numeric(bladder1$stop -
- bladder1$start)
- summary(bladder1$time)
- bladder1 <- subset(bladder1,status<=1 & time>0)
- table(bladder1$status)
- ## Change the values of status
- set.seed(2017)
- bladder1$status <-
- abs(bladder1$status-1)*
- round(rbinom(264, 1, 0.2),digits = 0)
- table(bladder1$status)
- ## Create overval Kaplan-Meier curve
- km.as.one <- survfit(Surv(time, status) ~ 1, data = bladder1,
- conf.type = "log-log")
- ## Create Kaplan-Meier curve stratified by treatment
- km.by.trt <- survfit(Surv(time, status) ~ treatment, data = bladder1,
- conf.type = "log-log")
- ## Show simple statistics of Kaplan-Meier curve
- km.as.one
- km.by.trt
- ## See survival estimates at given time (lots of outputs)
- summary(km.as.one)
- summary(km.by.trt)
- ## Plot Kaplan-Meier curve without any specification
- plot(km.as.one)
- plot(km.by.trt)
- ## Create a simple cox regression and estimate HR:
- model1 <-coxph(Surv(time, status) ~ treatment,
- data=bladder1)
- ## Model output
- summary(model1) # Output summary information
- confint(model1) # Output 95% CI for the coefficients
- exp(coef(model1)) # Output HR (exponentiated coefficients)
- exp(confint(model1)) # 95% CI for exponentiated coefficients
- ## Check for violation of proportional hazard (constant HR over time)
- model1.zph <- cox.zph(model1)
- model1.zph
- ## Note: all p values >0.05
- ## Displays a graph of the scaled Schoenfeld residuals, along with a smooth curve.
- plot(model1.zph)
- ## Plot Kaplan-Meier curve with rms package
- library(rms)
- ## Plot Kaplan-Meier curve without any specification
- fit1 <- npsurv(Surv(time, status) ~ 1, data = bladder1)
- fit2 <- npsurv(Surv(time, status) ~ treatment, data = bladder1)
- survplot(fit1)
- survplot(fit2)
- ## Plot Kaplan-Meier curve Without confidence interval
- survplot(fit1, conf = "none")
- survplot(fit2, conf = "none")
说明:程序中的“## Change the values of status” 这一段是为了呈现文初出现的问题对数据进行的修改
重要结果截图
可以看到,不论是总体的中位生存时间还是按照治疗方式分组后的中位生存时间上限均无法估计,而且treatment=pyridoxine 组的中位生存期也无法估计
其原因可以从详细的寿命表数据得到部分解释:
也即不论哪一组人群,出现 survival < 0.5 的事件数 均 < 2例,因此不够估计中位生存期的上限,同时,treatment=pyridoxine组,当第二个人出现事件时,survival = 0.632 > 0.5, 因此无法估计中位生存期。
但是即使出现这些情况,也不影响后续的cox分析,甚至也不违背比例风险假设。从而可能提示以下两点:
1、寿命表分析对数据还是有比较严格的要求,但是我们的教科书似乎并没有提到这一条件。目前我也不知道这一条件应该如何定义。
2、进一步验证cox分析的参数估计不受中位生存期的影响,而主要取决于生存时间的秩序,而不是生存时间的数值大小。
当然这似乎只是很肤浅的认识,希望大家跟帖讨论。谢谢,^_^


雷达卡



京公网安备 11010802022788号







