当前位置: 首页 > news >正文

R语言实现随机生存森林(2)

library(survival)
library(randomForestSRC)
help(package="randomForestSRC")
#构建普通的随机生存森林
data(cancer,package="survival")
lung$status<-lung$status-1
rfsrc.fit1 <- rfsrc(Surv(time, status) ~ ., lung,ntree = 100,block.size = 1,seed=123)
plot.rfsrc(rfsrc.fit1)+title("误差曲线")#绘制误差曲线
plot.survival(rfsrc.fit1)+title("生存估计")#绘制生存估计:1、每个个体的生存估计2、Brier评分3、连续秩概率分数(CRPS)=Brier分数/时间。4、个体死亡率与观察时间关系图
plot.survival.rfsrc(rfsrc.fit1)
1-rfsrc.fit1$err.rate[rfsrc.fit1$ntree]#C指数0.5761229
#与Cox回归对比C指数
options("na.action")
lung<-na.omit(lung)
cox1<-coxph(Surv(time, status)~.,lung)
1-get.cindex(lung$time,lung$status,predict(cox1,lung))#0.6482742

#构建随机生存森林模型-竞争风险
data(wihs, package = "randomForestSRC")
table(wihs$status)
rfsrc.fit2 <- rfsrc(Surv(time, status) ~ ., wihs,ntree = 100)
plot.competing.risk(rfsrc.fit2)
1-rfsrc.fit2$err.rate[rfsrc.fit2$ntree]#0.6079373
#进行预测新数据/生成生存率预测
pred <- predict(rfsrc.fit2, newdata = wihs, OOB = TRUE, prediction = TRUE, importance = TRUE, proximity = TRUE, maxnodes = 10)

 

#绘制校准曲线
library(riskRegression)
rf_fit<-riskRegression::Score(list("fit1" = rfsrc.fit1,"fit2"=cox1),formula = Surv(time, status) ~ 1,data = lung, # 测试集plots = "calibration",conf.int = T,B = 500, #重抽样500次 #交叉验证M = 40,#抽样样本量 #交叉验证times=c(100) # 时间)
args(plotCalibration)
riskRegression::plotCalibration(rf_fit,cens.method="local",xlab = "Predicted Risk",ylab = "Observerd RISK",col=c("red","blue"),legend=T)

 

#实现随机生存森林参数调优 
tune(Surv(time, status) ~ ., lung,seed=123)#最佳nodesize4     mtry2
#筛选重要预测因素
var<-var.select(object=rfsrc.fit1,method="md",#变量筛选方法conservative="low"#筛选阈值)
top<-var$topvars
#变量重要性
vimp(rfsrc.fit1) %>% plot

 

http://www.lryc.cn/news/124310.html

相关文章:

  • 泛型类接口方法学习
  • Docker自动化部署安装(十)之安装SonarQube
  • [QT/C++]如何得知鼠标事件是由触摸事件转换而来的,使得鼠标触摸事件分离
  • 消防态势标绘工具,为消防基层工作助力
  • 网络协议栈-基础知识
  • [Mongodb 5.0]聚合操作
  • Shell 变量
  • SRM订单管理:优化供应商关系
  • Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法二)
  • 简化Gerber数据传输过程丨GC PowerPlace简介
  • rust关于项目结构包,Crate和mod和目录的组织
  • 如何微调优化你的ChatGPT提示来提高对话质量
  • 微信小程序实现下拉刷新
  • 一、编程规约
  • pytest数据驱动 pandas
  • Modbus工业RFID设备在自动化生产线中的应用
  • 见证马斯克的钞能力,AI.com再次易主,OpenAI投掷1100万美金购买AI.com刚满五个月
  • linux vi/vim
  • 算法与数据结构-哈希算法
  • 企业做直播时如何选择适合自己的直播平台?
  • 【JavaWeb】实训的长篇笔记(下)
  • linux bash快捷键
  • KCC@广州开源读书会广州开源建设讨论会
  • 搜文本搜位置搜图片,1小时玩转阿里云 Elasticsearch
  • 从三个主要需求市场分析,VR全景创业的潜力发展
  • k8s 自身原理 2
  • 解决hbase节点已下线,但在status中显示为dead问题
  • 深入理解Python装饰器:解析高阶函数与代码美学
  • 构建之法 - 软件工程实践教学:每天都向前推进一点点
  • CSS transform:rotate;无效问题