我正在尝试使用R生存包,以针对日志(时间)生成log(-log(survival))
的图
(有时建议将其作为一种目视检查以延长使用寿命或成比例的危险特性的方法)。
fun=cloglog
中的“ plot.survfit
”选项没有产生我期望的效果。
使用“ MASS”库中的“ gehan”数据:
首先,这是治疗组和对照组的生存率与时间的关系图:
data(gehan, package="MASS")
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选项,“事件”绘制累积事件(f(y)= 1-y),“ cumhaz”绘制累积危害函数(f(y)= -log(y)),而“ cloglog”创建一个互补的log-log生存图(f(y)= log(-log(y))以及x轴的对数刻度)。
但是,当我尝试此操作时,它似乎没有使用log(-log(y))
函数,因为显示的曲线仍在减小(因为原始生存曲线正在减小,并且所应用的f(y)=log(-log(y))
函数是在减小的函数,所得的log(-log(survival))
曲线应会增加)。
此外,x轴也不是对数比例的:
library(VGAM)
plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun=cloglog)
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9tNFR3ZS5qcGcifQ==” alt =“在此处输入图像描述”>
我可以通过定义自己的log(-log())
函数并使用log="x"
选项来获得想要的东西:
> myfun=function(p){return(log(-log(p)))}
> plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun=myfun, log="x")
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9jcDJDZS5qcGcifQ==” alt =“在此处输入图像描述”>
所以:上面我在做什么错(或者我是如何曲解plot.survfit
文档)?
[补充问题:"fun="
选项将如何改变横轴的缩放比例,正如文档声称"fun=cloglog"
会在其表面显示"fun"
的参数是应用于垂直变量的函数一样?
在plot.survfit的博客日志周围加上引号。
library(survival)
library(MASS)
data(gehan)
gehansurv=Surv(gehan$time, gehan$cens)
plot(survfit(gehansurv ~ gehan$treat), col=c("black", "red"), fun="cloglog")
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9PWmNQbi5wbmcifQ==” alt =“在此处输入图像描述”>