PLS-DA

这篇博客介绍了R语言中的PLS-DA(偏最小二乘判别分析)方法,用于处理分类和判别问题,特别是微生物组学数据。PLS-DA通过偏最小二乘法对数据进行旋转,以区分不同组间的样本。它是一种有监督的分析方法,对比了与无监督的PCA分析的区别,并详细阐述了`mixOmics`包中的`plsda`函数用法。此外,还提供了示例代码展示如何进行多重组别PLS-DA分析,并解释了如何解读分析结果,如VIP值等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ropls

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

#The following initializes usage of Bioc devel
BiocManager::install(version='devel')

BiocManager::install("ropls")
  • PLS-DA(Partial Least Squares Discriminant Analysis),即偏最小二乘法判别分析,是多变量数据分析技术中的判别分析法,经常用来处理分类和判别问题。通过对主成分适当的旋转,PLS-DA可以有效的对组间观察值进行区分,并且能够找到导致组间区别的影响变量
    PLS-DA采用了经典的偏最小二乘回归模型,其响应变量是一组反应统计单元间类别关系的分类信息,是一种有监督的判别分析方法。因无监督的分析方法(PCA)对所有样本不加以区分,即每个样本对模型有着同样的贡献,因此,当样本的组间差异较大,而组内差异较小时,无监督分析方法可以明显区分组间差异;而当样本的组间差异不明晰,而组内差异较大时,无监督分析方法难以发现和区分组间差异。另外,如果组间的差异较小,各组的样本量相差较大,样本量大的那组将会主导模型。有监督的分析(PLS-DA)能够很好的解决无监督分析中遇到的这些问题。
    与PCA分析的原理相同,PLS利用偏最小二乘法对数据结构进行投影分析。但PLS与PCA数据有本质的不同,PCA分析方法中只有一个数据集X,所有分析都只是基于这个的数据集,对应于一个多维空间。而PLS分析是建立在两个数据集X和Y基础上的,因此也就对应地存在两个多维空间,在利用投影方法计算PLS个主成分后,分别得到X和Y空间的两条轴线以及各个样本点在X和Y空间周上的得分t1、u1。对X和Y数据的关联分析就是将所有样本在X和Y空间个主成分轴上的得分t1、u1分别作相关分析,可以表示为ui1 = ti1+ri1,i表示不同样本,ri1表示残差。对应的,经过第二个主成分计算可以得到t2、u2,有关系式ui2 = ti2+ri2 。
    如果用t1 、t2作图,表示数据集X的PCA得分图,而如果用t1、u1作图就表示
    个主成分下数据集X与数据集Y相关性。与PCA的载荷图(变量分布散点图)相类似,PLS可以用权重方式对X、Y数据集中的变量进行相关联,找出变量之间的关系。
    PLS-DA只需要一个数据集X,但在分析时必须对样本进行指定分组,这样分组后模型自动加上另外一个隐含的数据集Y,该数据集变量数等于组别数,赋值时把指定的那一组规定为1,其他所有值均为0。其他计算方法与上述PLS方法相同。这种模型计算的方法强行把各组分门别类,有利于发现组间的异同点。
    下图展示了无监督的PCA方法和有监督的PLS-DA之间的区别。
    在这里插入图片描述
    输入:
    OTU Table文件:
    OTU ID Bio1 Bio2 Bio3 Bio4 Bio5 Bio6 Bio7 Bio8 Bio9 Bio10
    OTU1 0 0 0 0 0 6 34 104 367 254
    OTU2 52 335 18 49 0 0 0 0 0 0
    OTU3 0 0 0 0 5 0 0 0 0 0

样品分组信息表(可选):
Bio1 G1
Bio2 G1
Bio3 G1
Bio4 G1
Bio5 G2
Bio6 G2
Bio7 G2
Bio8 G3
Bio9 G3
Bio10 G3

输出:
plsda_sites.txt:记录了样本在各个维度上的位置,其中comp 1为x轴,comp 2为y轴。
plsda_rotation.txt:记录了OTU或者物种对各主成分的贡献度。
plsda_importance.txt:记录了各维度解释结果的百分比。如果plsda1值为50%,则表示x轴的差异可以解释全面分析结果的50%。
plsda_plot.pdf : plsda图

示例:Multiple groups plsda analysis在这里插入图片描述
注:不同颜色或形状的点代表不同环境或条件下的样本组,横、纵坐标轴的刻度是相对距离,无实际意义。plsda1、plsda2分别代表对于两组样本微生物组成发生偏移的疑似影响因素,需要结合样本特征信息归纳总结,例如A组(红色)和B组(蓝色)样本在plsda1轴的方向上分离开来,则可分析为plsda1是导致A组和B组分开(可以是两个地点或酸碱不同)的主要因素,同时验证了这个因素有较高的可能性影响了样本的组成。

分析模块引用了R语言(v3.2.3)mixOmics包(v5.2.0)中的plsda分析和作图。

1

2


install.packages("mixOmics")
 
library(mixOmics)

plsda函数

Usage
 
plsda(X,Y,ncomp = 2,
scale = TRUE,mode = c("regression", "canonical", "invariant", "classic"),tol = 1e-06,max.iter = 100,near.zero.var = FALSE,
logratio="none",  # one of "none", "CLR"
 
multilevel=NULL,all.outputs = TRUE)
 
Arguments
X    numeric matrix of predictors. NAs are allowed.
 
Y    a factor or a class vector for the discrete outcome.
 
ncomp    the number of components to include in the model. Default to 2.
 
scale    boleean. If scale = TRUE, each block is standardized to zero means and unit variances (default: TRUE)
 
mode    character string. What type of algorithm to use, (partially) matching one of "regression", "canonical", "invariant" or "classic". See Details.
 
tol    Convergence stopping value.
 
max.iter    integer, the maximum number of iterations.
 
near.zero.var    boolean, see the internal nearZeroVar function (should be set to TRUE in particular for data with many zero values). Setting this argument to FALSE (when appropriate) will speed up the computations. Default value is FALSE
 
logratio    one of ('none','CLR') specifies the log ratio transformation to deal with compositional values that may arise from specific normalisation in sequencing dadta. Default to 'none'
 
multilevel    sample information for multilevel decomposition for repeated measurements. A numeric matrix or data frame indicating the repeated measures on each individual, i.e. the individuals ID. See examples in ?splsda.
 
all.outputs    boolean. Computation can be faster when some specific (and non-essential) outputs are not calculated. Default = TRUE.
data(breast.tumors)
X <- breast.tumors$gene.exp
Y <- breast.tumors$sample$treatment
 
plsda.breast <- plsda(X, Y, ncomp = 2)
plotIndiv(plsda.breast, ind.names = TRUE, ellipse = TRUE, legend = TRUE)

在这里插入图片描述
得到VIP值

library(RVAideMemoire)
PLSDA.VIP(plsda.breast, graph = TRUE)

在这里插入图片描述

PLS-SEM(偏最小二乘结构方程模型)是一种基于偏最小二乘回归的结构方程模型。它结合了主成分分析和传统结构方程模型的优点,可以用于分析多个潜在变量之间的关系。 在R语言中,可以使用plspm包来进行PLS-SEM分析。plspm包提供了一系列函数,用于构建和运行PLS-SEM模型,包括: - plspm():用于执行PLS-SEM分析的主要函数,可以指定潜变量和观测变量,设置路径系数和其他参数。 - summary():用于输出PLS-SEM模型的摘要信息,包括路径系数、可解释的方差和模型拟合度等。 - plot():用于绘制PLS-SEM模型的图形,包括路径图、贡献图和负荷图等。 下面是一个简单的R语言代码示例,用于执行PLS-SEM分析: ``` r library(plspm) # 创建一个数据框 data <- data.frame( x1 = rnorm(100), x2 = rnorm(100), x3 = rnorm(100), y1 = rnorm(100), y2 = rnorm(100) ) # 创建PLS-SEM模型 model <- plspm(data, c("x1", "x2", "x3"), c("y1", "y2"), method = "spearman", scaled = TRUE) # 输出模型摘要信息 summary(model) # 绘制路径图 plot(model, plot = "path") ``` 在上面的代码中,我们首先创建了一个包含五个变量的数据框,然后使用plspm()函数创建了一个PLS-SEM模型。指定了三个潜变量(x1、x2和x3)和两个观测变量(y1和y2),使用斯皮尔曼相关系数作为计算方法,并对数据进行了缩放。最后,我们使用summary()函数输出了模型的摘要信息,并使用plot()函数绘制了路径图。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值