lasso模型交替方向matlab_TCGA系列学习笔记(7)建模及模型评价

微信公众号:生信小知识
关注可了解更多的教程及单细胞知识。问题或建议,请公众号留言;

TCGA系列学习笔记(7)建模及模型评价

内容目录

前言1. 背景知识1.1 Cox前提假设的验证1.2 lasso和ridge回归1.3 C-index1.3.1 如何计算1.3.2 关于C-index的取值1.3.3 用R计算C-index1.4 Cox模型验证1.4.1 数据拆分1.4.2 ROC和AUC1.5 逐步回归1.6 nomogram列线图2. 代码教程2.1 Cox模型前提假设检验2.1.1 载入数据2.1.2 构建多因素模型2.1.3 模型前提假设检验——因素独立于时间2.1.4 可视化展示2.1.5 模型前提假设检验——对数风险比与危险因素线性相关2.2 Cox模型的建立流程2.2.1 载入数据2.2.2 批量单因素Cox分析2.2.3 多因素Cox分析2.2.4 逐步回归2.2.5 用建立好的模型进行预测2.2.6 时间依赖的ROC曲线2.2.6.1 survivalROC包2.2.6.2 timeROC包2.2.7 nomogram列线图后记

前言

前期笔记:

TCGA系列学习笔记(1)数据下载

TCGA系列学习笔记(2)3大主流差异分析包

TCGA系列学习笔记(3)3大差异分析结果绘图

TCGA系列学习笔记(4)差异分析结果注释

TCGA系列学习笔记(5)单因素生存分析

这次的笔记其实在Cox模型的预测上卡了一段时间,不过好在咨询了曾老师后,得到了方向的指引,在此,由衷感谢曾老师的指点!

就用曾老板亲自编辑的感谢词来感谢吧:

Fat Yang thanks Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes !

1. 背景知识

1.1 Cox前提假设的验证

在之前的推文中讲到如果要使用cox模型分析,那么需要有2个关键的前提假设:

  • 各危险因素的作用不随时间的变化而变化

对于危险因素独立于时间的假设,从统计学上来说,我们可以基于scaled Schoenfeld residuals进行检验:

Schoenfeld residuals原则上独立于时间,如果发现Schoenfeld residuals与时间的关系不是随机的,p值显著,就说明模型违背了cox的假设

  • 对数风险比应与模型中的自变量应与呈线性关系

对于对数风险比与危险因素线性相关的假设,从统计学上来说,我们可以基于Martingale residuals进行检验:

通过绘制Martingale residuals 和连续性变量之间的关系图来观察。

Martingale residuals的取值范围在:-INF ~ +1

  • 接近1表示死的太快

  • 负值越大说明活得约久

注意:非线性相关的检验只对连续型变量进行检验

具体的代码见后面代码部分。

1.2 lasso和ridge回归

因为这里涉及到较多关于机器学习的概念,所以这节内容也是有点多的。

先来学习下基础的概念——lasso和ridge回归。

StatQuest - 正则化之岭回归_Ridge Regression

StatQuest - 正则化之 Lasso 回归

为什么会有lasso和ridge回归这2种回归呢?主要是为了解决机器学习过程中引起的过拟合现象。关于过拟合问题的解释可以去看:

回归问题-Lasso回归:https://blog.csdn.net/foneone/article/details/96576990

目前针对过拟合的问题,存在2种解决方案:

  • 方法一:减少特征数量(人工选择重要特征来保留,会丢弃部分信息)。

  • 方法二:正则化(保留所有的特征变量,但是会减小特征变量的数量级。)。

lasso和ridge回归都是正则化的一种方式。

正则化的作用就是选择经验风险和模型复杂度同时较小的模型。

防止过拟合的原理:正则化项一般是模型复杂度的单调递增函数,而经验风险负责最小化误差,使模型偏差尽可能小经验风险越小,模型越复杂,正则化项的值越大。要使正则化项也很小,那么模型复杂程度受到限制,因此就能有效地防止过拟合。

因为目前我的数据不需要用到lasso回归,所以这部分代码先不学习了

1.3 C-index

https://www.bilibili.com/video/av68461486

C- index,英文名全称 concordance index,中文里有人翻译成一致性指数,最早是由范德堡大学( Vanderbilt University)生物统计教教授 Frank E Harrell Jr1996年提出,主要用于计算生存分析中的Cox模型预测值与真实之间的区分度( discrimination),和AUC其实是差不多的。

一般评价模型的好坏主要有两个方面

  • 一是模型的拟合优度(Goodness of Fit),常见的评价指标主要有R方、2logL、AIC、BlC

  • 另外一个是模型的预测精度,顾名思义就是模型的真实值与预测值之间差别大小,均方误差,相对误差等

在临床应用上更注重预测精度,建模的主要目的是用于预测,而C- index它就属于模型评价指标中的预测精度

1.3.1 如何计算
  1. 所有样本互相配对,共有N×(N-1)/2对,其中N为样本数,得到全部的对子数。

例如:A、B、C、D、E、F六个病人(N=6),可以配成6×(6-1)÷2=15对:

(A,B)(A,C)(A,D)(A,E)(A,F);

(B,C)(B,D)(B,E)(B,F);

(C, D)(C, E)(C, F);

(D,E)(D,F);

(E,F)

  1. 去除配对中两种情况

  • 两个病人都没有达到事件终点(比如死亡)

  • 其中的一个病人A的生存时间短于另一个病人B,然而病人A还没有到达事件终点(死亡)

因为这2种配对无法判断出谁先死的,此时剩下的配对数记为:M。

实际例子来看:

病人 生存时间 生存状态 描述 模型预测生存率
A 11 1 死亡 0.73
B 9 0 生存 0.69
C 14 1 死亡 0.76
D 3 1 死亡 0.70
E 4 0 生存 0.65
F 16 0 生存 0.79

那么这里需要剔除的有:

  • 情况1:需剔除(B,E)(B,F)(E,F)三对

  • 情况2:需剔除(A,B)(A,E)(B,C)(C,E)四对

拿其中一个来解释:(B,C)对中B的生存时间9个月短于C的生存时间14个月,B还未达到终点事件(依旧存活),这种情况下,因为B的随访时间短,和C的随访时间不一样长,不能判断B一定比C活的久,如果是相同随访时间下,B依旧活着,可以认为B的生存时间比C长。

剩下的对子数M=15-3-4=8对

  1. 计算剩下的配对中,预测结果和实际相一致的配对数记为K,即:两个病人如果真实生存时间较长的一位其预测生存时间长于另一位,或预测的生存概率高的一位的生存时间长于另位,则称之为预测结果与实际结果相符,称之为一致:

    例如:(AC)对子中,A活了11天,C活了14天,而模型结果中A是0.73,C是0.76,这样预测结果和真实结果保持了一致。相反,对于(BD)对子,B可以活≥9天,D只活了3天,而模型结果中B是0.69,D是0.70,也就是说模型认为D应该活的更久,这样预测结果和真实结果不相符。

    上述例子中剩下的8对(AC)(AD)(AF)(BD)(CD)(CF)(DE)(DF)中:

    (AC)(AD)(AF)(CD)(CF)(DF)六对预测结果与生存时间一致,即:K=6

  2. 计算C-index=K/M=6÷8=0.75

1.3.2 关于C-index的取值

从上述计算方法可以看出C- index:在0.5-1之间(任意配对随机情况下一致与不一致刚好是0.5的概率):

  • 0.5为完全不一致,说明该模型没有预测作用

  • 1为完全一致,说明该模型预测结果与实际完全一致

一般情况下C- index:

  • 在0.50-0.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值