R生存包;根据日志(时间)绘制日志(-log(生存))

时间:2014-03-15 10:42:44

标签: r survival-analysis

我试图使用R生存包来生成log(-log(survival))对日志(时间)的图

(这有时被推荐用于目视检查加速寿命或比例危险特性的方法)。

" fun=cloglog" plot.survfit中的选项无法产生我期望的结果。

使用" gehan"来自" MASS"的数据库:

首先,对于治疗组和对照组,这是一个简单的生存时间图:

> data(gehan)
> gehansurv=Surv(gehan$time, gehan$cens)
> plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"))

enter image description here

好到目前为止。现在,如果我使用fun=cloglog选项,plot.survfit的文档会让我觉得我会log(-log(survival))log(time)得到一个情节:

  

乐趣

     

定义生存曲线变换的任意函数。例如fun = log   是绘制对数生存曲线的另一种方法(但是用log(S)标记的轴   ())和fun = sqrt将在平方根比例上生成曲线。四经常使用   转换可以使用字符参数来指定:" log"是相同的   使用log = T选项," event"绘制累积事件(f(y)= 1-y)," cumhaz"绘制   累积危险函数(f(y)= -log(y))和" cloglog"创建一个免费的日志   生存图(f(y)= log(-log(y))以及x轴的对数标度)。

然而,当我尝试这个时,它似乎没有使用log(-log(y))函数,因为显示的曲线仍然在减少(因为原始生存曲线正在减少,所应用的{{1}函数是递减函数,结果f(y)=log(-log(y))曲线应该增加)。

此外,x轴未进行对数缩放:

log(-log(survival))

enter image description here

我可以通过定义自己的> plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun=cloglog) 函数并使用log(-log())选项来获得我想要的内容:

log="x"

enter image description here

所以:上面我做错了什么(或者我如何误解> myfun=function(p){return(log(-log(p)))} > plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun=myfun, log="x") 文档)?

补充问题:plot.survfit选项如何更改横轴上的缩放,因为文档声称"fun="会在"fun=cloglog"面对"fun"的参数为函数应用于垂直变量?

1 个答案:

答案 0 :(得分:8)

在plot.survfit的cloglog周围加上引号。

library(survival)
library(MASS)
data(gehan)
gehansurv=Surv(gehan$time, gehan$cens)
plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun="cloglog")

enter image description here