R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)

从海量数据中发现潜在标志指标, 需要借助多变量模式识别方法。

由Kaizong Ye,Coin Ge撰写

无监督的模式识别方法包括主成分分析(PCA、聚类分析(HCE)等,根据模式识别模型抽提出对分类有重要贡献的指标后, 如果还需要进一步验证这些指标的差异性,那么可以在r语言中使用PLSDA模型进行分析。

本文使用几组患者对不同指标进行评分的数据,最后使用PLS—DA模型挖掘出不同中医分组方式下存在差异的指标。

数据1(少分组数据)

×

偏最小二乘回归法是通过将预测变量及观测变量分别通过投影的方式,投影到一个新的空间中去寻找线性回归模型。由于其成分之间相互正交,因此可以在一定程度上消除多重共线性。偏最小二乘回归法的本质是依照协方差极大化的准则,分解自变量数据矩阵X同时也分解因变量数据矩阵Y,最终建立解释隐变量与反映隐变量之间的回归方程式。

偏最小二乘回归法用于查找两个矩阵X和Y的基本关系。偏最小二乘回归模型会尝试找寻到X空间的多维方向来解释Y空间中方差最大的多维方向。偏最小二乘回归更适用于于预测矩阵比观测矩阵变量更多的数据或X的值中多重共线性较明显的情况。

为了实现偏最小二乘回归的基本思想,要求 t1 和 u1 的协方差最大,即求解:

max{Cov(t1,u1)}=maxE0w1,F0c1

s.t{wT1w1=1cT1c1=1

利用拉格朗日乘数法求出 w1 和 c1 满足:

ET0F0FT0E0w1=θ21w1

ET0F0FT0E0w1=θ21w1

其中, E0 、 F0 分别为X与Y的标准化数据, w1 是 ET0F0FT0E0 的单位特征向量, θ21 是对应的特征值,同时也是目标函数值的平方, c1 是 FT0E0ET0F0 最大特征值 θ21 的单位特征向量。先求出 w1 和 c1 即可求得成分 t1 和 u1,然后分别求得 E0 和 F0 对 t1 的回归方程:

E0=t1pT1+E1

F0=t1rT1+F1

回归系数向量为:

p1=ET0t1t12, r1=FT0t1t12

其中, E1, F1 为回归方程的残差矩阵。

用残差矩阵 E1, F1 取代 E0 和 F0,求出 w2 和 c2 以及第二个主成分 t2, u2 有:

t2=E1w2, u2=F1c2

建立回归方程:

E1=t2pT2+E2, F1=t2rT2+F2

回归系数为:

p2=ET1t2t22, r2=FT1t2t22

如此计算得到:

F0=t1rT1++tArTA+FA=E0[Aj=1w*jrTj]+FA

其中 w*j=j1i=1(IwipTi)wj,则 Aj=1w*jrTj 是偏最小二乘回归系数向量,A为X的秩。


通过plsda建模之后,我们对得到的主成分进行画图,并且对不同分组的样本进行标识。从结果中可以看到不同组别分别有哪些指标,以及哪些指标之间存在显著的差异?

# plsda.breast <- plsda(X, Y, ncomp = 2)

# col.breast <- as.numeric(as.factor(Y))

# plotIndiv(plsda.breast, ind.names = TRUE, col = col.breast ,ellipse = TRUE)

从下图中可以看到,分组a和分组b之间存在显著的差异,分组cdef之间的差异较小,分组a分组b和分组cdef间均存在显著差异。


视频

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

探索见解

去bilibili观看

探索更多视频

同时,为了我们可以从数值的角度来对这些分组的差异性进行分析。

计算他们的相关矩阵:

距离矩阵

从指示变量矩阵的结果来看,a的特征向量和b的特征向量之间存在显著差异,而cdef之间的差异较小

数据2 (多分组数据)

为了测试模型的拓展性,我们测试了更多分组数据。类似可以得到如下的成分散点图:

 同样计算距离矩阵

从结果中可以看到不同组别分别有哪些指标,以及哪些指标之间存在显著的差异?从图中可以看到,分组GHEC之间的差异较小,分组ABDFIJK之间差异较小,这两类间均存在显著差异从指示变量矩阵的结果来看,, GHEC特征向量之间的差异较小距离也较小,分组ABDFIJK之间差异较小距离也较小,这两类间均存在显著差异。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds