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

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在这里插入图片描述
  • 年龄与心力衰竭的关系
    在这里插入图片描述
    分析的结果展现了一些心力衰竭相关因素的变化,还可以指定时间点,对相关的因素进行更加细致的考察。但是,因为使用的数据集是公开的数据集,我们并不确定来源的可靠性,所以并不确定所展示相关关系的准确性,而只做技术上的讨论。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python代码格式化工具Black介绍

Black 是一个 Python 代码格式化工具&#xff0c;以其简洁和一致的格式化风格而闻名。它被设计为一个“零妥协”的代码格式化程序&#xff0c;意味着它会自动地将代码格式化为一种统一的风格&#xff0c;而不需要用户进行任何配置。Black 严格遵循 PEP 8 -- Python 的官方编码风…

笔试狂刷--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()…

甘特图:如何制定一个有效的产品运营规划?

做好一个产品的运营规划是一个复杂且系统的过程&#xff0c;涉及多个方面和阶段。以下是一些关键步骤和考虑因素&#xff0c;帮助你制定一个有效的产品运营规划&#xff1a; 1、明确产品定位和目标用户&#xff1a; 确定产品的核心功能、特点和优势&#xff0c;明确产品在市…

Ubuntu 22最新dockers部署redis哨兵模式,并整合spring boot和配置redisson详细记录(含spring boot项目包)

dockers部署redis哨兵模式&#xff0c;并整合spring boot 环境说明相关学习博客一、在docker中安装redis1、下载dockers镜像包和redis配置文件&#xff08;主从一样&#xff09;2、编辑配置文件3、启动redis&#xff08;主从一样&#xff09;4、进入容器测试&#xff08;主从一…

快速上手Jemter分布式压测实战和代码详细解析

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

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

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

每日OJ题_其它背包问题③_力扣377. 组合总和 Ⅳ(似包非包)

目录 力扣377. 组合总和 Ⅳ&#xff08;似包非包&#xff09; 解析代码 力扣377. 组合总和 Ⅳ&#xff08;似包非包&#xff09; 377. 组合总和 Ⅳ 难度 中等 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 t…

随着深度学习的兴起,浅层机器学习没有用武之地了吗?

深度学习的兴起确实在许多领域取得了显著的成功&#xff0c;尤其是那些涉及大量数据和复杂模式的识别任务&#xff0c;如图像识别、语音识别和自然语言处理等。然而&#xff0c;这并不意味着浅层机器学习&#xff08;如支持向量机、决策树、朴素贝叶斯等&#xff09;已经失去了…

【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Linux深造日志 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、nano1.1 打开文件&#xff1a;1.2 常用快捷键&#xff1a;1.3 其他功能&#xff…

PaddleSeg开始与搭建

因为使用的比较多,所以来总结一下。 先介绍一下,为什么用PaddleSeg 1、搭建模型更容易,和MMSeg相比,配置更加简单,容易上手 缺点是 1、目前版本还无法生成热力图,我看Paddle官方已经出比赛在解决这个问题了 2、和主流pytorch存在一定差别,模型迁移时需要熟悉两种配置;M…

DBA-现在应该刚刚入门吧

说来话长 在2023年以前&#xff0c;我的DBA生涯都是“孤独的”。成长路径除了毕业前的实习期有人带&#xff0c;后续几乎都是靠自学。如何自学&#xff0c;看视频、看文档、网上查阅资料、项目实战。 可能是学疏才浅 &#xff0c;一直都是在中小公司混&#xff0c;在中小公司通…

GNU Radio使用Python Block实现模块运行时间间隔获取

文章目录 前言一、timestamp_sender 模块二、timestamp_receiver 模块三、测试 前言 GNU Radio 中没有实现测量两个模块之间的时间测量模块&#xff0c;本文记录一下通过 python block 制作一个很简单的测时 block。 一、timestamp_sender 模块 使用 python block 做一个发送…

深入理解VGG网络,清晰易懂

深入理解VGG网络 VGG网络是深度学习领域中一个非常经典的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;由牛津大学的视觉几何组&#xff08;Visual Geometry Group&#xff09;提出。它在2014年的ImageNet挑战赛中取得了第二名的好成绩&#xff0c;并且在随后的许…

3ds Max2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 3ds Max是一款基于PC系统的强大3D建模、渲染和制作软件&#xff0c;广泛应用于游戏开发、影视后期制作、建筑设计、工业设计等多个领域。其拥有丰富的建模工具&#xff0c;可轻松创建逼真的三维场景和模型&#xff1b;同时&#…

揭秘!综合布线可视化管理软件如何助力集成商实现价值飞跃?

一、弱电集成商发展现状 近期小编通过与多家做弱电集成的朋友交流探讨了解到目前弱电集成商发展如同2024年国内大部分企业一样举步维艰&#xff0c;当然也有个别企业做的项目优质并且利润可观&#xff0c;但是整体不多&#xff0c;总结原因主要有以下几点&#xff1a; 工程项目…

【git】git ignore如何添加core/config.py忽略

在Git中&#xff0c;.gitignore文件用于指定不被Git追踪的文件和文件夹。要添加core/config.py文件到.gitignore中&#xff0c;你需要编辑.gitignore文件并添加以下行&#xff1a; core/config.py这行表示Git应该忽略名为config.py的文件&#xff0c;它位于core目录下。确保在…

【剪映专业版】17高质量视频如何导出

视频课程&#xff1a;B站有知公开课【剪映电脑版教程】 1.导出 目的&#xff1a;导出高质量的视频 如果没有音频及字幕的情况下&#xff0c;音频导出和字幕导出为灰色 2.视频导出 超清&#xff1a;1080P 注意&#xff1a;如果原始素材的分辨率为小于1080P&#xff0c;如果导…

算法:期望场景;鲁棒优化

部分代码 for i1:T stst[D_DGk(i)*min_P_DG<P_DGk(i)<D_DGk(i)*max_P_DG]; end for i2:T indicatorD_DGk(i)-D_DGk(i-1); rangei:min(T,iT_up-1); st st[D_DGk(range)>indicator]; end for i2:T indicatorD_DGk(i-1)-D_DGk(i); rangei:min(T…

Linux - Docker 安装 Nacos

拉取 Nacos 镜像 使用以下命令从 Docker Hub 拉取最新版本的 Nacos 镜像&#xff1a; docker pull nacos/nacos-server启动 Nacos 容器 使用以下命令启动 Nacos 容器&#xff1a; docker run -d \--name nacos \--privileged \--cgroupns host \--env JVM_XMX256m \--env M…

Darknet,看过很多篇,这个最清晰了

Darknet深度学习框架&#xff1a;YOLO背后的强大支持 Darknet&#xff0c;一个由Joseph Redmon开发的轻量级神经网络框架&#xff0c;以其在计算机视觉任务&#xff0c;特别是目标检测中的卓越表现而闻名。本文将详细介绍Darknet的基本概念、结构以及它在深度学习领域的应用。…