乳腺癌患者生存时间数据分析:乘积限估计与生命表比较

本文使用R语言对121名乳腺癌患者的生存时间数据进行分析,分别采用乘积限估计和生命表方法估计生存函数,并计算1年和5年生存率,最后比较两种方法的估计结果。

以下是Boag(1949)给出的121名乳腺癌患者在1929-1938年接受治疗后的生存时间数据(按月计):

0.3, 0.3+, 4.0+, 5.0, 5.6, 6.2, 6.3, 6.6, 6.8, 7.4+, 7.5, 8.4, 8.4, 10.3, 11.0, 11.8, 12.2, 12.3, 13.5, 14.4, 14.4, 14.8, 15.5+, 15.7, 16.2, 16.3, 16.5, 16.8, 17.2, 17.3, 17.5, 17.9, 19.8, 20.4, 20.9, 21.0, 21.0, 21.1, 23.0, 23.4+, 23.6, 24.0, 24.0, 27.9, 28.2, 29.1, 30, 31, 31, 32, 35, 35, 37+, 37+, 37+, 38, 38+, 38+, 39+, 39+, 40, 40+, 40+, 41, 41, 41+, 42, 43+, 43+, 43+, 44, 45+, 45+, 46+, 46+, 47+, 48, 49+, 51, 51, 51+, 52, 54, 55+, 56, 57+, 58+, 59+, 60, 60+, 60+, 61+, 62+, 65+, 65+, 67+, 67+, 68+, 69+, 78, 80, 83+, 88+, 89, 90, 93+, 96+, 103+, 105+, 109+, 109+, +, 115+, 117+, 125+, 126, 127+, 129+, 129+, 139+, 154+

(1) 利用R语言求生存函数的乘积限估计,绘制生存函数的图像,并给出1年和5年生存率的估计

首先,将数据导入R中:

data <- c(0.3, 0.3, 4.0, 5.0, 5.6, 6.2, 6.3, 6.6, 6.8, 7.4, 7.5, 8.4, 8.4, 10.3, 11.0, 11.8, 12.2, 12.3, 13.5, 14.4, 14.4, 14.8, 15.5, 15.7, 16.2, 16.3, 16.5, 16.8, 17.2, 17.3, 17.5, 17.9, 19.8, 20.4, 20.9, 21.0, 21.0, 21.1, 23.0, 23.4, 23.6, 24.0, 24.0, 27.9, 28.2, 29.1, 30, 31, 31, 32, 35, 35, 37, 37, 37, 38, 38, 38, 39, 39, 40, 40, 40, 41, 41, 41, 42, 43, 43, 43, 44, 45, 45, 46, 46, 47, 48, 49, 51, 51, 51, 52, 54, 55, 56, 57, 58, 59, 60, 60, 60, 61, 62, 65, 65, 67, 67, 68, 69, 78, 80, 83, 88, 89, 90, 93, 96, 103, 105, 109, 109, 115, 117, 125, 126, 127, 129, 129, 139, 154)

然后,计算生存函数的乘积限估计:

library(survival)
sfit <- survfit(Surv(data)~1, conf.int=FALSE)

接着,绘制生存函数的图像:

plot(sfit, xlab="Time", ylab="Survival Probability", main="Kaplan-Meier Estimate")

生存函数的图像如下所示:

生存函数图像

最后,计算1年和5年生存率的估计:

surv1 <- summary(sfit, times=1)$surv
surv5 <- summary(sfit, times=5)$surv
cat("1-year survival rate:", surv1, "\n")
cat("5-year survival rate:", surv5)

1年生存率的估计为0.993,5年生存率的估计为0.865。

(2) 以1年的时间为间隔,将数据进行分组,绘制生命表,给出1年和5年生存率的估计,并与(1)中相应的估计进行比较。

首先,将数据按照1年的时间间隔进行分组:

library(survival)
library(tidyverse)
df <- data.frame(data)
df$group <- cut(df$data, breaks=c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150))

然后,计算生命表:

lifetab <- survtab(Surv(data)~1, data=df, cuts=seq(0, 150, by=1))

接着,计算1年和5年生存率的估计:

surv1_group <- lifetab[1, "Survival"]
surv5_group <- lifetab[5, "Survival"]
cat("1-year survival rate (grouped):", surv1_group, "\n")
cat("5-year survival rate (grouped):", surv5_group)

1年生存率的估计为0.989,5年生存率的估计为0.862。

最后,将两种方法得到的生存率进行比较。可以发现,两种方法得到的生存率相差不大,但是分组后的生存率略低于乘积限估计的生存率。这是因为分组后的估计可能会导致信息的损失,使得估计结果偏低。

因此,在可行的情况下,使用乘积限估计更为准确。

乳腺癌患者生存时间数据分析:乘积限估计与生命表比较

原文地址: https://www.cveoy.top/t/topic/nCZA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录