[论文分享] 跟着NC学分析-偏最小二乘路径模型

科技   2024-11-11 20:01   陕西  

欢迎关注R语言数据分析指南

本节来分享解读一下nature communications上一篇文章的数据可视化案例图,论文中图表的数据+代码作者均有提供可从文章中直接下载,数据及代码整理的非常整洁明了,实际测试均可成功运行,对此感兴趣的读者可以去原文中详细查看。本次先来介绍论文中的Figure_3图,个人观点仅供参考,更多详细内容请参考论文介绍。

论文

The biogeography of soil microbiome potential growth rates

https://www.nature.com/articles/s41467-024-53753-w

论文原图

当然这种风格的图肯定不是R代码生成的,但是通过plspm包内的innerplot()函数可以将分析结果生成基础图,后续可在本地进行精细修改。

代码运行图

plspm官方文档

https://github.com/gastonstat/plspm

代码展示

library(readxl)
library(tidyverse)
library(ggpubr)
install_github("gastonstat/plspm")
library (plspm)

growth <- data.frame(read_excel("41467_2024_53753_MOESM4_ESM.xlsx"))

# 从growth数据框中选择特定列用于结构方程模型
semdata = growth[,c("MBCtoP","MBNtoP","F_genome_size","B_genome_size",
                    "optimum_tmp","rrn_copy_number",
                    "AI","MAT","pH","CS","SOC","TN","TP","DOC","AvaiN",
                    "Ascomycota","Actinobacteriota","Gemmatimonadota",
                    "Acidobacteriota","Proteobacteria","Basidiomycota",
                    "RelGrowth")]

# 对某些变量取自然对数转换,以减小数据的偏态分布
semdata$AI <- log(semdata$AI) # 对AI取对数
semdata$SOC <- log(semdata$SOC) # 对SOC取对数
semdata$TN <- log(semdata$TN) # 对TN取对数
semdata$TP <- log(semdata$TP) # 对TP取对数
semdata$DOC <- log(semdata$DOC) # 对DOC取对数
semdata$AvaiN <- log(semdata$AvaiN) # 对AvaiN取对数
semdata$RelGrowth <- log(semdata$RelGrowth) # 对RelGrowth取对数
# 对数据进行标准化处理,使所有变量具有均值为0、标准差为1
semdata = data.frame(scale(semdata))
# 定义数据块,将变量分组,用于PLS-PM模型
dat_blocks <- list(
  MAT = c("MAT"), # MAT组包含"MAT"变量
  AI = c("AI"), # AI组包含"AI"变量
  Soil = c("CS""pH"), # 土壤组包含"CS"和"pH"变量
  Resources = c("SOC""TN""TP""DOC""AvaiN"), # 资源组包含五个变量
  Structure = c("Ascomycota""Gemmatimonadota""Actinobacteriota""Acidobacteriota""Proteobacteria""Basidiomycota"), # 结构组包含微生物分类变量
  Traits = c("MBCtoP""MBNtoP""F_genome_size""B_genome_size""optimum_tmp""rrn_copy_number"), # 性状组包含六个变量
  Growth = "RelGrowth" # 生长组包含"RelGrowth"变量
)

# 定义路径矩阵,描述组之间的关系
MAT <- c(0000000# MAT组不影响其他组
AI <- c(0000000# AI组不影响其他组
Soil <- c(1100000# 土壤组受MAT和AI影响
Resources <- c(1110000# 资源组受MAT、AI和Soil影响
Structure <- c(1111000# 结构组受MAT、AI、Soil和Resources影响
Traits <- c(1001100# 性状组受MAT、Resources和Structure影响
Growth <- c(0101010# 生长组受AI、Resources和Traits影响

# 创建路径矩阵
dat_path <- rbind(MAT, AI, Soil, Resources, Structure, Traits, Growth)
colnames(dat_path) <- rownames(dat_path) # 设置行列名称

# 创建并运行简单的PLS-PM模型,?plspm可查看更多参数
dat_pls <- plspm(semdata, dat_path, dat_blocks)
dat_pls # 查看PLS-PM模型的结果
summary(dat_pls) # 查看模型摘要

# 查看路径系数的估计值及统计信息
dat_pls$path_coefs # 查看路径系数
dat_pls$inner_model # 查看内模型结构

# 查看因果关系的路径图,更多选项参考?innerplot
innerplot(dat_pls, lcol = 'grey5'# 绘制内模型的路径图

# 查看因果关系的概要和效果
dat_pls$inner_summary # 内模型概要
dat_pls$effects # 查看路径效果

# 查看外部模型,包含外部负荷和权重
dat_pls$outer_model # 外部模型结果

# 绘制外部模型的路径图,展示负荷值
outerplot(dat_pls, lcol = 'grey9', arr.width = 0.05, box.size = 0.1# 外部模型路径图
outerplot(dat_pls, what = "loadings", lcol = 'black', arr.width = 0.05, box.size = 0.1# 负荷值路径图

# 查看模型的拟合度(goodness of fit),最优大于0.7
dat_pls$gof 

# 绘制模型的完整可视化
plot(dat_pls) # 完整模型可视化

关注下方公众号下回更新不迷路

购买介绍

本节介绍到此结束,有需要学习R数据可视化的朋友欢迎到淘宝店铺:R语言数据分析指南,购买小编的R语言可视化文档(2024版),购买将赠送2023年的绘图文档内容。目前此文档(2023+2024)已经更新上传200案例文档,每个案例都附有相应的数据和代码,并配有对应的注释文档,方便大家学习和参考。

2024更新的绘图内容将同时包含数据+代码+注释文档+文档清单,2023无目录仅有数据文件夹,小编只分享案例文档,不额外回答问题,无答疑服务,零基础不推荐买。

案例特点

所选案例图均属于个性化分析图表完全适用于论文发表,内容异常丰富两年累计发布案例图200+,2024年6月起提供html版注释文档更加直观易学。文档累计上千人次购买拥有良好的社群交流体验。R代码结构清晰易懂,为防止中文乱码2024起提供单独的注释文档

R代码结构清晰易懂,为防止中文乱码2024年6月起提供单独html注释文档

群友精彩评论

淘宝店铺

2024年已更新案例图展示

2023年案例图展示


R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
 最新文章