由于非本专业,所以先学习一些基础知识(这个应该在1写才对):
- 乳腺癌
- 预后
- 预后模型概念
- 预后模型建立方法
- 预后模型验证:KM分析、ROC曲线
乳腺癌
乳腺癌(breast carcinoma, BC)是女性最常见的恶性肿瘤之一,据资料统计,发病率占全身各种恶性肿瘤的7-10%。它的发病常与遗传有关,以及40—60岁间、绝经期前后的妇女发病率较高。通常发生在乳房腺上皮组织。女性居多,男性乳癌占全部乳癌患者的0.5%到1%。
预后
预后(prognosis),对创伤或疾病可能造成的后果的预测。是诊断的一部分。
在医学上,预后通常指基于个体的临床和非临床特征,预测其在特定时间内出现特定结局的概率或风险。结局往往是特定的事件,如死亡或并发症,但也可能是疾病进展,疼痛加重,或生活质量改变。预后预测可以辅助临床医生给患者制定相应的治疗方案,辅助临床决策支持;可以帮助患者清晰地认识自身疾病状况,间接改善他们治疗过程中的生活质量。精准的预后对医学研究和实践都具有重要价值。
预后模型概念
考虑到患者之间以及疾病的病因、临床表现和治疗以及其他健康状态的可变性,单个预测因子很少能对预后做出充分的评估。在临床实践中,医生会综合使用多个预测因子来评估患者的预后。因此,预后研究需要在设计和分析中使用多变量分析方法来确定研究结局的重要预测因子并提供结局发生的概率,或提供估计结局发生概率的工具。这些工具通常被称为预后模型。它们使医疗服务提供者能够使用预测因子的值来估计个体发生结局事件的绝对风险或概率。
预后模型主要用于告知个体其疾病未来的发展进程(或其出现特定疾病的风险),并指导医生和患者在进一步治疗中进行共同决策。
常用的预后模型主要分成三大类:预后分期(评分)系统、预后分类模型和预后生存分析模型。
- 预后分期(评分)系统主要是专家根据随访数据和经验制定的风险分期(评分),用于辅助临床诊疗,其考虑的疾病因素较单一,比如肿瘤TNM分期系统、弗明翰风险评分等。
- 预后分类模型和预后生存分析模型都是基于算法的、数据驱动的模型,可以综合利用多个疾病因素和患者的人口学特征等进行预测。预后分类模型和预后生存分析模型的区别在于:
- 预后分类模型是对个体某个时间节点的风险进行预测,是单点风险预测,比如,肿瘤患者5年生存概率,患者术后并发症发生风险等。【按这么说我现在做的应该就是这一种,是单点(或者说多点,但是不至于像生存分析那样是连续模型?)】
- 预后生存分析模型处理“时间-事件”数据(time-to-event data),是对个体一段时间内的风险进行预测,是与时间相关的多点风险预测,比如,肿瘤患者在术后10年内的死亡风险趋势。
预后模型建立方法
用到的数据:
- 基因表达矩阵:(取log后的)
- survival:4*1082的数据,包括了:
- TCGA的sample命名列(patient标签+tumor/normal分类标签)
- 生存状态OS和生存时间OS.time(这列的OS.time 应该是天数)
OS.time :指临床样本生存时间,也就是从开始诊断到跟随样本最后一次诊断的时间段,在TCGA数据库中这个临床特征一般写成:OS_MONTHS
status:指临床样本的生存与否,在TCGA数据库中这个临床特征一般写成:OS_STATUS;其中:LIVING:生存,DECEASED:死亡。
作者:Stormzudi
链接:https://www.zhihu.com/question/367619985/answer/1855247727
来源:知乎
真正做的时候会将基因表达矩阵与survival的OS、OS.time两列,按sampleid匹配成一个新的矩阵。
常规做法:
先得到预后显著的基因集,再通过机器学习(lasso、随机森林、SVM等)办法进行变量筛选,然后构建预后模型(多因素cox)。
暂时找到的一些方法:感谢公众号:生信补给站
- lasso(最常用):RNAseq|Lasso构建预后模型,绘制风险评分的KM 和 ROC曲线
- 弹性网络回归算法(有代码):RNAseq-ML|弹性网络回归算法Enet(Elastic Net)完成预后模型变量筛选-模型库+2
- 随机森林生存分析:RNAseq-ML|randomForestSRC完成随机森林生存分析-预后模型库+1
预后模型验证:KM分析、ROC曲线
预后模型验证常见有三种方法,医学生信文章中常用的也就是这三种方法。
方法如下:
1 内部验证
常见的方法就是将队列分成2部分(通常按2:1的比例分组),然后使用第一部分的数据建立模型,用第二部分的数据来验证模型。这种方法的得到的结果往往会比较好,因为2个队列的人群很相似。
2 时间验证
时间验证和将整个队列根据时间顺序进行分组在本质上没有什么不同。但是时间验证是对模型的前瞻性评估,它独立于建模的数据和建模的过程,所以有时可以看作是外部验证。
因此,时间验证是介于内部验证和外部验证之间的一种方法。
3 外部验证
内部验证和时间验证都无法检测模型的普遍适用性,因为这需要使用来源不同的数据来进行验证。
在我看来,生信文章中最常见的就是第三种方法,而且这种方法屡试不爽,非常受审稿人的青睐。
KM分析
KM法即乘积极限法(product-limit method),是现在生存分析最常用的方法,是由Kaplan和Meier于1958年提出,因此称Kaplan-Meier法,通常简称KM法。KM法是这样估计生存曲线:首先计算出活过一定时期的病人再活过下一时期的概率(即生存概率),然后将逐个生存概率相乘,即为相应时段的生存率。
(1)观察终点/评价指标:生存分析,并不一定是要对所有观察对象一直保持终生关注(观察时间太长了,难以实现),所以往往会人为设置观察终点——可能是以时间为条件,例如5年生存期;也可能以事件为条件,例如疾病复发。拓展内容:肿瘤临床试验终点和评价指标
(2)结局事件:结局事件,在观察试验开始前是需要明确给出定义的,当然,也取决于观察终点。举例来说,5年生存期作为观察终点的结局事件是“死亡”,对应的没有发生结局事件的状态被声明为“生存”。疾病复发作为观察终点的解决事件是“复发”,对应的没有发生的状态为“未复发”。
(4)观察/对照组:生存分析往往是为了证明/反驳生存和某个观察变量条件的相关性,例如是否有暴露史、检测指标高低,等等。基于观察变量形成两个队列分组,这两个队列的结果往往要分开作图,查看是否形成区分度。
综合上述,其实就是根据构建的风险得分模型将验证集分为高风险/低风险,然后放进生存分析里,形成两个队列分组,看是否形成区分度。设置的观察终点是生存期。要解决的问题是在某个时间点上,生存的可能性是多大。
结合上面的分析,所以这幅图的含义是,横轴是时间点,纵轴是生存率。
在每个时间点上进行生存率的计算,在发生删失的时间点上画小竖线。
具体而言,高风险组的存活率在3600days前就已经跌落50%,而低风险组的存活率在6480days附近才跌落50%。 高低风险组的存活率存在显著差异。
AUC曲线和ROC值
一般情况下AUC在0.50-0.70为准确度较低;在0.71-0.90之间为准确度中等;而高于0.90则为高准确度。DOI: 10.1097/JTO.0b013e3181ec173d
预测模型ROC曲线 - 知乎 (zhihu.com)
ROC曲线
全称Receiver Operating Characteristic Curve(受试者特征曲线)。
ROC曲线由灵敏度为纵轴,(1-特异度)为横轴绘制而成。通过绘制ROC曲线可以让读者直观地看到某指标各取值对结局指标的诊断或预测能力。
横轴1-specificity:1-特异度
- 特异度:阴性人群中,检测出阴性的几率,也就是真阴性率。
- 1-特异度:阴性人群中的阳性几率,假阳性率。(误报率)
纵轴:灵敏度sensitivity
- 阳性人群中检测出阳性的几率。(真阳性率,敏感率)
AUC :ROC曲线下的面积,表示预测准确率。越大越好
待解决问题:所以这里预测的是什么。。。。
答:这里就是预测生存/死亡的二元。
参考R数据分析:生存数据预测模型的建立和评价(二)timeROC与决策曲线-CSDN博客中对timeroc的分析:真的非常感谢!!!!!终于搞明白什么意思了
当结局是一个二分类变量的时候,考虑模型性能的两个指标一个叫灵敏度和特异度,我们希望两个都大,模型在不同的cutoff点时这两个指标如何变化的图示就是ROC曲线。详细参考之前的逻辑回归分类器的文章。
上面的说法是没有考虑时间因素的,认为结局是固定的,这个在大多数情况下都是适用的,就是说一般情况下我们的结局都是测一次或者说结局是不随着时间变化的,比如结局只有一个点,可以直接用ROC曲线评估模型。
但是遇到生存数据,比如随访的病人这个时间点没死,随访时间延长可能就死了,这个时候模型的灵敏度和特异度在各个时间都不一样,光说ROC就没有意义,需要加上时间,就叫做time-dependent ROC。
捋一捋生存分析模型判断生存情况的原理:
- 模型会给每一个个案预测一个风险x(文献中叫做个体的marker),t时刻归类到死亡或者存活需要一个标准c,模型根据这个风险x和标准c的大小比较结果判定个案是否死亡(阳性阴性)。
模型判断的是否死亡与个案的实际状况进行对比就有了混淆矩阵和灵敏度特异度。
D i (t)是t时间的实际状态,t时刻的敏感度和特异度的计算公式就是下图:(没贴图,应该就是roc相关值的一些表达式)
就是说t时刻个案确实是阳性D i (t)=1的同时模型也说我是“阳性”、“死亡”(marker比标准c大)叫做模型的真阳性率也就是敏感度,模型能将阳性个案识别为阳性的能力。
同理sp(c,t)就是特异度,是真阴率,模型能将无病识别为无病的能力。
本质上ROC曲线可以根据灵敏度和特异度两个指标来绘制的
上面的过程简化下就是:时间依赖的ROC就是不同时刻的结局计算出来的灵敏度和1-特异度构成的ROC。理论上生存结局可以有无数个ROC。
————————————————
版权声明:本文为CSDN博主「公众号Codewar原创作者」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tm_ggplot2/article/details/130588448