稀疏偏最小二乘法简介
最小二乘法,又称最小平方法,是一种数学优化建模方法。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便的求得未知的数据,并使得求得的数据与实际数据之间误差的平方和为最小。偏最小二乘(PLS)最大化潜在变量之间的协方差,而不是相关性,它能够同时对多个响应变量进行建模,并处理嘈杂的相关变量,但在对高维数据进行操作时,其可解释性受到影响。sPLS(稀疏偏最小二乘法)在PLS的基础上,综合运用PCA,CCA和LASSO三种模型,将高维数据降维,提取主成分,开展相关性分析,使用LASSO罚分测虐挑选出核心元素,最终输出样本分布图和两组学强相关的元素集合,最后通过相关性散点图呈现关键物种和代谢物。稀疏偏最小二乘回归方法在PLS中内置了变量选择过程,并且在融合两组组学和对结果的生物学解释方面有良好的性能。也就是将lasso惩罚变量选择法加入了PLS。
标签:#微生物组数据分析 #MicrobiomeStatPlot #稀疏偏最小二乘回归分析 #R语言可视化
作者:First draft(初稿):Defeng Bai(白德凤);Proofreading(校对):Ma Chuang(马闯) and Jiani Xun(荀佳妮);Text tutorial(文字教程):Defeng Bai(白德凤)
源代码及测试数据链接:
https://github.com/YongxinLiu/MicrobiomeStatPlot/项目中目录 3.Visualization_and_interpretation/sPLS_Analysis
或公众号后台回复“MicrobiomeStatPlot”领取
稀疏偏最小二乘回归分析案例
这是Jakob Stokholm课题组2023年发表于Nature Medicine上的文章,第一作者为Cristina Leal Rodríguez,题目为:The infant gut virome is associated with preschool asthma risk independently of bacteria. https://doi.org/10.1038/s41591-023-02685-x.
图 3 | 婴儿温带病毒群与学龄前哮喘的特征病毒家族以及与宿主细菌的关联。
图3 a,1岁时核心温带VFCs和学龄前哮喘的sPLS模型的重复十倍交叉验证(CV)的AUC(498个中n=133)。方框图表示中值交叉验证模型的类别预测。方框的中心表示中值,其边界表示第25个和第75个百分位数,胡须的下端和上端分别表示最小值和最大值,距离方框图的各个端部不超过1.5×IQR。b、使用整个队列(n=631),对十次重复十倍交叉验证的sPLS模型(n=100)的最佳载荷集做出贡献的19个特征VFC(所有caudoviruse)的表示。条形图描绘了重复±s.d.之间的中位数。VFC根据其平均相对丰度(从高到低)从上到下排序,并按其最频繁的宿主着色(通过序列相似性预测)。所有VFCs均呈负负荷,这意味着与对照组相比,它们在后来发展为哮喘的儿童的婴儿肠道中核心温带病毒组的相对空间中的丰度较低(498个中n=133)。
结果
由于主要在温带病毒组中观察到成分差异,因此我们旨在确定与哮喘发展相关的尽可能小的协变核心温和噬菌体科,并计算每个儿童的病毒组哮喘特征得分。这是通过重复的十倍交叉验证的稀疏偏最小二乘(sPLS)模型实现的,该模型实现了足够的性能,交叉验证的曲线下重复面积中位数(AUC)为0.59(0.57–0.60)(图第3a段)。该模型选择了一组最小的19个与后期哮喘共同相关的温带VFC(图第3b段)。病毒性哮喘评分增加一个标准差,5岁时患哮喘的几率增加34%(OR=1.34(1.11-1.62);P=0.002)。
稀疏偏最小二乘回归分析实战
源代码及测试数据链接:
https://github.com/YongxinLiu/MicrobiomeStatPlot/
或公众号后台回复“MicrobiomeStatPlot”领取
软件包安装
# 基于CRAN安装R包,检测没有则安装
p_list = c("RColorBrewer","mlbench","doParallel","caret","pROC","tidyverse","ggsci",
"randomcoloR")
for(p in p_list){if (!requireNamespace(p)){install.packages(p)}
library(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)}
# doMC如果安装不成功,需要在https://cran.rstudio.com/web/packages/doMC/index.html下载软件包在本地安装
# 基于Bioconductor安装R包
if (!requireNamespace("mixOmics", quietly = TRUE))
BiocMana