我试图使用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"))
好到目前为止。现在,如果我使用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))
我可以通过定义自己的> plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun=cloglog)
函数并使用log(-log())
选项来获得我想要的内容:
log="x"
所以:上面我做错了什么(或者我如何误解> 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"
的参数为函数应用于垂直变量?
答案 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")