主讲老师第五十六课:主成分分析模型的构建
主成分分析,即 Principle Component Analysis (PCA),在这两年的生信文章中,尤其是5 分往上的高分文章中,应用量越来越大,所以,接下来,我们来看下主成分分析模型。所谓主成分分析,其实就是寻找主成分的过程,通常被认为是一种特殊的非监督学习算法,可以对复杂或多变的变量进行处理分析,一般而言,成分可以认为是特征的规范化线性组合。其中,第一主成分是能够最大程度解释数据中方差的特征线性组合,而第二主成分是在方向上与第一主成分垂直的条件下,最大程度解释数据中方差的另一种线性组合,其后的每一个主成分都遵循相同的原则。此外,主成分得分是对于每个主成分和每个观测变量计算而得到的,下面,
我们一起来看下如何进行主成分分析并建立模型。
1.R 包的安装与读取
psych 包常被用于进行主成分分析,包括四个层面:判断主成分的个数、提取主成分、获取主成分得分、列出主成分方程,解释主成分意义。
2.数据读取与预处理
2.1 读取表达数据
与之前的模型构建一样,首先使用 read.table()函数读取表达数据,并通过结构函数 str()检查数据。
2.2 数据标准化
在分析之前,我们需要对数据进行标准化,使数据的均值为 0,标准差为 1。
同时,完成标准化后,使用 psych 包提供的 cor.plot()函数,将输入基因之间的相关性进行可视化展示
2.3 读取临床数据
随后,将提前清洗准备好的临床数据进行读取。
3.主成分分析
3.1 主成分抽取
通过 psych 包的 principal()函数抽取主成分,首先,我们将 rotate 的参数设置为 none,得到其中的各个成分。
接着,为了确定要保留的成分的数量,使用碎石图来评估能解释大部分数据方差的主成分,其中 x 轴表示主成分的数量,y 轴表示相应的特征。
在碎石图中,需要找出使变化率降低的那个点,也就是常说的“肘点”或者弯曲点,从图中可以看出,4 个主成分是比较令人信服的
3.2 正交旋转与解释
正交旋转又称为“方差最大法”,旋转的意义是使变量在某个主成分上的载荷最大化,减少主成分之间的相关性,从而有助于对主成分的解释。
在输出的结果中,4 个主成分的变量载荷分别标注为 RC1 到 RC4,SS loading 中的值是每个主成分的特征值,同时,Cumulative Var 结果表示这 4 个旋转后的主成分可以解释 86%的全部方差。一般而言,我们选择的主成分至少应该解释大于 70%的全部方差,可见,4 个
主成分已经可以用于后续的建模分析
3.3 根据主成分建立因子得分
检查旋转和的主成分载荷,并将其作为每个患者的因子得分而且,这些得分说明了每个患者与旋转后的主成分之间的相关程度最后,将得分与临床信息进行合并。
4.模型构建与评价
4.1 回归分析
首先,将所有的因子作为输入,然后查看结果摘要。
整体模型在统计学上是具有显著性的,P 值为 0.0348,而且,其中 RC1 和 RC4 具有显著性。
随后,将不显著的主成分因子排出模型,只保留 RC1 和 RC4,再一次构建模型。
可以发现,整体模型的统计学显著性得到了提升,P 值为 0.0057
4.2 模型评价
提取模型得到的预测值,且箱型图结果显示两组之间具有显著性差异,P 值为 0.0035。
4.3 ROC 分析
ROC 曲线分析结果显示,AUC 值为 0.71,这样,四个常用的预测模型就基本介绍完了,特别最后一个,主成分分析,可能刚开始接触有些抽象,但其是很多现阶段高分文章的配置,大家好好理解一下,LASSO 和 RF 是可以得到相应的基因,svm 是个线性或者非线性的平面来分类,pca 是另起炉灶得到新的数值