R语言使用plspm包进行偏最小二乘路径建模(PLS-PM)分析

1. 安装plspm包

# 安装 devtools 包
install.packages('devtools')

# 从 GitHub 上安装 plspm 包
devtools::install_github('gastonstat/plspm')

# 加载 plspm 包
library(plspm)

2. 读取数据

# 使用 readxl 包读取 Excel 文件
library(readxl)

dat <- read_excel('C:/Users/图图/Desktop/辣鸡腿/SEM.xlsx')

3. 指定潜变量和变量关系

# 指定潜变量,在 R 中以列表(list)存储变量和潜变量的关系
# 您可以直接指定列名称,或者指定列的下标都可以,我个人习惯指定列名称
dat_blocks <- list(
    Enzyme = c('ACP', 'UE', 'GC'),
    Bacteria = c('CHAO1', 'PIELOU', 'SHANNON'),
    ACP = 'ACP',
    UE = 'UE',
    GC = 'GC',
    CHAO1 = 'CHAO1',
    PIELOU = 'PIELOU',
    SHANNON = 'SHANNON'
)
dat_blocks

# 通过 0-1 矩阵描述潜变量之间的关联,其中 0 代表变量间没有关联,1 代表有关联
Enzyme <- c(1, 1, 1, 1, 0, 0, 0)
Bacteria <- c(0, 0, 0, 0, 1, 1, 1)
ACP <- c(1, 0, 0, 0, 0, 0, 0)
UE <- c(1, 0, 0, 0, 0, 0, 0)
GC <- c(1, 0, 0, 0, 0, 0, 0)
CHAO1 <- c(0, 1, 0, 0, 0, 0, 0)
PIELOU <- c(0, 1, 0, 0, 0, 0, 0)
SHANNON <- c(0, 1, 0, 0, 0, 0, 0)

dat_path <- rbind(Enzyme, Bacteria, ACP, UE, GC, CHAO1, PIELOU, SHANNON)
colnames(dat_path) <- rownames(dat_path)
dat_path

# 指定因果关系,可选 A(代表列是行的因) 或 B(代表行是列的因)
dat_modes <- rep('A', 5)
dat_modes

4. 建立 PLS-PM 模型

# 一个简单的 PLS-PM,更多参数详情 ?plspm
dat_pls <- plspm(dat, dat_path, dat_blocks, modes = dat_modes)
dat_pls
summary(dat_pls)

5. 解读结果

# 结果内容比较多,细节部分还需自行参阅 plspm 包的用户手册:
# 完整版手册,235页:https://www.gastonsanchez.com/PLS_Path_Modeling_with_R.pdf
# 简版手册,10页:https://rdrr.io/cran/plspm/f/inst/doc/plspm_introduction.pdf

# 以下仅展示了一部分相对重要的内容

# 查看路径系数的参数估计值,以及相关的统计信息
dat_pls$path_coefs
dat_pls$inner_model

# 查看因果关系的路径图,详情 ?innerplot
innerplot(dat_pls, colpos = 'red', colneg = 'blue', show.values = TRUE, lcol = 'gray', box.lwd = 0)

# 查看作为外源潜变量和内源潜变量的状态
dat_pls$inner_summary

# 查看变量间的影响状态
dat_pls$effects

# 查看观测变量和潜变量关系,可通过 outerplot() 画图展示类似路径图的结构,详情 ?outerplot
dat_pls$outer_model
outerplot(dat_pls, what = 'loadings', arr.width = 0.1, colpos = 'red', colneg = 'blue', show.values = TRUE, lcol = 'gray')
outerplot(dat_pls, what = 'weights', arr.width = 0.1, colpos = 'red', colneg = 'blue', show.values = TRUE, lcol = 'gray')

# goodness-of-fit 值可以帮助评估模型优度
dat_pls$gof

# 查看潜变量得分,可以理解为标准化后的潜变量的值
dat_pls$scores

# 输出潜变量的值
#latent <- data.frame(dat_pls$scores)
#latent <- cbind(dat$site, latent)
#write.csv(latent, 'latent.csv')

注意:

  • 以上代码仅供参考,具体步骤和参数设置需根据您的实际情况进行调整。
  • 请确保已安装并加载了所需的包,如 readxl 和 plspm。
  • 更多细节请参考plspm包的用户手册。

希望本教程能帮助您理解如何使用plspm包进行偏最小二乘路径建模(PLS-PM)分析。


原文地址: https://www.cveoy.top/t/topic/pmoH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录