这次给大家介绍CatPredi包,这个包不仅能计算结局为time to event ,而且还能对于结局变量为分类变量时确定连续自变量的截断值,并且支持截断值范围及个数选择,最重要的是他可以在拟合模型的前提下确定截断值,可以说在选择截断值这一数据处理上功能十分强大,不过这个包不能直接绘图,后续需借助其包的函数可视化。
优点:可以确定截断值的个数及取值范围;可以在拟合COX模型前提下寻找截断值,即其截断值适用于多元回归;可以自由选择确定截断值的方法。
缺点:结果无法直接可视化;一次只能计算一个自变量的截断值。
推荐指数:★★★★★ (五星)(后期结合gg系列完美解决)
library(survival)
library(survminer)
library(tidyverse)
library(CatPredi)
data(myeloma)
str(myeloma)
以下是主函数,所有形式参数均没有省略
res <- catpredi.survival (formula= Surv(time,event)~1,#截断值所在的方程,1代表进行单因素分析
cat.var="TP53", #截断值选择列
cat.points = 2,#构建几个最佳截断值,这里选择2个
data =myeloma , #数据集
method = "addfor",#选择构建最佳截断值方法
conc.index = "cindex", #最佳截断值确定的方法,还有一个cpe法
range = NULL,#截断值选择范围,这是设定默认全部范围
correct.index = T) #显示矫正C指数
summary(res)
plot(res)#绘制最佳截断值选择情况
后续进行图表绘制
df <- res[["data"]]#提取新数据集,最后一列为新加分组列
df$tp53cat <- df[,ncol(df)]#重命名列名称
df$tp53cat <- factor(df$tp53cat,labels = c("low","middle","high"))#根据数值高低分组
以下用新的列表画图展示
fit <- survfit(Surv(time, event) ~tp53cat, data = df)#拟合方程
ggsurvplot(fit,
data = df,
risk.table = TRUE,
pval = T)