COX回归
COX回归模型,又叫做“比例风险回归模型”。该模型以生存结局和生存时间为因变量,分析某些因素对生存期的影响,能分析带有截尾生存时间的资料,并且不需要估计生存资料袋分布类型。可以检查特定因素在特定时间点是如何影响特定事件(例如死亡,感染)的发生率。这个速度通常被称为危险率(HR,hazard ratio)。HR>1:危险致病因素;HR<1:保护因素
有关cox模型有几个概念,这里我摘自百度了:https://baike.baidu.com/item/COX%E5%9B%9E%E5%BD%92%E6%A8%A1%E5%9E%8B/8894307?fromtitle=Cox%E6%A8%A1%E5%9E%8B&fromid=24075433&fr=aladdin
我们说的比例风险回归模型就是以h(t,X)作为因变量
而X1,X2........Xm指的是不同的影响因素
为自变量的偏回归系数,它是须从样本数据作出估计的参数;
是当X向量为0时,
的基准危险率,它是有待于从样本数据作出估计的量
那么HR这么计算:
ln[h(t,X)/h0(t)] = lnHR = β1X1 + β2X2 + .....+ βmXm
即某时间点的危险率比起始的危险率高还是低
我们可以看下实际的输入数据:
这是它的输入数据:
- 第一列是每个患者的信息
- 第二列是性别这个因素
- 后面几列和2一样都是一些一些影响因素
- 倒数第二行time(生存时间)作为其中一个因变量
- 最后一行是status(生存结局)作为另一个因变量
结果:
我们可以根据HR(hazard ratio)来判断哪些因素是导致危险率增加的主要因素(HR>1);哪些因素是导致危险率减少的主要因素(HR<1),根据p_value来判断
lasso回归
lasso是一种广义线性模型,广义线性模型包括了一维连续,多维连续,非负次数,二元离散,多元离散等因变量的回归模型。然而lasso对以上数据类型都适合,也可以说lasso回归是在你和广义线性模型的同时进行变量筛选和复杂度调整。
变量筛选是指不把所有的变量都放入模型中拟合,而是有选择的把变量放入模型从而得到更好的性能参数。
复杂度调整是指通过一系列参数控制模型的复杂度,从而避免模型过度拟合(即为降维)
输入数据:
图有点不清楚,其实就是个差异基因的表达矩阵(每行为基因,每列为sample),即初步筛选的差异基因表达矩阵,最后一列是每个sample的生存情况作为lasso回归的因变量
通过lasso回归进行降维处理,筛选出最显著的基因
所谓lasso,即是在传统的多元线性回归中引入个惩罚项(λ),目的是为了防止过拟合(通过降维来防止)
结果:
左图描述了各个回归系数(β),随着惩罚系数λ的变换而变化的情况,我们可以看到随着λ变大,各个回归系数逐渐趋近于0,一些系数随着λ增大,提前变为0,像这些项在后期分析中几乎没有影响
正如lasso的表达式所显示,我们可以通过交叉验证来确定λ的最佳取值,原则上λ的取值不能让所有的回归系数变成0
右图表述的是惩罚系数λ与回归方程的MSE(误差)之间的关系,由这幅图我们可以看到大约log λ为10的时候,MSE最小
在一般分析中,我们综合考虑这两幅图的意义筛选最佳的基因数和最佳λ值,从而达到降维的作用
SVM
支持向量机是一种分类模型,即有监督的二分类机器学习模型,包括线性可分SVM和非线性可分(换成核函数即可)SVM:线性可分时,可用硬间隔和软间隔最大化学习SVM。线性不可分时,通过核技巧核软间隔最大化学习SVM:当SVM训练完成后,大部分样本均不需要保留,最终模型治愈支持向量有关
输入数据仍然是患者的生存的影响因素和生存数据:
这个数据与cox模型一致,这里就不在赘述
我们简单介绍下SVM,对于线性可分模型,我们目的是在空间里找到一个超平面,能够较好的区分两类数据,使得其损失最小
因为这是有监督学习,那么我们就根据数据带有的label进行分类
如果是二分类,那么寻找到一个超平面,在空间上的点带入该超平面方程则会分成两类(大于或小于某个值来区分)
结果:
由输入的数据来训练这个模型,其中超平面的每个X代表每个指标,y代表属于哪一类
之后我们可以再用位置分类的数据进行分类预测
至于新数据的分类效果我们可以利用ROC曲线来描述,此例子中AUC值为0.613,分类效果一般;AUC介于0到1之间
PCA
PCA是一种运用线性代数的知识来进行数据降维的方法,它将多个变量为少数几个不相关(或相关性较弱)的综合型大变量来综合比较全面的反应整个数据集。这是因为数据集中原始变量之间存在一定相关关系,可用较少的综合型大变量来综合各原始变量之间的信息。这些综合变量成为主成分,各主成分彼此不相关,即代表信息不重叠
输入数据:
基因表达谱(表达矩阵)
结果:
根据各个PC的贡献来选取主成分,然后用选取的主成分作为新坐标值重新构造数据点的坐标进行降维
随机森林
随机森林的实质是基于决策树分类器的集成算法,其中每一棵数都依赖一个随机向量,随机森林的所有向量都是独立同分布的。随机森林就是对数据集的列变量和行观测值进行随机化,生成多个分类数,最终将分类树结果进行汇总。而且该算法对多元共线性不敏感以及对缺失数据和非平衡数据比较稳健,可以很好地适应多大几千个解释变量数据集
先简单介绍下决策树模型
感兴趣的同学可以看下这篇推文:https://zhuanlan.zhihu.com/p/30059442
决策树模型也是一个有监督的学习模型,这里先盗个图
这是我们的输入数据:
第一列是学生编号,第二,三,四和五列是分类指标,最后一列为分类结果
我们就可以构造这样的树来进行分类:
每个节点代表一个分类模型(分类判别式),每个节点都是二分类模型
那么随机森林就是很多决策树构成的森林
从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。第二,利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。最后,如果有了新的数据需要通过随机森林得到分类结果,就可以通过对子决策树的判断结果的投票,得到随机森林的输出结果了。然后选择多数决策树都分类的那一个作为结果
如下图,假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类
回到我们的随机森林:
我们的输入数据为:
这个与cox模型相同,这里不再赘述
结果:
我们通过随机森林分类做的预测如上图,分类效果也可以通过ROC曲线来评判
那么根据生存期和生存时间的分类可以看到哪些变量导致危险增加,哪些导致危险减少