之前做COX模型引入了4(A,B,C,D)个变量,最后做了一下其中一个变量(A)的生存曲线,即校正其他三个变量得到的一个变量的生存曲线。如图1
之后再R中用survminer包的ggadjustedcurves函数来做
ggadjustedcurves(fit, variable = NULL, data = NULL, reference = NULL,
method = "conditional", fun = NULL, palette = "hue",
ylab = "Survival rate", size = 1, ggtheme = theme_survminer(), ...)
结果如图二,两幅图截然不同。个人觉得spss分别计算了每个样本在A变量不同情况(A=1,A=2)下的生存概率,因为数了一下spss中两条线的死亡人数。然后survminer包的函数只是给了分层的A=1,A=2的情况下控制其他变量的结果,所以两条线不同。还没想到用R怎么做spss的图。
就在刚刚搞出来了~ggadjustedcurves的说明里边只写了strata设置,但是我们的分析并不是分层分析,我在这里纠结了很久。后来发现只要把strata去掉就可以,但是两幅图不太一样很接近,生存率还是有差异,这个没搞懂是计算方法还是什么的原因。
线条形状大体相同但是最后结尾的生存率有差异,spss所有的生存率全部以0截止,R按照最长生存时间的的病例的生存率来算,个人暂时觉得R合适点。
2020-5-20
继续搞问题
按照ggsurvplot作图来看,ggadjustedcurves差一个风险表。
先看一下ggadjustedcurves中的代码,作图的原始数据就是surv_adjustedcurves输出的表格。ggrisktable对于coxph不能用。
实话survminer中的所有函数我没看完,有没有做风险表的适不适合ggadjustedcurves我一概不知。按照我的思路ggsurvplot中肯定有risktable的制作相关内容,edit(ggsurvplot)既然要看源代码,那就把涉及到的东西都解释一下,ggsurvplot_combine:在同一绘图上合并多个survfit对象。例如,人们可能希望在同一张图上绘制无进展生存率和总生存率(也按治疗分配分层)。ggsurvplot_combine()为此提供了对ggsurvplot()函数的扩展。(贴的不想贴了,后边和risktable相关的几乎就没有,只有ggsurvplot_combine能沾上边)
挖出来ggsurvplot_combine看一下代码,看看能不能找到和risktable相关的。其实ggsurplot_combine中和risktable相关的东西很多。risktable细节设置应该就是在这里,ggsurvplot_combine结尾的res有图9部分,所以risktable具体作图是通过ggsurvtable
ggsurvtable源代码中的res结果会输出三个图,表明都与.plot_survtable相关,但是在代码里我没找到.plot_survtable(),去下载了source资源,在ggsurtable包中找到了相关设置。
这个太长了哈哈哈~
下午的时候不知道为什么我要这么一路跑到黑……
然后打算把ggadjustedcurves中的surv生存率转换成存活人数,然后带到ggsurvtable中做图。
5月22日
因为后期项目比较着急这个代码我就放弃了,不继续填坑了……用surv_adjustedcurves中的surv计算了存活人数,用PS做了个表2小时搞定了。如果偶遇想做这个的亲可以在.plot_survtable这个脚本里改改改~