楼主: moonstone
8338 0

[学习分享] 无法计算中位生存期的生存资料,是否可以继续采用COX回归 [推广有奖]

已卖:1872份资源

讲师

74%

还不是VIP/贵宾

-

威望
0
论坛币
10498 个
通用积分
369.2883
学术水平
160 点
热心指数
169 点
信用等级
124 点
经验
274346 点
帖子
237
精华
1
在线时间
520 小时
注册时间
2007-4-27
最后登录
2024-12-6

楼主
moonstone 发表于 2017-1-10 10:06:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
目前遇到的一个问题是:
当生存资料中死亡事件较少时,出现无法计算中位生存期的情况。但是中位生存期是寿命表分析的重要指标,如果无法计算中位生存期,从而可能会出现以下问题,以供大家讨论:


1、这种情况下,cox回归是否也就理论不充分,从而无法采用cox回归对这类数据进行多因素分析。
2、如果中位生存期无法计算,是否有办法计算60%位生存时间,70%位生存时间等,进而采用中位生存期的类似方法进行比较。

如果对R中进行生存资料分析的基础程序包不是很熟悉的话,可以先看看之前的一个帖子:
https://bbs.pinggu.org/thread-4127756-1-1.html

  1. library(stats)
  2. library(survival)

  3. ## Information of data

  4. data(package = "survival")  # List datasets in survival package
  5. help(bladder1)              # Description of data
  6. head(bladder1)              # Show first 6 rows
  7. str(bladder1)               # Check type of variables
  8. summary(bladder1)           # Statistical summary

  9. ## Get the final data with nonzero follow-up
  10. bladder1$time <-
  11.   as.numeric(bladder1$stop -
  12.                bladder1$start)
  13. summary(bladder1$time)
  14. bladder1 <- subset(bladder1,status<=1 & time>0)

  15. table(bladder1$status)

  16. ## Change the values of status
  17. set.seed(2017)
  18. bladder1$status <-
  19.   abs(bladder1$status-1)*
  20.   round(rbinom(264, 1, 0.2),digits = 0)

  21. table(bladder1$status)

  22. ## Create overval Kaplan-Meier curve
  23. km.as.one <- survfit(Surv(time, status) ~ 1, data = bladder1,
  24.                      conf.type = "log-log")

  25. ## Create Kaplan-Meier curve stratified by treatment
  26. km.by.trt <- survfit(Surv(time, status) ~ treatment, data = bladder1,
  27.                      conf.type = "log-log")

  28. ## Show simple statistics of Kaplan-Meier curve
  29. km.as.one
  30. km.by.trt

  31. ## See survival estimates at given time (lots of outputs)
  32. summary(km.as.one)
  33. summary(km.by.trt)

  34. ## Plot Kaplan-Meier curve without any specification
  35. plot(km.as.one)
  36. plot(km.by.trt)

  37. ## Create a simple cox regression and estimate HR:
  38. model1 <-coxph(Surv(time, status) ~ treatment,
  39.                data=bladder1)

  40. ## Model output
  41. summary(model1)                    # Output summary information
  42. confint(model1)                    # Output 95% CI for the coefficients
  43. exp(coef(model1))                  # Output HR (exponentiated coefficients)
  44. exp(confint(model1))               # 95% CI for exponentiated coefficients

  45. ## Check for violation of proportional hazard (constant HR over time)
  46. model1.zph <- cox.zph(model1)
  47. model1.zph                    
  48. ## Note: all p values >0.05

  49. ## Displays a graph of the scaled Schoenfeld residuals, along with a smooth curve.
  50. plot(model1.zph)


  51. ## Plot Kaplan-Meier curve with rms package
  52. library(rms)

  53. ## Plot Kaplan-Meier curve without any specification
  54. fit1 <- npsurv(Surv(time, status) ~ 1, data = bladder1)
  55. fit2 <- npsurv(Surv(time, status) ~ treatment, data = bladder1)
  56. survplot(fit1)
  57. survplot(fit2)

  58. ## Plot Kaplan-Meier curve Without confidence interval
  59. survplot(fit1, conf = "none")
  60. survplot(fit2, conf = "none")
复制代码


说明:程序中的“## Change the values of status” 这一段是为了呈现文初出现的问题对数据进行的修改

重要结果截图
截图1.jpg

可以看到,不论是总体的中位生存时间还是按照治疗方式分组后的中位生存时间上限均无法估计,而且treatment=pyridoxine  组的中位生存期也无法估计

其原因可以从详细的寿命表数据得到部分解释:
截图2.jpg

也即不论哪一组人群,出现 survival < 0.5 的事件数 均 < 2例,因此不够估计中位生存期的上限,同时,treatment=pyridoxine组,当第二个人出现事件时,survival  = 0.632 > 0.5, 因此无法估计中位生存期。

但是即使出现这些情况,也不影响后续的cox分析,甚至也不违背比例风险假设。从而可能提示以下两点:
1、寿命表分析对数据还是有比较严格的要求,但是我们的教科书似乎并没有提到这一条件。目前我也不知道这一条件应该如何定义。
2、进一步验证cox分析的参数估计不受中位生存期的影响,而主要取决于生存时间的秩序,而不是生存时间的数值大小。


当然这似乎只是很肤浅的认识,希望大家跟帖讨论。谢谢,^_^
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:无法计算 Cox information Statistical Description 资料

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 09:29