Part2稀疏偏最小二乘判别分析(sPLS-DA)

sPLS-DA(Sparse PLS discriminant analysis)是PLS-DA的一种特殊情况,同时包含变量选择和分类的过程。sPLS-DA允许变量选择,可以选择数据中最具预测性或判别性的特征,并帮助对样本进行分类。

PLS-DA模型建立在X中的所有基因上,其中许多可能无法提供信息来表征不同的类别。sPLS-DA分析的目的是识别出最能区分这两类的一小部分基因。

1sPLS-DA调参

可以使用函数tune.splsda()评估选择的参数,包括sPLS-DA维度数量(ncomp)以及要在X数据集中选择的变量数量(keepX)。根据PLS-DA性能评估的建议,将ncomp的最大值设置为6。我们选择重复10次的5倍交叉验证(fold = 5),并指定一个预测距离(最大距离)来预测所有CV运行中的类别隶属度。

# 预定义将在每个 comp 中测试的可能的 keepX 值,
list.keepX <- c(1:10,  seq(20, 300, 10))tune.splsda.srbct <- tune.splsda(X, Y, ncomp = 6, validation = 'Mfold', folds = 5, progressBar = TRUE, dist = 'max.dist', measure = "BER",test.keepX = list.keepX, nrepeat = 10, cpus = 2)
error <- tune.splsda.srbct$error.rate  #keepX 中每个 comp的错误率
ncomp <- tune.splsda.srbct$choice.ncomp$ncomp # 最佳的 comp 数量
ncomp
> ncomp
[1] 3
select.keepX <- tune.splsda.srbct$choice.keepX[1:ncomp]  # 每个 comp 中最佳的 keepX 值
select.keepX
> select.keepX
comp1 comp2 comp3 6   300    50

对于tune函数中指定的所有comp,以最后一个comp为条件的每个comp的分类错误率如下所示。

plot(tune.splsda.srbct, col = color.jet(6))

sPLS-DA中包含的成分越多,分类错误率越低(预测精度越低越好)。将使得每个维度达到最佳性能的最优变量数表示为菱形。3个维度足以使我们最终的sPLS-DA模型达到最佳性能。

2最终模型和样本表示

最终模型包括3个维度和前3个维度上的92830个选定变量

splsda.srbct <- splsda(X, Y, ncomp = ncomp, keepX = select.keepX)

在前三个维度上的样本图(见下图)显示,第一个维度很好地分离了BL肿瘤,而第二个维度将EWB与NB和RMS区分开来。

plotIndiv(splsda.srbct, comp = c(1,2),group = srbct$class, ind.names = FALSE, ellipse = TRUE, legend = TRUE,title = 'sPLS-DA on SRBCT, comp 1 & 2')

第三个维度的加入则进一步区分了NB和RMS:

plotIndiv(splsda.srbct, comp = c(1,3),group = srbct$class, ind.names = FALSE, ellipse = TRUE, legend = TRUE,title = 'sPLS-DA on SRBCT, comp 1 & 3')

利用函数auroc也可以得到一个AUC图,用于PLS-DA分析。

第一个AUROC仅包括2个维度:

auc.splsda = auroc(splsda.srbct, roc.comp = 2)

AUROC包括所有维度。ROC和AUC标准对于我们方法的性能评价并不是特别有见地,但可以作为统计分析的补充。

auc.splsda = auroc(splsda.srbct, roc.comp = ncomp)

3参考

  1. PLS-DA | mixOmics

4相关文章

  • 主成分分析(PCA)及其可视化的基础指南

  • 单组学的多变量分析|1.PCA和PLS-DA

单组学的多变量分析| 2.稀疏偏最小二乘判别分析(sPLS-DA)相关推荐

  1. R实战 | OPLS-DA(正交偏最小二乘判别分析)筛选差异变量(VIP)及其可视化

    主成分分析(PCA)是一种无监督降维方法,能够有效对高维数据进行处理.但PCA对相关性较小的变量不敏感,而PLS-DA(偏最小二乘判别分析)能够有效解决这个问题.而OPLS-DA(正交偏最小二乘判别分 ...

  2. 单组学的多变量分析|1.PCA和PLS-DA

    Part1PCA和PLS-DA 我们使用SRBCT数据集来说明PCA和sPLS-DA. 安装并加载mixOmics包 BiocManager::install('mixOmics') library( ...

  3. 偏最小二乘回归 Matlab

    什么是偏最小二乘回归? 偏最小二乘回归(英语:Partial least squares regression, PLS回归)是一种统计学方法,与主成分回归有关系,但不是寻找响应变量和自变量之间最大方 ...

  4. 主成分回归之后预测_回归分析|笔记整理(B)——主成分回归(下),偏最小二乘回归...

    大家好! 上一节我们给主成分回归开了一个头,这一节我们会继续介绍它的有关内容,并且同时会介绍另一种新的回归方法:偏最小二乘回归.这一节的理论性也比较强,主要关注了相关回归的理论上的性质与相关证明. 提 ...

  5. 【计量模型整理】偏最小二乘回归 PLS

    partial least square PLS 原理 与MLS.PCR.MRA比较 适用情况 数学推导与软件实现 参考文献 原理 在影响因变量的大量的因素中,会存在隐形的影响因素但却具有很强的解释力 ...

  6. ESL第十八章 高维问题 对角LDA/最近收缩重心、RDA/对偶优化/L2带核、函数型数据/Fused Lasso/字符串核/距离矩阵、有监督PCA/生存分析/偏最小二乘/预处理、多重检验/FDR

    (最后一章了,加油!) 目录 18.1 当 p p p远大于 N N N 18.2 对角线性判别分析Diagonal Linear Discriminant Analysis和最近收缩重心Neares ...

  7. xgboost回归预测模型_偏最小二乘回归分析法 从预测角度对所建立的回归模型进行比较...

    在实际问题中,经常遇到需要研究两组多重相关变量间的相互依赖关系,并研究用一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量), 除了最小二乘准则下的经典多元线性回归分析(MLR ...

  8. 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS

    交叉分解(Cross decomposition).典型关联分析(Canonical Correlation Analysis,CCA).偏最小二乘回归PLS 目录 交叉分解.典型关联分析(Canon ...

  9. 奇异值分解SVD和偏最小二乘奇异值分解PLSSVD

    奇异值分解SVD和偏最小二乘奇异值分解PLSSVD 目录 奇异值分解SVD和偏最小二乘奇异值分解PLSSVD 奇异值分解SVD

最新文章

  1. 0501 0503 模块区别_apollo介绍之planning模块(四)
  2. 管理学中的知名定律之阿尔布莱特法则
  3. 闲谈“个人核心竞争力”与“危机感” !!!
  4. matlab怎么实现OFDM仿真,OFDMmatlab实现仿真源代码
  5. 2 Django-2的路由层(URLconf)
  6. What's the difference between forever and for good?
  7. wxPython利用pytesser模块实现图片文字识别
  8. layui table 字体大小_根据状态修改layui表格显示的文字及字体颜色
  9. daemons java_Java ThreadGroup isDaemon()方法
  10. Tcp ip 网络编程入门(一)
  11. 远程控制计算机开关机
  12. Python字符串杂谈
  13. 带你了解ICCV、ECCV、CVPR三大国际会议
  14. 西储大学轴承数据小波变换
  15. python tkinter Entry的使用
  16. Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...
  17. Mongodb关于读取的问题(Read Concern)和Write Concern
  18. c语言用赫夫曼编码压缩文件,用哈夫曼编码C语言实现文件压缩
  19. (原创)梅子与锤子的一生(光阴故事)
  20. 温酒读Qt:QObject中篇1—— Q_OBJECT的隐秘角落

热门文章

  1. vue项目在vscode中编译eslint报错没显示红色波浪线提示
  2. QNX Neutrino 进程间通信编程之Signals
  3. eclipse安装STS支持注意的坑
  4. linux boot分区创建,Linux 更换 Boot分区 磁盘 示例
  5. 聊聊订单系统的设计?看这篇就够了!
  6. 宝尚网上股票缩量商场拉大盘股高潮
  7. AD PCB设计入门总结(一)
  8. java 屏幕识别_Java课程设计:捕获图片以及识别图中的文字
  9. 怎么把dell 灵越2020一体机的win8系统改成win7?
  10. MindMapper中怎样插入关联性