R语言使用plspm包进行偏最小二乘路径建模(PLS-PM)分析
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 著作权归作者所有。请勿转载和采集!