首页 > 编程知识 正文

ggdca决策曲线,r语言cox回归森林

时间:2023-05-04 19:47:19 阅读:270172 作者:279

我们既往已经在文章《手把手教你使用R语言制作临床决策曲线》介绍了怎么使用rmda包制作了临床决策曲线,但是rmda包只能制作logistic回归模型的临床决策曲线,原来制作COX回归模型的stdca包R上下载不到。有粉丝留言向我推荐了ggDCA包,今天来演示一下怎么使用ggDCA包制作COX回归模型临床决策曲线。
ggDCA包由我们R语言大神,南方医科大学的博导Y叔制作,使用ggDCA包可以制作logistic回归模型和COX回归模型临床决策曲线,作图很简单,其中也让我体会到了制图的原理,目前ggDCA还在继续完善中。

下面我们来演示一下,还是既往乳腺癌的数据。
先导入包和数据

library(ggDCA)library(rms)library(foreign)bc <- read.spss("E:/r/test/Breast cancer survival agec.sav", use.value.labels=F, to.data.frame=T)


我们先来看看数据:
age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。

先把部分用到的分类变量转换一下并删除缺失值

bc$histgrad<-as.factor(bc$histgrad)bc$er<-as.factor(bc$er)bc$pr<-as.factor(bc$pr)bc$ln_yesno<-as.factor(bc$ln_yesno)names(bc)bc <- na.omit(bc)

数据集分为训练集和验证集

set.seed(1)index <- sample(2,nrow(bc),replace = TRUE,prob=c(0.7,0.3))traindata <- bc[index==1,]testdata <- bc[index==2,]

然后使用训练集构建3个预测模型(随便建的)

#####生成3个模型f1<-cph(Surv(time,status)~age,traindata)f2<-cph(Surv(time,status)~er+histgrad+pr,traindata)f3<-cph(Surv(time,status)~er+histgrad+pr+age+ln_yesno,traindata)


开始绘制图形,不设时间的话默认中位数时间

d_train <- dca(f1)ggplot(d_train)###不设时间的话默认中位数时间


单个模型的3年生存率

d_train <- dca(f1, times=36)ggplot(d_train)


多个模型的5年生存率

d_train <- dca(f1,f2,f3, times=60)####多个模型5年后生存率ggplot(d_train)


多个模型的3年和5年生存率

d_train <- dca(f1,f2,f3, times=c(36,60))####多个模型3年和5年后生存率ggplot(d_train)


在验证集上多个模型的5年生存率

d_train <- dca(f1,f2,f3, times=60, new.data=testdata)


我对这种虚线有强迫症,感觉改为实线美观一点

d_train <- dca(f1,f2,f3, times=60)####多个模型5年后生存率ggplot(d_train,linetype=1)


logistic回归模型的做法和这个几乎一样,只是模型构建不同,制作非常简单。

更多精彩文章请关注公众号:零基础说科研

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。