cox版本的Boruta+SHAP分析(心力衰竭数据集)

news2024/12/24 8:59:05

Cox版本的Boruta+SHAP分析(心力衰竭数据集)

Boruta算法是变量筛选的有力工具,而SHAP分析是观察预测变量与结局变量间关系的不错的方法,在传统的分析方法的基础上提供了一个全新的视角。Boruta算法+SHAP分析,正在逐渐成为一种流行的分析策略。
COX分析是医学分析中最重要的一种类型,分类结局中纳入了时间因素,较单纯的二分类结局能够提供更多的信息,比如某变量对于结局的贡献随时间是如何变化的?Boruta+SHAP的分析策略也可以用在Cox分析中,并且展示了一些cox分析独特的特点。

1. Boruta算法进行变量筛选代码

这部分还是使用Boruta包,如图中仅作稍许变化即可。

library(Boruta)
library(survival)
set.seed(1)

Y = Surv(data$time, data$DEATH_EVENT)
boruta_obj<-Boruta(y=Y,x=data[,c(1:11)],doTrace=0,ntree=500,pValue=0.01)
print(TentativeRoughFix(boruta_obj))#分两类
print(boruta_obj)#三类,包含怀疑的数据

2. SHAP分析代码

参考treeshap包的代码,一键运行可以到和鲸社区相关项目查看。

library(tidyverse)
library(treeshap)
#先转成data.table格式
data <- data.table::data.table(data[,c('age','ejection_fraction','serum_creatinine','serum_sodium','time','DEATH_EVENT')])
surv_cols <- c("DEATH_EVENT", "time")
feature_cols <- colnames(data)
#这里比较少见的函数的操作,属于data.table内容
train_x <- model.matrix(
        ~ -1 + .,
        data[, .SD, .SDcols = setdiff(feature_cols, surv_cols[1:2])]
        )
train_y <- survival::Surv(
        event = (data[, get("DEATH_EVENT")] %>%
        as.character() %>%
        as.integer()),
        time = data[, get("time")],
        type = "right"
        )
rf <- ranger::ranger(
        x = train_x,
        y = train_y,
        data = data,
        max.depth = 10,
        num.trees = 10
        )
unified_model_risk <- ranger_surv.unify(rf, train_x, type = "risk")#"risk"type计算累积风险的sum,
shaps <- treeshap(unified_model_risk, train_x)
# compute shaps for 3 selected months of followup points
unified_model_surv <- ranger_surv.unify(rf, train_x, type = "survival", time = c(36, 60, 120))
shaps_surv <- treeshap(unified_model_surv, train_x)

3. 心力衰竭数据集分析的部分结果

  • 四个变量对于心力衰竭的结局有所贡献,最重要的是ejection_fraction,接下来我们单独考查这一个指标。
    在这里插入图片描述
  • ejection_fraction与心力衰竭的关系,30以下是有风险的,越低风险越大。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0d34c84b396c43a58513a946f6a7029e.png在这里插入图片描述
  • 年龄与心力衰竭的关系
    在这里插入图片描述
    分析的结果展现了一些心力衰竭相关因素的变化,还可以指定时间点,对相关的因素进行更加细致的考察。但是,因为使用的数据集是公开的数据集,我们并不确定来源的可靠性,所以并不确定所展示相关关系的准确性,而只做技术上的讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【IT运维入门(ITHW)系列】之「快速部署」第二期清单(持续更新)

ITHW是Information Technology Hello World的缩写简拼。意在提供IT领域的入门相关知识&#xff0c;近期给大家带来的是主流技术选型的快速部署系列&#xff0c;意在最大程度地简化部署过程&#xff0c;以便能快速体验或测试相关技术选型。 「快速部署」第一期清单 ITHW快捷部署…

鸿蒙入门10-CheckBoxGroup组件

复选框群组 用于控制多个复选框全选或者不全选状态 参数 参数形式 &#xff1a; CheckboxGroup( options?: { group?: string } ) 创建复选框群组&#xff0c;可以用于控制群组内的 CheckBox 成员 全选 或者 不全选 相同 group 的 CheckBox 和 CheckBoxGroup 为同一群组 参…

java生成数据库数据到excel当做下拉选择,copy就完事~

背景&#xff1a;由于需要下载模板&#xff0c;模板包含下拉选择框&#xff0c;但是下拉选择框不想手写&#xff0c;并且需要从数据库读取&#xff0c;由于直接设置excel会有单元格最大255个字符长度限制&#xff0c;所以用到以下部分代码。 思路&#xff1a;由于数据模板在sh…

设计专家教你:3步轻松完成导航设计!

为了实现网页或应用程序的高可用性&#xff0c;UI导航是必不可少的。设计UI导航并不容易。UI导航可以根据需要或要求包含任何数量的项目&#xff0c;引导用户与产品互动&#xff0c;实现目标动作或隐藏的设计组合。在设计UI导航时&#xff0c;应注意最终用户的需求&#xff0c;…

前端crypto-js, 文件加密,判断相同文件、图片(MD5,SHA256)

文章目录 前情提要应用场景实战解析最后前情提要 大家好,今天我们来接触一个库crypto-js 没错,上面是有道翻译的截图,为了我们得到的信息更权威,这个库是用来加密的,但介绍是说,已经停止维护,但并不影响我们在前端项目中的使用,所以学学也没有坏处 应用场景 判断图片…

Android集成Sentry实践

需求&#xff1a;之前使用的是tencent的bugly做为崩溃和异常监控&#xff0c;好像是要开始收费了&#xff0c;计划使用开源免费的sentry进行替换。 步骤&#xff1a; 1.修改工程文件 app/build.gradle apply plugin: io.sentry.android.gradle sentry {// 禁用或启用ProGua…

笔试狂刷--Day2(模拟高精度算法)

大家好,我是LvZi,今天带来笔试狂刷--Day2(模拟高精度算法) 一.二进制求和 题目链接:二进制求和 分析: 代码实现: class Solution {public String addBinary(String a, String b) {int c1 a.length() - 1, c2 b.length() - 1, t 0;StringBuffer ret new StringBuffer()…

【Node.js】01 —— fs模块全解析

&#x1f525;【Node.js】 fs模块全解析 &#x1f4e2; 引言 在Node.js开发中&#xff0c;fs模块犹如一把万能钥匙&#xff0c;解锁着整个文件系统的操作。从读取文件、写入文件、检查状态到目录管理&#xff0c;无所不能。接下来&#xff0c;我们将逐一揭开fs模块中最常用的那…

一二三应用开发平台使用手册——系统管理-用户组-使用说明

概述 在RBAC模型中&#xff0c;资源、角色、用户三个关键元素&#xff0c;构成权限体系。在平台设计和实现的时候&#xff0c;以下几个核心问题思考如下&#xff1a; 角色&#xff0c;单层平铺还是树形结构&#xff1f; 在小型应用中&#xff0c;角色数量有限的情况下&#x…

JavaScript变量及数据类型

目录 概述&#xff1a; 变量&#xff1a; 前言&#xff1a; 变量的命名&#xff1a; 定义变量&#xff1a; 为变量赋值&#xff1a; 变量提升&#xff1a; let和const关键字&#xff1a; JS数据类型&#xff1a; 前言&#xff1a; typeof操作符&#xff1a; JS基本…

vite(vue3)配置内网ip访问的方法步骤

如果没有进行配置&#xff0c;运行项目之后&#xff0c;看到的访问地址是本地访问地址&#xff0c;其他人访问不了。 如下&#xff1a; 一、配置 “ vite.config.ts ” 文件 server: {host: 0.0.0.0 }, 如图所示&#xff1a; 添加 server 配置后保存 “ vite.config.ts ” 文…

adb工具使用

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

银河麒麟安装OpenJDK

# 更新软件包列表&#xff08;根据系统的实际情况&#xff0c;可能不需要这一步&#xff09; sudo apt-get update # 安装OpenJDK sudo apt-get install openjdk-8-jdk

【JAVA面试题】探索多线程同步:ReentrantLock与synchronized的对比解析

程序员如何搞副业&#xff1f; 文章目录 程序员如何搞副业&#xff1f;强烈推荐引言&#xff1a;ReentrantLock介绍可重入性&#xff08;Reentrancy&#xff09;&#xff1a;公平性&#xff08;Fairness&#xff09;&#xff1a;条件变量&#xff08;Condition&#xff09;&…

Flume在大数据集群下的配置以及监控工具Ganglia的部署安装

前提&#xff1a;需要有三台虚拟机&#xff08;hadoop102,103,104&#xff09;配置好相关基础环境 安装 将安装包上传到/opt/software中 tar -zxf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/修改 apache-flume-1.9.0-bin 的名称为 flume mv /opt/module/…

交易猫、闲鱼、转转圈号客服台V4-V5源码

新增转转订单客服、闲鱼。各种反炸客服&#xff0c;更换了UI&#xff01;

RAG技术从入门到精通

LLM之RAG技术从入门到精通 RAG技术介绍诞生背景定义 RAG与微调RAG流程架构RAG三种范式Naive RAGAdvanced RAG预检索过程嵌入后期检索过程RAG管道优化 Modular RAG RAG工作流程企业知识问答知识库RAG评估评价方法独立评估端到端评估 关键指标和能力 RAG优化RAG在企业知识库应用下…

OpenHarmony多媒体-mp3agic

简介 mp3agic 用于读取 mp3 文件和读取/操作 ID3 标签&#xff08;ID3v1 和 ID3v2.2 到 ID3v2.4&#xff09;,协助开发者处理繁琐的文件操作相关&#xff0c;多用于操作文件场景的业务应用。 效果展示&#xff1a; 下载安装 ohpm install ohos/mp3agicOpenHarmony ohpm环境配…

MySQL的事务相关的语句的使用

MySQL的事务相关的语句的使用 事务是数据库管理系统执行过程中的一个程序单位&#xff0c;由一个或多个数据库操作组成。MySQL作为一款流行的关系型数据库管理系统&#xff0c;支持事务处理&#xff0c;允许用户定义一系列的操作&#xff0c;这些操作要么完全执行&#xff0c;…

西安大秦时代

西安大秦时代 大秦软件 公司简介 about us 西安大秦时代是技术型公司&#xff0c;技术领先是我们赖以生存的 基础&#xff01;服务是技术的延续&#xff0c;让客户满意&#xff0c;是我们服务的目 标&#xff0c;也是公司的生存之本&#xff01; 产品服务 西安大秦时代拥有…