前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PLS-DA: 偏最小二乘法判别分析

PLS-DA: 偏最小二乘法判别分析

作者头像
Listenlii-生物信息知识分享
发布2020-06-01 17:25:35
19.1K0
发布2020-06-01 17:25:35
举报
文章被收录于专栏:Listenlii的生物信息笔记

偏最小二乘法判别分析(PLS-DA,Partial Least Squares Discriminant Analysis)经常用来处理分类和判别问题。其与PCA类似,不同的是PCA是无监督的,PLS-DA是有监督的。

当样本组间差异大而组内差异小时,无监督分析方法可以很好的区分组间差异。反之样本组间差异不大,无监督的方法就难以区分组间差异。另外如果组间的差异较小,各组的样本量相差较大,样本量大的那组将会主导模型。有监督的分析(PLS-DA)能够很好的解决这些问题。

PLS是偏最小二乘分析,DA是判别分析。再加一个o就是加了一个正交,OPLS-DA就是正交偏最小二乘法判别分析。

当变量数量远大于样品数量时(行数小于列数), PLS或 PLS-DA模型容易过拟合,但是PCA效果也不好。但是加入正交矫正之后数据检出假阳性会降低,所以会更准确。数据处理的时候一般是先做PCA,然后做OPLS-DA。

16S扩增子分析数据中也慢慢应用了这种方法,以区分组间的样本差异。

代码语言:javascript
复制
 1#安装
 2if (!requireNamespace("BiocManager", quietly = TRUE))
 3  install.packages("BiocManager")
 4# The following initializes usage of Bioc devel
 5BiocManager::install(version='devel')
 6BiocManager::install("mixOmics")
 7
 8#使用
 9library(mixOmics)
10library(ggplot2)
11
12plsda(X,
13      Y,
14      ncomp = 2,
15      scale = TRUE,
16      mode = c("regression", "canonical", "invariant", "classic"),
17      tol = 1e-06,
18      max.iter = 100,
19      near.zero.var = FALSE,
20      logratio="none", multilevel=NULL,
22      all.outputs = TRUE)
23#X:OTU
24#Y:分组
25#ncomp:展示前几轴。默认2
26#scale:标准化
27#mode:用哪种算法
28#max.iter: 迭代次数
29
30## First example
31data(breast.tumors)
32X <- breast.tumors$gene.exp
33Y <- breast.tumors$sample$treatment
34
35plsda.breast <- plsda(X, Y, ncomp = 2)
36plotIndiv(plsda.breast, ind.names = TRUE, ellipse = TRUE, legend = TRUE)

Reference

http://blog.sina.com.cn/s/blog_942438cf0102wth0.html

http://www.biotech-pack.com/pls-da-opls-da-two-dimensional-map.html

http://blog.sciencenet.cn/blog-3406804-1163309.html

https://www.rdocumentation.org/packages/mixOmics/versions/6.3.1/source

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档