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

从0开始学习R语言--Day47--Nomogram

我们在用回归做医疗数据的分析时,往往需要知道病人的存活率,但这里的存活率往往指的是各种排列组合的存活率,但是直接输出所有分组又很浪费计算量,且在结果中找我们想要的组合也很费力。

而nomogram则提供了一种计分的方式,通过给不同分组的每种情况赋分,判断贡献,让我们可以直接观察我们关心数据的区间,从而直接知晓所要分类的病人的生存率。

以下是一个例子:

# 加载必要的包
library(regplot)# 生成模拟数据
set.seed(123)
n <- 200
data <- data.frame(年龄 = round(rnorm(n, mean = 60, sd = 10)),肿瘤大小 = round(runif(n, min = 1, max = 5), 1),吸烟 = factor(sample(c("是", "否"), n, replace = TRUE, prob = c(0.3, 0.7))),生存状态 = factor(sample(c("死亡", "存活"), n, replace = TRUE, prob = c(0.4, 0.6)))
)# 拟合逻辑回归模型
model <- glm(生存状态 ~ 年龄 + 肿瘤大小 + 吸烟, family = binomial(link = "logit"), data = data)# 绘制 Nomogram
regplot(model,points = TRUE,          # 显示点刻度odds = TRUE,            # 显示OR值failtime = c(1, 3, 5),  # 如果做生存分析可设置时间点title = "Nomogram 预测模型")

输出:

[[1]]吸烟 Points
吸烟2   是     46
吸烟1   否     58[[2]]肿瘤大小 Points
1        1     24
2        2     41
3        3     58
4        4     75
5        5     92[[3]]年龄 Points
1    35    104
2    40     95
3    45     85
4    50     76
5    55     67
6    60     58
7    65     49
8    70     40
9    75     31
10   80     22
11   85     13
12   90      4
13   95     -5[[4]]Total Points Pr( 生存状态 )
1            80         0.2577
2           100         0.2850
3           120         0.3139
4           140         0.3443
5           160         0.3761
6           180         0.4090
7           200         0.4427
8           220         0.4770
9           240         0.5114
10          260         0.5458
11          280         0.5797

在图中可以看到,年龄对死亡风险的影响最大,吸烟的影响相对较小。对于年龄来说,每增加5岁,分数减少约9分,即年龄越大,死亡风险越高;肿瘤则是每增加1cm,分数增加约17分,这里看起来相反,实际上是因为两者的系数正负不一样,所以才这样分析。

http://www.xdnf.cn/news/15465.html

相关文章:

  • 多租户SaaS系统中设计安全便捷的跨租户流程共享
  • 文心一言开源版部署及多维度测评实例
  • 深度解析 AI 提示词工程(Prompt Engineering)
  • 【YOLOv11-目标检测】06-模型部署(C++)
  • 可微分3D高斯溅射(3DGS)在医学图像三维重建中的应用
  • gRPC实战指南:像国际快递一样调用跨语言服务 —— 解密Protocol Buffer与HTTP/2的完美结合
  • AI 增强大前端数据加密与隐私保护:技术实现与合规遵
  • 20250715武汉xx公司面试一面
  • Springboot儿童认知图文辅助系统6yhkv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • React.FC与React.Component
  • 高并发四种IO模型的底层原理
  • [Dify]--进阶3-- 如何通过插件扩展 Dify 的功能能力
  • 深入浅出 RabbitMQ-核心概念介绍与容器化部署
  • ubuntu部署kvm
  • Linux操作系统从入门到实战(十)Linux开发工具(下)make/Makefile的推导过程与扩展语法
  • OpenCSG QA:您的国产大模型与 Agent 管理平台
  • 运维技术教程之Jenkins上的known_hosts文件
  • 渲染设计图的空间革命:可视化技术如何重塑设计决策
  • Keepalived双机热备概述
  • 2025华为ODB卷-IPv4地址转换成整数三语言题解
  • DOM入门知识
  • 回顾一下Docker的基本操作
  • 简单易懂,操作系统的内存管理机制是如何实现的
  • 「Java题库」循环结构(理论+操作)
  • 博客项目 laravel vue mysql 第六章 文章功能
  • 手写签名提取工具
  • 生成requirements.txt文件
  • Web3.0 学习方案
  • Docker安装升级redis,并设置持久化
  • 4.增-demo