1、 27 Number of trees: 800 Minimum terminal node size: 3 Average no. of terminal nodes: No. of variables tried at each split: Total no. of variables: 452 Analysis: RSF Family: surv Splitting rule: logrank Error rate: %发现直接使用随机森林得到的模型,预测误差很大,达到了%,进一步考虑使用随机森林模型进行变量选择,结果如下: $ Sample size: 52 Number of de
2、aths: 19 500 2 9 logrank *random* Number of random split points: 10 $topvars1 213821_s_at 219778_at204690_at220788_s_at202202_s_at6 211603_s_at213055_at219336_s_at37892_at一共选取了9个变量,同时误差只有%接下来,使用这些变量做cox回归,剔除模型中不显著()的变量,最终参与模型建立的变量共有4个。模型结果如下: exp(coef) exp(-coef) lower .95 upper .95218150_at 200914_
3、x_at 220788_s_at 201398_s_at 201719_s_at 202945_at 203261_at 203757_s_at 205068_s_at 最后选取六个变量拟合生存模型,绘制生存曲线如下:下面绘制ROC曲线,分别在训练集和测试集上绘制ROC曲线,结果如下:训练集:测试集:由于测试集上的样本过少,所以得到的AUC值波动大,考虑使用bootstrap多次计算训练集上的AUC值并求平均来测试模型的效果:AUC at 1 year:AUC at 3 year:AUC at 5 year:由此可以看到,随机森林通过删除贡献较低的变量,完成变量选择的工作,在测试集上具有较高的
4、AUC值,但是比lasso-cox模型得到的AUC略低。附录:load(/R/)library(survival)(10)i-sample(1:77,52)train-dati,test-dat-i,library(randomForestSRC)-rfsrc(Surv(time,status).,data = train, ntree = 800,mtry = 3, nodesize = 3,splitrule = logrank- (object=, vdv, method = , nrep = 50)$ in 1:$modelsize) indexi-which(names(dat)=$
5、topvarsi)data-dat,c(1,2,index)-datai,-data-i,-coxph(Surv(time,status).,data=train)train_data-train,c(1,2,which(summary$coefficients,5=+2)tset_data-test,c(1,2,which(summary$coefficients,5-coxph(Surv(time,status).,data=train_data)summarynames(coef)plot(survfit,xlab=Time,ylab = Proportion,main=Cox Mode
6、l,=TRUE,col=c(black,red),ylim=c,1)index0-numeric(length(coef)coefficients-coefname-gsub(,names(coefficients)for(j in 1:length(index0) index0j-which(names(dat)=namej)library(survivalROC)riskscore(dati,index0)%*% (coefficients)y1-survivalROC(Stime=train$time,status=train$status,marker=riskscore,=1,spa
7、n = *(nrow(train)y3-survivalROC(Stime=train$time,status=train$status,marker=riskscore,=3,span = *(nrow(train)y5-survivalROC(Stime=train$time,status=train$status,marker=riskscore,=5,span = *(nrow(train)a-matrix(data=c(y1y3y5,y1$AUC,y3$AUC,y5$AUC),nrow=3,ncol=2);aplot(y1$FP,y1$TP,type=l,xlab=False Pos
8、itive RateTrue Positive RateTime-dependent ROC curve,col=green) lines(y3$FP,y3$TP,col=,lty=2)lines(y5$FP,y5$TP,col=blue,lty=3)legend(bottomright,bty=n,legend = c(AUC at 1 year:AUC at 3 years:AUC at 5 years:),col=c(),lty=c(1,2,3),cex=abline(0,1)(dat-i,index0)%*% (coefficients)-survivalROC(Stime=test$
9、time,status=test$status,marker=riskscore,=1,span = *(nrow(train)-survivalROC(Stime=test$time,status=test$status,marker=riskscore,=3,span = *(nrow(train)-survivalROC(Stime=test$time,status=test$status,marker=riskscore,=5,span = *(nrow(train)-matrix(0,30,3)for (c in 1:30) i train test train_data tset_data names(coef) index0 coefficients name for(j in 1: riskscore y1 y3 y5 ac,-c(y1$AUC,y3$AUC,y5$AUC)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2