Kaplan-Meier曲线下面积的时间间隔

时间:2018-01-15 22:28:29

标签: r survival-analysis

我想在一段时间内计算Kaplan-Meier曲线下的面积。我知道我可以计算从0到t的曲线下面积,也就是用library(survival) km <- survfit(Surv(futime, fustat) ~ 1, data = ovarian) print(km, rmean = 600) 函数计算的平均生存时间:

{{1}}

但是,我喜欢的是Kaplan-Meier曲线下一段时间间隔的区域,例如:从t1到t2。 有没有办法在Kaplan Meier曲线下截断区域的计算? 任何建议都会受到欢迎!

3 个答案:

答案 0 :(得分:1)

生存曲线“周围”的方差非常类似于二项式过程中比例的方差。在您的情况下,您显然可以计算直到t1的数据的方差。因此,在t1处截断数据,然后计算t2的方差。

像@Oka一样,我想知道为什么要使用AUC,但是后来我意识到AUC只是完整KM曲线的“预期寿命”,单位是“年”或其他时间单位。

 str(ovarian)
'data.frame':   26 obs. of  6 variables:
 $ futime  : num  59 115 156 421 431 448 464 475 477 563 ...
 $ fustat  : num  1 1 1 0 1 0 1 1 0 1 ...
 $ age     : num  72.3 74.5 66.5 53.4 50.3 ...
 $ resid.ds: num  2 2 2 2 2 1 2 2 2 1 ...
 $ rx      : num  1 1 1 2 1 1 2 2 1 2 ...
 $ ecog.ps : num  1 1 2 1 1 2 2 2 1 2 ...
 t1 = 400;  t2 = 700

 km <- survfit(Surv(futime, fustat) ~ 1, data = ovarian)
 print(km, rmean = 400)
 #---------------
Call: survfit(formula = Surv(futime, fustat) ~ 1, data = ovarian)

         n     events     *rmean *se(rmean)     median    0.95LCL    0.95UCL 
      26.0       12.0      355.6       18.5      638.0      464.0         NA 
    * restricted mean with upper limit =  400 


 km2 <- survfit(Surv(futime, fustat) ~ 1, 
                 data = ovarian[ !(ovarian$futime <=400), ])
 print(km2, rmean = 700)
#-----------------
Call: survfit(formula = Surv(futime, fustat) ~ 1, data = ovarian)

         n     events     *rmean *se(rmean)     median    0.95LCL    0.95UCL 
      26.0       12.0      532.2       41.1      638.0      464.0         NA 
    * restricted mean with upper limit =  700 

答案 1 :(得分:0)

所以您知道如何获得AUC(0-t1)AUC(0-t2)。正如@missuse在其评论中指出的,AUC(t1-t2) = AUC(0-t2) - AUC(0-t1)

我不确定是否可以为此获得方差,因为从技术上讲,您有一条线和该线下的一个区域(AUC)。

1 )对Kaplan-Myer绘制95%CI

2 )计算最高CI的AUC(t1-t2)

3 )为较低的CI计算AUC(t1-t2)

4 )用与表示正常95%置信区间相同的方式将结果表示为范围。

那行得通吗?还有:为什么要使用KM曲线下的面积?因为,正如@ 42-所指出的那样,您将以某些时间单位达到“预期寿命”,并且您不需要KM就能达到目标(?)

答案 2 :(得分:0)

实际上,由于 "dependencies": { "@angular/common": "^7.2.2", "@angular/core": "^7.2.2", "@angular/forms": "^7.2.2", "@angular/http": "^7.2.2", "@angular/platform-browser": "^7.2.2", "@angular/platform-browser-dynamic": "^7.2.2", "@angular/router": "^7.2.2", "@ionic-native/core": "^5.0.0", "@ionic-native/splash-screen": "^5.0.0", "@ionic-native/status-bar": "^5.0.0", "@ionic/angular": "^4.1.0", "cordova-android": "7.1.4", "cordova-plugin-device": "^2.0.2", "cordova-plugin-ionic-keyboard": "^2.1.3", "cordova-plugin-ionic-webview": "^3.1.2", "cordova-plugin-splashscreen": "^5.0.2", "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-whitelist": "^1.3.3", "core-js": "^2.5.4", "rxjs": "~6.3.3", "zone.js": "~0.8.29" }包中的surv2sample,我最终想出了如何计算t1和t2之间的AUC的方差。通过重新采样来实现。

surv2sampleComp