生存分析机器学习

生存分析:时间背后的数据价值!

💡 生存分析是一种研究现象或物体随时间推移而发生的变化的方法,可广泛应用于金融、医疗、保险、交通等领域,比如预测疾病复发风险、评估投资产品收益、估算保险赔付概率等。通过挖掘数据背后的价值,可以帮助我们更好地理解现象、优化决策,实现效益最大化。

机器学习:让数据焕发生机

💡 机器学习则已经渗透到我们生活的方方面面,例如:推荐系统、图像识别、语音识别等。极大地提高了数据处理效率和准确性,将机器学习应用到生存分析中,将让数据分析变得更加高效、智能。

学习

1: 从本文你可以获得什么?

数据分析的目的无外乎就是通过统计方法找差异和相关关系,进而将数据分析分为:分类,回归(预测连续值)和生存分析。生存分析本质上也是一种回归问题,但和传统回归的不同之处是数据存在删失。删失原因包括:1)失访;2)其它原因死亡;3)到研究结束为止,研究对象仍未出现终点事件。

在数据分析过程中,小编发现大家最大的问题是无法将自己的变量在不同的分析目的中顺延下去,因此,基于此生存分析合集,你将主要学会如何具体应用深度学习模型进行生存分析,并且迅速掌握用python及R语言实现用自己的数据进行生存分析,发表文章。

整个过程,公众号回复关键字可免费获得数据及脚本。关于软件安装、环境搭建和自己数据导入分析过程中的问题可加小编微信,一对一远程辅导。

2:如何学习?

    小编认为,任何一项学习都是以理论指导下的实践优化。是以掌握生存分析中的核心概念是非常有必要的。鉴于目前生存分析的解读性文章太多,本公众号主打数据分析的实践、实战、复盘以及高分文章的复盘,本文只罗列核心的几个概念,欲只更多,大家可自行检索其他。

3:核心概念

生存时间(Survival Time):从某个特定事件开始,到观察对象发生研究事件(如死亡)或被截断(如失访、实验结束)所经历的时间。

删失(Censoring):是指在观察时间内,研究对象并未发生所关心的结局事件(如疾病复发、死亡等),但由于其他原因,导致我们无法获得该对象的事件发生时间。删失可以分为左删失、区间删失和右删失。
1)左删失是指在观察开始时,研究对象已经处于某种状态,我们无法获得该对象从起始点到观察开始时的生存时间信息。换句话说,生存时间被“剪去”了左端,因此被称为左删失。
举个栗子:假设要研究某种癌症的复发,生存时间是第一次确诊和第二次确诊的间隔。但研究对象不记得第一次确诊时间,我们无法知道患者确诊的具体时间,这就是左删失。

2)区间删失是生存分析中一种特殊的删失情况,它既包括左删失,也包括右删失。在区间删失中,我们只知道研究对象事件发生时间的一个时间区间,而无法确定具体的发生时间点。换句话说,生存时间在时间区间内是未知的。
举个栗子:假设要研究某种疾病的潜伏期,研究人员对一批已经感染该疾病的患者进行随访。由于潜伏期可能受到多种因素的影响,部分患者的潜伏期仅能确定一个大致的时间范围(如:20-30天),而无法确定具体的感染和发病时间。这种情况就属于区间删失。

3)右删失是指在观察期内,研究对象并未发生所关心的事件,但由于其他原因(如失访、搬迁等),导致我们无法获得该对象的事件发生时间。换句话说,生存时间被“剪去”了右端,因此被称为右删失。右删失通常发生在长期随访研究中,部分研究对象可能在观察期内失访或因其他原因无法继续参与研究。
举个栗子:在上述研究癌症复发的例子中,如果一个接受标准治疗的患者在观察期结束前因为其他原因(如搬迁)失去了联系,我们无法获得该患者在观察期内是否发生癌症复发或死亡的信息。这种情况就称为右删失。

在数据分析和录入中,遇到删失的处理方式:删除、填补(均数、中位数、众数)、临近值或相似值估计、多重差补法、缺失作为类别进行统计或机器学习处理。

存活函数(Survival Function):存活函数是描述个体在某个给定时间点上生存的概率。它是生存时间的累积分布函数(CDF),表示在给定时间 t 上存活的概率。

风险函数(Hazard Function):风险函数是描述在给定时间点 t 上事件发生的瞬时风险。它表示在某个时间点上事件发生的概率密度函数(PDF),给出了在该时间点上事件发生的概率。

生存曲线(Survival Curve):生存曲线是描述个体随时间变化的生存概率。它是存活函数的图形表示,通常为递减的曲线。

中位生存时间(Median Survival Time):中位生存时间是指在存活函数中,使得存活概率为0.5的时间点。它表示一半个体事件发生的时间点。

协变量(Covariates):协变量是可能影响生存时间的其他变量,如年龄、性别、治疗方案等。在生存分析中,可以考虑协变量对生存时间的影响。

累积风险(Cumulative Hazard):表示在给定时间范围内,事件累积发生概率的累积概率。它与生存函数互为补数。

4: 生存分析的方法

Kaplan-Meier估计:

     Kaplan-Meier方法是一种非参数方法,用于估计生存函数。它根据数据中观察到的生存时间和截断数据,绘制生存曲线,直观地展示生存情况和时间分布。

Log-Rank检验:

      Log-Rank检验是一种非参数的检验方法,不依赖于分布假设。它广泛应用于生存分析中,用于比较不同治疗组、不同风险因素或不同事件发生情况下的生存差异。

寿命表法:

     寿命表法是一种基于人群的历史数据或经验数据的方法,用于估计生存率和风险率。

半参数生存模型:

     这类模型结合了参数模型和非参数模型的优点,通常包括基线风险函数和协变量效应两部分。常见的半参数模型包括Cox比例风险模型、加速失效时间模型(AFT)等。

参数生存模型:这类模型基于特定的概率分布假设,对生存时间和风险率进行建模。常见的参数生存模型包括指数分布、威布尔分布、对数正态分布等。参数模型的优点是解析形式较简单,但可能受限于分布假设。

非参数生存模型:这类模型不基于特定的概率分布假设,可以灵活地适应各种生存时间分布。常见的非参数生存模型包括核估计方法等。非参数模型的优点是可以适应各种生存时间分布,但计算复杂度可能较高。

机器学习:

     随机生存森林(Random Survival Forest):随机生存森林是一种基于决策树的集成学习方法,用于生存分析预测。它通过构建多棵决策树,每棵树都使用随机选择的特征和样本进行训练,最后综合多棵树的预测结果得到最终的预测。

      支持向量机(Support Vector Machine,SVM):支持向量机是一种常用的机器学习算法,在生存分析中也有应用。通过将生存数据映射到高维空间,支持向量机可以在非线性情况下建立决策边界,从而进行生存时间的预测和分类。

      人工神经网络(Artificial Neural Networks,ANN):人工神经网络是一种模仿生物神经系统结构和功能的机器学习模型。在生存分析中,可以使用多层感知器(Multilayer Perceptron)等神经网络结构,通过学习和优化网络权重,进行生存时间的预测和建模。

     集成学习方法(Ensemble Learning):集成学习方法将多个基本模型的预测结果进行组合,从而得到更准确的预测。在生存分析中,可以使用基于集成学习的方法,如Bagging、Boosting等,对多个模型进行集成,提高生存时间的预测准确性。

     CoxBoost: Cox Boosting是一种集成学习方法,将Cox比例风险模型与Boosting算法相结合,用于解决生存分析问题。Boosting算法是一类迭代的统计学习方法,通过迭代地调整训练样本的权重,并结合一系列弱学习器(如决策树)来提高模型性能。

深度学习模型:

  Cox-nnet:Cox-nnet 是一种结合了深度学习和 Cox 比例风险模型的方法。它使用神经网络模型来估计 Cox 模型中的基线风险函数,然后利用经典的 Cox 模型进行相对风险的估计。Cox-nnet 可以灵活地处理各种类型的特征,包括连续型、分类型和高维稀疏型特征。
  DeepHit:DeepHit 是一种用于生存分析的深度学习模型,基于多任务学习的思想。它将生存分析任务分解为两个子任务:事件时间预测和事件状态预测。DeepHit 使用递归神经网络(Recurrent Neural Network)来学习时间相关特征,并利用深度神经网络(Deep Neural Network)来预测事件状态。

     DeepSurv:DeepSurv 是一种基于神经网络的生存分析模型,它使用多层感知器(Multilayer Perceptron)作为基本架构。它的输入是个体的特征信息和生存时间,输出是相对风险的估计值。DeepSurv 的目标是最小化 Cox 比例风险模型的负对数部分似然函数。
  以上只是生存分析的部分内容,本专栏将重点带大家在R语言及Python在Cox regression、机器学习和深度学习模型的实战复现中体会生存分析的魅力。

分析流程

R语言和Python在数据中的分析过程就像是在工具箱(packages)里取出具体的工具(function)去实现不同的目的,所以R语言和Python的数据分析速成就是在于对于包和函数的学习。

  用R或python进行数据分析的流程包括:

  1.数据加载
  2.数据清洗
  3.统计分析
  4.数据建模
  5.模型诊断
  6.数据预测
  7.预测评估
  8.模型比较

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

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

相关文章

永久免费次数ChatGPT国内镜像网站【强烈建议收藏】

gctohttps://chat.tomyres.com/#/pages/web/index?n0 觉得分享的网站好用的话,记得点赞收藏哦。

lettcode179.最大数

问题描述: 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例一: 输入nums [10…

街景图片语义分割后像素类别提取,用于计算各种指标。

语义分割代码见之前博文(免费):deeplabv3街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用。cityscapes 语义分割之后,如下图,想要统计各类像素所占的比例,用于…

2024 MathorCup C 题 物流网络分拣中心货量预测及人员排班

一、问题重述 电商物流网络在订单履约中由多个环节组成,图1是一个简化的物流网络示意图。其中,分拣中心作为网络的中间环节,需要将包裹按照不同流向进行分拣并发往下一个场地,最终使包裹到达消费者手中。分拣中心管理效率的提升&…

初识 React:安装和初步使用指南

文章目录 前言一、React 是什么?1.组件化开发2.虚拟 DOM3.单向数据流4.生态系统丰富 二、安装1.准备工作2.下载react 三、探索 React 应用总结 前言 在当今的 Web 开发领域,React 已经成为了一个备受推崇的技术。它的组件化、灵活性和高效性使得它成为了…

MySQL中InnoDB的行级锁

InnoDB 实现了以下两种类型的行锁。 共享锁(S):又称为读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。 排他锁(X)&am…

时间同步服务项目练习

一.配置server主机要求如下: 1.server主机的主机名称为 ntp_server.example.com 2.server主机的IP为: 172.25.254.100 3.server主机的时间为1984-11-11 11:11:11 4.配置server主机的时间同步服务要求可以被所有人使用 更改主机名…

Android开发基础:Activity之间的跳转 向下一个Activity传递数据 给上一个Activity返回数据

目录 一,使用Intent在Activity之间跳转 1.显示使用Intent 2.隐式使用Intent 二,携带数据的跳转 1.Bundle 三,返回数据给上一个Activity 1.registerForActivityResult 一,使用Intent在Activity之间跳转 一个Android应用中包…

APEX开发过程中需要注意的小细节5.5

oracle保留小数点后两位的函数 在日常开发中经常用到百分比做数据对比,但是有可能得到的数据是一个多位小数,结果如下所示: 如果想截取部分小数如保留小数点后两位可以怎么做呢? 在Oracle中,可以使用ROUND函数来四舍…

请警惕,这10本期刊已被SCI剔除,部分涉嫌灌水

科睿唯安于4月15日更新了SCIE、SSCI、AHCI、ESCI四大数据库最新收录期刊目录。 2024年第一版——2024年1月24日更新 2024年第二版——2024年2月19日更新 2024年第三版——2024年3月18日更新 2024年第四版——2024年4月15日更新 本次目录中共收录期刊23368本。 【SCIE数据…

档案集中管理的痛点怎么解决?

档案集中管理可能面临的痛点包括以下几个方面: 1. 档案分类和整理困难:档案集中管理会面临大量档案的分类和整理工作,可能导致混乱和困难。 解决方法: - 建立统一的档案分类规范和流程,确保所有档案都能按照规定的方式…

《QT实用小工具·二十九》托盘图标控件

1、概述 源码放在文章末尾 托盘图标控件 可设置托盘图标对应所属主窗体。 可设置托盘图标。 可设置提示信息。 自带右键菜单。 下面是demo演示: 项目部分代码如下: #ifndef TRAYICON_H #define TRAYICON_H/*** 托盘图标控件* 1. 可设置托盘图标…

Unity类银河恶魔城学习记录12-17 p139 In game UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using UnityEngine;public class UI : MonoBehaviour {[SerializeFie…

仿真科普|从设计到研发,CAE仿真技术为汽车智造保驾护航

2024年3月28日,对于汽车产业来说,是历史性的一天,作为近年汽车行业发布会流量最大的一次,小米SU7的发布让整个汽车圈为之沸腾,成功收割全平台热搜。时至今日,小米汽车依然热度不减。 随着“蔚、小、理、特…

Docker镜像,什么是Docker镜像,Docker基本常用命令【搜索,镜像下载,镜像删除,创建容器,导入到处镜像】及其镜像的分层

docker镜像 1.1什么是镜像,镜像基础 1.1.1 镜像的简介 镜像是一种轻量级,可执行的独立软件包,也可以说是一个精简的操作系统。镜像中包含应用软件及应用软件的运行环境,具体来说镜像包含运行某个软件所需的所有内容,…

4*5的矩阵(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;int result 0;//嵌套循环输出&#xff1b;for (i 1; i < 4; i){//列…

基于Python dlib的实时人脸识别,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

Linux进程与管理,计划任务

1.虚拟内存统计 vmstat可以用来监控CPU使用&#xff0c;进程状态&#xff0c;内存使用&#xff0c;虚拟内存使用&#xff0c;硬盘输入输出状态等信息。 字段解释&#xff1a; procs进程信息&#xff1a;r&#xff1a;等待运行的程序数&#xff1b;b&#xff1a;不可被唤醒的进…

【电控笔记3.5】三相逆变器

基础 大小调变指标ma 频率调变指标mf 载波频率:pwm频率

wps导出pdf文献引用不能跳转解决办法

问题描述 本科论文参考文献使用wps设置交叉引用&#xff0c;但导出pdf后无法跳转引用 尝试 用office word打开文件word版跳转没有问题&#xff0c; 另存为pdf或导出pdf。 但是pdf版跳转完全错误。 16跳到14.但是总体而言都是跳到包含该序号的页 要求不高的话也可以&#x…
最新文章