深度学习用于医学预后-第二课第三周8-13节-估计生存函数

news2024/11/27 7:44:37

上节课知道了数据中存在删失数据,那么我们如何利用这些数据建立生存函数。这将是本节课的重点内容。

文章目录

    • 估计生存函数
    • 立即死亡还是永远存活
    • 生存概率介于两者之间
    • 使用删失数据
    • 条件概率的链式法则
    • 推导生存函数
    • 根据数据计算概率

估计生存函数


本节课,我们将学习估计生存函数。回想一下我们看过的病人生存模型。对于这些病人,生存模型会告诉我们生存函数,也就是S(t),可以用上图来表示,在每个时间点,我们可以知道生存概率是多少。

生存概率,记住,就是某个事件发生的时间在某个小t之后的概率,这个小t可以是1年,可以是5年,可以是10年,无论我们关心的是什么时间。

我们研究了生存数据,对于生存数据我们有一组病人我们以时间的形式收集了结果信息。我们将使用这种形式的信息来估计生存函数。

注意:我们现在还没有为每个病人建立个性化的生存函数,我们以后再看怎么做。但现在,对于人群中的任何人,我们将应用相同的生存曲线,也就是说,对于每个t,我的生存概率是多少?我们可以从上述图中看出,这是一个适用于整体的生存函数而不是个人。

立即死亡还是永远存活


我们将尝试对存活到t个月的概率进行建模。对于我们的例子,让t等于25个月。我们可以从数据中估计这一点。方法是,存活到25个月的数量除以数据中的患者总数。

让我们来看一下在 25 个月时存活的数量。我们知道三号患者存活到了 25 个月,六号患者也是如此,因为他们的事件发生时间大于 25 个月。不幸的是,让这个估计变得复杂的事情是我们有这些右删失的观测数据。

请记住,右删失观测数据的问题在于我们不知道事件何时发生;如果它们有事件发生,我们对事件发生的时间有一个下限。因此我们必须在这里做出一个假设,让我们尝试一下两种假设。

  • 第一种假设是他们立即死亡。例如,二号患者在 8 个月被删失,那么我们就假设这个个体在我们接触后立即死亡。这种情况下,在 25 个月时存活的人数只包括三号和六号患者,分母是所有患者,即 7。这个估计结果约为 0.29。

  • 第二个假设是,每一个被删失观测到的个体永远不会死亡。也就是说,二号、五号和七号患者将一直活着,肯定会超过 25 个月。这样我们就有了另外三个在 25 个月后存活的患者,加上最初的两个患者。因此我们更新后的估计结果为5/7,这样的生存概率约为 0.71。

请注意,如果我们假设这些被删失观测数据中的所有个体都立即死亡,那么生存概率要比我们假设它们从未死亡的时候小得多。现在我们知道事实上的情况应该在这两个值之间

生存概率介于两者之间

假设我们能够联系到这些患者,我们可以找出这些右删失观测数据的真实值。我们打了一些电话,然后得到了这些患者的真实信息

其中两个患者的时间大于 25 个月,另一个则小于 25 个月。我们可以基于这些真实信息重新估计我们在 25 个月时的生存率。这将包括存活至 25 个月的患者人数,即二号、三号、五号和六号患者。生存概率=4/7。

请注意,在假设每个被删失观测到的个体立即死亡或他们永远不会死亡的情况下,我们之前得到的结果分别是 2/7 和 5/7。而现实似乎处于这两个数字中间,即三个患者中有两个在 25 个月后存活,而另一个没有。

这个问题并不总是出现,我们很遗憾并不总能获取到右删失观测数据的真实情况。

因此,在处理生存模型时我们需要回答一个非常重要的问题:当我们有右删失观测资料又不方便联络个体获取真实发生事件的时间时,我们如何估计在某个时间 t(这里是 25 个月)之后的存活概率?下面我们将探讨更多相关的内容。

使用删失数据

我们将用右删失数据估计在 25 个月后的存活概率。因此,我们会从一个数轴开始,数轴上标记着从零到 25 及其之后的时间点。

请注意,我们只考虑离散的时间点,因为事件要么发生在一个时间点,要么发生在下一个时间点,而不会在两个时间点之间发生。

然后估计在 25 个月后的存活概率。我们有 S(25),即时间到达事件发生时间在 25 个月之后的概率。请注意,如果一个事件在 25 个月之后发生,那么它在 26 个月之后或刚好在 26 个月时才会发生。

因此,我们需要进行一些修正,并将其写成时间到达事件发生时间在 26 个月之后或刚好在 26 个月时的概率形式。我们将逐步扩展这个概率式子。时间到达事件发生时间在 26 个月之后或刚好在 26 个月时这个条件所表达的含义是:时间到达事件发生时间在 26 个月之后且在 25 个月之后、在 24 个月之后以及所有之前的月份,或者是刚刚在 26 个月或刚好在 25、24 等所有之前的时间点时。

我们可以这样做,是因为条件一意味着条件二的成立。

条件概率的链式法则

什么是链式法则?

条件概率的链式法则是计算多个事件同时发生的条件概率的方法,它可以用以下公式表示:

P ( A 1 ∩ A 2 ∩ . . . ∩ A n ) = P ( A 1 ) ∗ P ( A 2 ∣ A 1 ) ∗ P ( A 3 ∣ A 1 ∩ A 2 ) ∗ . . . ∗ P ( A n ∣ A 1 ∩ A 2 ∩ . . . ∩ A n − 1 ) P(A1 ∩ A2 ∩ ... ∩ An) = P(A1) * P(A2 | A1) * P(A3 | A1 ∩ A2) * ... * P(An | A1 ∩ A2 ∩ ... ∩ An-1) P(A1A2...An)=P(A1)P(A2∣A1)P(A3∣A1A2)...P(AnA1A2...An1)

其中, P ( A i ∣ B ) P(Ai | B) P(AiB) 表示在事件 B 发生的条件下事件 Ai 发生的概率。整个公式意味着:要计算 n 个事件 A 1 , A 2 , . . . , A n A1, A2, ..., An A1,A2,...,An 同时发生的概率,需要从第一个事件开始,计算每个事件在前面事件已经同时发生的条件下发生的概率,逐一乘起来即可。

例如,假设有三个事件 A, B 和 C,在 A 发生的条件下计算 B 的概率,再在 A 和 B 都发生的条件下计算 C 的概率,则它们同时发生的条件概率为:

P ( A ∩ B ∩ C ) = P ( A ) ∗ P ( B ∣ A ) ∗ P ( C ∣ A ∩ B ) P(A ∩ B ∩ C) = P(A) * P(B | A) * P(C | A ∩ B) P(ABC)=P(A)P(BA)P(CAB)

这个公式先计算 A 发生的概率,然后根据 A 发生的条件下计算 B 发生的概率,最后根据 A 和 B 发生的条件下计算 C 发生的概率。通过这种方式,我们可以将计算多个事件的联合概率问题分解成一系列条件概率问题,并且逐步考虑每个事件发生的可能性。

所以我们的S(25)是T大于等于26,大于等于25的概率,依此类推,直到零。我们之所以把它发展到这个阶段,是因为现在我们可以使用条件概率的链式规则来进一步分解它。

因此,我们可以使用条件概率的链式规则,如上图所示,T大于等于0的概率恒等于1。不需要在乘法中包含这个项,因此可以划掉。

推导生存函数


所以我们用以上表达式表示了生存概率,即生存到25岁的概率是一系列概率的乘积。这些概率表示了如果我活到了25岁,我会活到26岁的概率是多少?将其乘以在我到达24岁后我能活到25岁的概率,以此类推,直到我们回到时间开始的地方,并询问问题,如果我们活过0岁,那么我们活到1岁的可能性是多少?所以我们在这个时间轴上做了这些小小的步骤,来计算我们关心的生存概率,也就是25岁。我们将通过理解这种计算方法如何更细分来对这个公式进行进一步修改。

公式中第一项 P r ( T > = 26 ∣ T > = 25 ) Pr(T>= 26|T >=25) Pr(T>=26∣T>=25) 表示已经在 25 或之后发生了此事件。它等于 P r ( T > 25 ∣ T > = ; 25 ) Pr(T > 25|T >=;25) Pr(T>25∣T>=;25), 进一步等于 1 − P r ( T = 25 ∣ T > = 25 ) 1- Pr(T =25|T >= 25) 1Pr(T=25∣T>=25)

所以 S(25) 将会是1减去事件恰好在 25 个月时发生的概率,假设它在 25 个月或之
后发生,这是第一个术语。第二项将是 1 减去在 24 个月及之后发生时,该事件在 24 个月时发生的概率等等,直到我们到达最后一项,即事件在 0 个月时发生的概率在它在 0 个月之后发生的情况下的补集概率。

接下来,我们将看到为什么用以下方式表示生存概率是有用的。

根据数据计算概率

因此,我们已经看到了如何使用以上表达式表示生存函数,使用这种表达式的好处是我们可以直接从数据中估计该数量。

因此,在给定时间内事件发生的概率可以通过查看在该时间死亡的患者数量来进行估计。例如,公式第一项,分母等于活过25月的患者数量,分子等于刚好25月去世的患者数量。这些数据都可以从数据中表中获取。

由于我们看到没有患者恰好在25岁时去世,因此我们的分子为0。现在在分母中,我们正在寻找已知存活至25月的患者人数。所以浏览这些患者,患者3存活至25岁,而患者6已知存活至25岁,因此此处的分母为2。
因此, 1 − P r ( T = 25 ∣ T > = 25 ) = 1 − 0 = 1 1- Pr(T =25|T >= 25)= 1-0=1 1Pr(T=25∣T>=25)=10=1
事实上,我们仅会看到两个患者在25岁之前死亡,这将是在时间为10时的患者1和在时间为20时的患者4。因此,该表达式简化为在这两个时间点计算此表达式

我们已经看到了如何简化此表达式,使其具有这两个术语,请看看我们如何进一步简化它。

从图上,我们最终计算出 s ( 25 ) = 0.56 s(25)=0.56 s(25)=0.56

截止,目前,我们已经学习了3种方法用于删失数据的生存函数评估。简单回顾一下:

  • 第一种方法,是将缺失的数据直接定义为死亡
  • 第二种方法,是将缺失的数据定义为永不死亡

一般来讲,真实的概率会在这二者之间

  • 第三种方法,使用条件概率的链式法则进行计算

那这几种方法到底怎么好呢,如何评估概率的准确性,将在下一章节进行探讨

文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

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

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

相关文章

API安全性的要素与开发人员必修课测试

一、API安全性的要素主要包括以下几点: 1.身份验证和访问控制:API应该通过身份验证来验证请求的源,确保只有授权的用户或应用程序才能访问API。这可以通过使用API密钥、访问令牌、OAuth令牌或其他身份验证机制实现。 2.数据加密:A…

OpenCV中的图像处理3.9(七)轮廓线及其层次结构

目录 3.9.4 轮廓线:更多的功能目标理论和代码练习 3.9.5 轮廓线层次结构目标理论什么是层次结构?OpenCV中的层次结构表示法轮廓线检索模式 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员&#x…

Pyqt5经典案例学习

目录 前言一、图表主题动画1-1、效果展示1-2、代码分段解析1-2-1、导库1-2-2、初始化1-2-3、数据生成函数以及信号与槽的连接 总结 前言 案例来源于GitHub项目《各种各样的PyQt测试和例子》 一、图表主题动画 1-1、效果展示 功能: 支持不同的主题和动画效果。用户…

Linux环境下的VScode使用教程

前言 (1)对于学习本文需要先有自行安装好VMware,对VMware有简单的了解。 (2)对于绝大多数使用Linux的人而言,经常在Windows环境下使用source insight进行编译程序,然后利用FileZilla将Windows的…

Ansys仿真寄生参数对信号反射的影响

1、短桩线传输线的反射 短桩线在PCB走线时会经常遇到,这个桩线会对信号的传输产生反射,那么桩线的长度和信号反射的关系可以仿真看一下,电路如下图所示,下图中,我们设置信号源的上升下降时间为0.8ns,桩线的…

Auto GPT 与 ChatGPT:有何区别?

人工智能正在迅速发展,即使是最熟练的人也越来越难以跟上。每隔一段时间,就会出现新的 AI 工具,在这些工具中,有些是时尚的,有些是真正有价值的。 Auto-GPT 是一种建立在 ChatGPT 技术之上的人工智能,很可…

leaflet根据坐标点设置多边形,生成geojson文件,计算面积值(133)

第133个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中根据坐标点设置多边形,通过.toGeoJSON() 来生成geojson文件,通过turf.area来计算面积值。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共123…

浅谈Redis7基础命令

Redis基本命令 Ping命令 心跳命令 set & get命令 set key value get key select命令 切换数据库 dbsize命令 flushdb命令 清除当前数据库数据 flushell命令 清除所有数据库数据 退出命令 quit、exit 关闭redis redis-cli shutdown shutdown 查看进程及端口号 #查看…

VirtualBox ping和xshell切换

使用virtualbox有一个奇怪的现象,每次连接xshell的时候ping百度,ping不通,能ping通的时候又连接不了xsell。 两种模式来回切换每次都要查要修改的东西,太麻烦了,就在这记录一下。 连接xshell 选中想要链接xshell的虚…

python3 安装 bz2包

python3 安装 bz2包 错误解决方法1、pip 安装2、重装python3(网上推荐,但没尝试)3、补全缺少文件(博主采用) 错误 ModuleNotFoundError: No module named _bz2 解决方法 1、pip 安装 尝试 pip3 install bz2 发现并…

一篇文章搞定《Android中的ANR》

------《ANR》 什么是ANR举个例子帮你认识ANRANR的产生原因ANR的监控手段方法一: 监控trace文件夹方法二:利用我们主线程的Looper方法三:监控SIGQUIT信号 ANR日志Traces.txtTraces文件分析几个分析案例:一、好定位的问题(简单案例…

使用FastGithub解决国内访问GitHub失败的问题

问题提出 在ArduinoIDE安装开发板开发包、库时经常由于这些包和库的索引指向的是github下面的开源项目,所以安装失败的可能性极高。开启了FastGithub后,更新成功率和速度都快了很多! 问题解决 使用FastGithub开源工具(支持Win,Ma…

在北京,36岁的软件测试人的心路历程及学习经验,太现实了

前言 涛哥(我认识的一位朋友,也是我的前辈)出身普通,仅仅是一个普通二本学校毕业,大学也是混日子混过去的,年轻时没有好好学习,被美女、游戏吸引到迷了自我,他对那年毕业的记忆清晰…

jpa使用

jpa: java persistence api jpa只要一对多 在一对多的关系中,一般将 JoinColumn 放在 多端,, 如果不需要两边都映射对应的实体,,可以在一端设置JoinColumn ,并在多端指定一个外键属性来映射这个关系

农业病虫虚拟仿真教学平台使实验资源共享

动物直肠检查是一项常见的内窥镜检查手术,往往会因为实验设备、实验动物、时间、经费等方面的因素影响,使一些应该开设的手术教学开展较少或者无法进行,造成学生或从业人士对专业知识掌握以及动手实践能力的不足 因此对于新手的培训必须经过大…

MISC:HTTP 流量分析技术.

MISC:HTTP 流量分析技术. Misc即杂项,是信息隐藏又称信息伪装,就是通过减少载体的某种冗余,如空间冗余、数据冗余等,来隐藏敏感信息,达到某种特殊的目的。 信息隐藏打破了传统密码学的思维范畴&#xff0c…

短期光伏发电量短期预测(Python代码,主要模型LSTM)

1.数据集(68779条数据) 开始时间 DATE_TIMEPLANT_IDSOURCE_KEYDC_POWERAC_POWERDAILY_YIELDTOTAL_YIELD15-05-2020 00:0041350011BY6WEcLGh8j5v7000625955915-05-2020 00:0041350011IF53ai7Xc0U56Y000618364515-05-2020 00:0041350013PZuoBAID5Wc2HD00…

你真的会写接口自动化测试脚本?0-1精通自动化测试实战,暴涨18K...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 开头,…

【Linux进阶命令 01】grep(文本的全局搜索与打印)

文章目录 一、grep命令(全局搜索与打印)1.1 语法1.2 主要参数1.3 测试准备1.4 grep命令使用示例1.5 应用示例 一、grep命令(全局搜索与打印) grep (缩写来自Globally search a Regular Expression and Print&#xff0…

一文解决eBpf在Android上的集成和调试

eBPF(Extended Berkeley Packet Filter )是一种新兴的linux内核功能扩展技术,可以无需修改内核代码,在保证安全的前提下,灵活的动态加载程序,实现对内核功能的扩展。 Android平台上也引入了对eBpf技术的支…