导读
- 结构方程模型(Structural Equation Modeling,SEM)是一种能基于变量之间的协方差矩阵分析多变量之间结构关系的多元统计分析方法,也被称为协方差结构模型。该方法是因子分析和多元回归分析的结合,可用于分析被测变量与潜在变量之间的结构关系,替代多重回归、通径分析、因子分析、协方差分析等分析方法。结构方程模型能在一次分析中估计多个相互关联的变量之间的依赖关系而受到研究者的青睐。早在20世纪80年代结构方程模型就已成熟,现在不仅广泛应用于社会科学、经济、市场、管理等研究领域,也出现在微生态相关的研究中。
一、结构方程模型在微生态研究中的应用
1. 文章一
标题:Competitive interaction with keystone taxa induced negative priming under biochar amendments
杂志:Microbiome. IF=10
时间:2019年5月-
结构方程模型:
- 结果说明:
利用结构方程模型估计了未经修正(a)和生物炭修正(b)处理下土壤性质、细菌和真菌群落对碳水化合物代谢和土壤代谢商(qCO2)的影响。在细菌(蓝色矩形)和真菌网络(红色矩形)中,添加或不添加keystone taxa的模块的贡献分别用深色或浅色表示。箭头宽度表示显著标准化路径系数的强度(P < 0.05)。系数不显著的路径用灰线表示。* * * P < 0.001;* * P < 0.01;* P < 0.05。
2. 文章二
标题:Structural equation modeling of a winnowed soil microbiome identifies how invasive plants re-structure microbial networks.
杂志:ISME J. IF=9
时间:2019年8月-
结构方程模型:
结果说明:
溴化酶与土壤性质、细菌多样性和沿溴化酶覆盖梯度的微生物网络连通性之间相互作用的结构方程模型。结构方程模型(SEM)协变量是根据来源着色的(浅绿色代表植被,棕色代表土壤)。实箭头表示显著的效果大小(P < 0.10,虚线P > 0.10),其中箭头的厚度表示关系的强度(绿色表示正关系,红色表示负关系)。
3. 文章三
标题:Starvation stress affects the interplay among shrimp gut microbiota, digestion and immune activities.
杂志:Fish Shellfish Immunol. IF=3.2
时间:2018年11月-
结构方程模型:
结果说明:
结构方程模型显示了虾肠道菌群、酶活性和体重/大小之间的相互作用,箭头上的数字为标准化路径系数。箭头宽度表示因果关系的强度。
4. 文章四
标题:Climate controls prokaryotic community composition in desert soils of the southwestern United States
杂志:FEMS Microbiol Ecol. IF=4.0
时间:2017年10月-
结构方程模型:
结果说明:
结构方程模型表明,气候(潜变量,圆)间接和直接地对土壤微生物群落组成的影响大于土壤性质(复合变量,灰盒)。
二、R语言结构方程建模
1. 工具准备
1)R软件:https://www.r-project.org/
2)R包:lavaan ## 结构方程建模
3)R包:semPlot ## 结果可视化
4)数据:使用lavaan包内的“PoliticalDemocracy”数据集
R 3.6.1安装加载后显示如下,推测R 3.6.3更适合该包:
2. 建模方法
1)设定模型
- 首先要根据分析需要设计模型,假如我们想要拟合如上图的模型:
model <- '
# 利用被测变量(右)定义潜在变量(左):测量模型
ind60 =~ x1 + x2 + x3
dem60 =~ y1 + y2 + y3 + y4
dem65 =~ y5 + y6 + y7 + y8
# 构建回归方程:路径模型
dem60 ~ ind60
dem65 ~ ind60 + dem60
# 两边相同,表示该变量的方差,不同的话表示两者的协方差
y1 ~~ y5
y2 ~~ y4 + y6
y3 ~~ y7
y4 ~~ y8
y6 ~~ y8'
2)拟合模型
library(lavaan)
## 加载SEM建模需要的R包:lavaan
fit <- sem(model, data = PoliticalDemocracy)
## 使用SEM函数拟合模型
summary(fit)
summary(fit, fit.measures=TRUE)
summary(fit, standardized = TRUE)
## 查看拟合结果
3)计算拟合系数
fitMeasures(fit,c("chisq","df","pvalue","gfi","cfi","rmr","srmr","rmsea"))
- 计算出卡方、自由度、p值、CFI等统计值,结果和结果说明如下:
指标名称 | 名称缩写 | 指标作用 | 接受标准 |
---|---|---|---|
卡方值 | CHISQ | 矩阵整体相似程度 | P>0.05 |
拟合指数 | GFI | 说明模型解释力 | >0.90 |
相对拟合指数 | CFI | 说明模型较虚无模型的改善程度 | >0.95 |
未标准化残差 | RMR | 未标准化假设模型整体残差 | 越小越好 |
标准化残差 | SRMR | 标准化模型整体残差 | <0.08 |
近似均方根误差 | RMSEA | 理论模型与饱和模型的差异 | <0.05 |
4)可视化
library(semPlot)
## 加载SEM绘图包
pdf("plot.pdf")
p = semPaths(fit)
dev.off()
## 使用semPaths函数绘图
pdf("plot2.pdf")
p2 = semPaths(fit, what = "std", layout = "tree2", fade=F, nCharNodes = 0)
dev.off()
pdf("plot3.pdf")
p3 = semPaths(fit, what = "std", layout = "tree2", fade=F, nCharNodes = 0, intercepts = F, residuals = F, thresholds = F)
dev.off()
结束语
- 结构方程模型在社会、经济等学科中早已经有了广泛的应用,这几年也逐渐被微生物群研究有关的工作者关注,相关的文章也逐渐增加。与常见的统计分析相比,结构方程模型分析更适合多变量结构关系分析。以上利用R语言lavaan包自带的数据集“PoliticalDemocracy”进行了最基本的结构方程模型分析和模型可视化。模型设计可以根据自己的研究设计和具体的分析需求进行调整,例如把被测变量换成微生物群的丰度数据就可以进行微生态SEM分析了。最后的绘图只是一个最简单的可视化方案,其实semPaths函数有很多的绘图参数,通过参数调整完全可以获得更漂亮的结果,感兴趣可以自己动手试一试。
参考
同步发布于微信公众号:微生态