创建带有响应百分比和时间的反向Kaplan-Meier曲线

创建带有响应百分比和时间的反向Kaplan-Meier曲线,r,survival-analysis,inverse,hazard,R,Survival Analysis,Inverse,Hazard,我试图创建一个反向KM图,显示患者对药物治疗的反应时间 Time response 3 57 4 35 4 85 4 90 5 55 6 65 6 89 6 72 9 97 9 89 9 98 10 99 10 92 13 99 14 50 15 97 18 60 21 70 25 76 28 77 40 82 48 86 时间以天为单位,响应以百分比为单位。起初,我认为我可以尝试使用生存分析,但我认为一个危险的阴谋将更好

我试图创建一个反向KM图,显示患者对药物治疗的反应时间

Time    response
3   57
4   35
4   85
4   90
5   55
6   65
6   89
6   72
9   97
9   89
9   98
10  99
10  92
13  99
14  50
15  97
18  60
21  70
25  76
28  77
40  82
48  86
时间以天为单位,响应以百分比为单位。起初,我认为我可以尝试使用生存分析,但我认为一个危险的阴谋将更好地工作。我不知道该怎么办

这里有一个链接,指向一篇已发表的文章,第三个图显示了这一点。我还不是一个KMplot方面的专家,但是任何帮助和批评都将被高度赞赏


为了解决您的问题,我首先将您的数据重新组织为我习惯的生存数据。这是每个事件/审查一行。然后我拟合了一个生存模型并绘制了KM

dt <- as.data.frame(matrix(c(3,57
,4,35
,4,85
,4,90
,5,55
,6,65
,6,89
,6,72
,9,97
,9,89
,9,98
,10,99
,10,92
,13,99
,14,50
,15,97
,18,60
,21,70
,25,76
,28,77
,40,82
,48,86),ncol=2,byrow = TRUE))

colnames(dt) <- c("time","response")

#translate percentage of responders at each time to number of responders if we start with a population of 10000
dt$individuals <- round(10000*sapply((1:nrow(dt)),function(x){prod(dt[1:x,"response"]/100)}))

s <- data.frame(time = with(dt,rep(time, individuals))
                ,event = 1)

library(survival)

sobj <- Surv(s$time, s$event)
fit <- survfit(sobj ~ 1)
plot(fit, fun="event")

dt请在问题1)中添加数据的
dput()
,以便人们更容易复制和粘贴数据。2) 您尝试的代码示例,以及为什么它不是您想要的。而且,这和我以前见过的任何生存数据都不一样。其格式通常为
时间
审查
对,表示观察的时间以及事件是否发生(即患者是否有反应)(即观察期结束时无反应)。按照你的方式,很难知道该画什么,因为大多数时候都有多个百分比。我和巴克在一起。如果“百分比”是一个累积值,它应该是单调的。如果不是累积的。。。那么它是什么?你如何解释“百分比”值?我无法说出你的曲线图代表什么,因为你没有将该值解释为任何特定分母的百分比。我不确定你的响应变量的实际含义。我猜剩下的对治疗有反应的人口的百分比。如果没有,你应该澄清你的数据。啊,很抱歉-百分比是基于药物治疗的治疗反应,基于m蛋白值低于原始基线实验室值。好的,你的数据中的蛋白值在哪里?如果您正在寻找生存分析或危险,那么事件是什么?你能以某种方式从你的数据中构建一个生命表吗,就像我尝试过的那样?