【数学建模】结构方程模型 SEM 详解

【数学建模】结构方程模型 SEM 详解

文章目录

  • [【数学建模】结构方程模型 SEM 详解](#【数学建模】结构方程模型 SEM 详解)
    • 一、什么是结构方程模型?
    • [二、SEM 的核心思想](#二、SEM 的核心思想)
      • [1. 测量模型](#1. 测量模型)
      • [2. 结构模型](#2. 结构模型)
    • [三、SEM 中的重要概念](#三、SEM 中的重要概念)
      • [1. 观测变量](#1. 观测变量)
      • [2. 潜变量](#2. 潜变量)
      • [3. 路径系数](#3. 路径系数)
      • [4. 因子载荷](#4. 因子载荷)
      • [5. 测量误差](#5. 测量误差)
    • [四、SEM 的基本模型类型](#四、SEM 的基本模型类型)
      • [1. 验证性因子分析 CFA](#1. 验证性因子分析 CFA)
      • [2. 路径分析](#2. 路径分析)
      • [3. 完整结构方程模型](#3. 完整结构方程模型)
      • [4. 中介效应模型](#4. 中介效应模型)
      • [5. 调节效应模型](#5. 调节效应模型)
    • [五、SEM 的一般分析流程](#五、SEM 的一般分析流程)
    • [六、SEM 常用拟合指标](#六、SEM 常用拟合指标)
      • [1. 卡方值与自由度比](#1. 卡方值与自由度比)
      • [2. RMSEA](#2. RMSEA)
      • [3. CFI](#3. CFI)
      • [4. TLI](#4. TLI)
      • [5. SRMR](#5. SRMR)
      • [6. GFI 和 AGFI](#6. GFI 和 AGFI)
    • 七、信度与效度检验
      • [1. Cronbach's Alpha](#1. Cronbach’s Alpha)
      • [2. 组合信度 CR](#2. 组合信度 CR)
      • [3. 平均方差提取量 AVE](#3. 平均方差提取量 AVE)
      • [4. 聚合效度](#4. 聚合效度)
      • [5. 区分效度](#5. 区分效度)
    • [八、SEM 与普通回归分析的区别](#八、SEM 与普通回归分析的区别)
    • [九、SEM 应用示例](#九、SEM 应用示例)
      • [1. R 语言 lavaan 示例](#1. R 语言 lavaan 示例)
      • [2. Python semopy 示例](#2. Python semopy 示例)
    • [十、SEM 结果如何解读?](#十、SEM 结果如何解读?)
      • [1. 看模型拟合度](#1. 看模型拟合度)
      • [2. 看因子载荷](#2. 看因子载荷)
      • [3. 看路径系数](#3. 看路径系数)
      • [4. 看中介效应](#4. 看中介效应)
    • [十一、SEM 报告写作模板](#十一、SEM 报告写作模板)
      • [1. 测量模型描述](#1. 测量模型描述)
      • [2. 拟合度描述](#2. 拟合度描述)
      • [3. 路径关系描述](#3. 路径关系描述)
      • [4. 中介效应描述](#4. 中介效应描述)
    • [十二、SEM 常见问题与解决方法](#十二、SEM 常见问题与解决方法)
      • [1. 模型拟合度不好怎么办?](#1. 模型拟合度不好怎么办?)
      • [2. 因子载荷低怎么办?](#2. 因子载荷低怎么办?)
      • [3. 潜变量相关性太高怎么办?](#3. 潜变量相关性太高怎么办?)
      • [4. 样本量太小可以做 SEM 吗?](#4. 样本量太小可以做 SEM 吗?)
      • [5. SEM 能证明因果关系吗?](#5. SEM 能证明因果关系吗?)
    • [十三、SEM 与 PLS-SEM 的区别](#十三、SEM 与 PLS-SEM 的区别)
      • [1. CB-SEM](#1. CB-SEM)
      • [2. PLS-SEM](#2. PLS-SEM)
      • [3. 如何选择?](#3. 如何选择?)
    • [十四、常用 SEM 软件](#十四、常用 SEM 软件)
      • [1. AMOS](#1. AMOS)
      • [2. Mplus](#2. Mplus)
      • [3. R lavaan](#3. R lavaan)
      • [4. SmartPLS](#4. SmartPLS)
      • [5. Python semopy](#5. Python semopy)
    • [十五、SEM 建模的注意事项](#十五、SEM 建模的注意事项)
      • [1. SEM 是理论驱动,不是数据驱动](#1. SEM 是理论驱动,不是数据驱动)
      • [2. 不要过度依赖修正指数](#2. 不要过度依赖修正指数)
      • [3. 注意共同方法偏差](#3. 注意共同方法偏差)
      • [4. 不要只报告显著性](#4. 不要只报告显著性)
      • [5. 区分统计显著与实际意义](#5. 区分统计显著与实际意义)
    • 十六、总结

一、什么是结构方程模型?

结构方程模型,英文为 Structural Equation Modeling ,简称 SEM。它是一种综合性的多变量统计分析方法,常用于社会科学、心理学、管理学、教育学、医学、市场营销、信息系统等研究领域。

SEM 可以同时处理:

  1. 多个因变量之间的关系;
  2. 自变量、中介变量 、调节变量之间的复杂因果路径
  3. 无法直接观测的潜变量
  4. 测量误差;
  5. 理论模型与实际数据之间的拟合程度。

传统的回归分析通常关注一个因变量与多个自变量之间的关系,而 SEM 可以同时估计多个回归方程,并且允许研究者把一些抽象概念建模为潜变量,例如"满意度""信任感""学习动机""品牌忠诚度"等。

例如,在用户满意度研究中,我们可能关心:

  • 服务质量是否影响用户满意度?
  • 用户满意度是否进一步影响用户忠诚度?
  • 用户信任是否在服务质量与忠诚度之间起中介作用?
  • "服务质量""满意度""忠诚度"这些变量又分别由多个问卷题项测量。

这种情况下,SEM 就非常适合。


二、SEM 的核心思想

SEM 的核心思想可以概括为:用观测变量去测量潜变量,并用路径关系描述潜变量之间的因果或相关结构。

SEM 通常由两部分组成:

  1. 测量模型
  2. 结构模型

1. 测量模型

测量模型主要回答:潜变量是如何被观测变量测量出来的?

假设一个情景:现在要调研某个产品的用户满意度。"用户满意度"这个概念不能直接被观察,我们通常发放一个问卷,通过问卷题项来测量:

  • 我对该产品总体满意;
  • 该产品符合我的预期;
  • 我愿意继续使用该产品。

这些题项就是观测变量,而"用户满意度"就是潜变量。

可以表示为:

text 复制代码
满意度 → 满意度题项1
满意度 → 满意度题项2
满意度 → 满意度题项3

在 SEM 中,这类关系通常称为 因子载荷

2. 结构模型

结构模型主要回答:潜变量之间存在怎样的影响关系?

例如:还是在上面的情景中,假设存在如下的因果路径:

text 复制代码
服务质量 → 用户满意度 → 用户忠诚度

这表示服务质量会影响用户满意度,而用户满意度进一步影响用户忠诚度。

如果研究服务质量是否通过满意度影响忠诚度,这就是典型的 中介效应模型


三、SEM 中的重要概念

1. 观测变量

观测变量是可以直接收集到的数据,例如问卷题项、考试分数、销售额、年龄、收入等。

在问卷研究中,常见的观测变量就是每一道题目的得分。

例如:

text 复制代码
SQ1:该平台响应速度快
SQ2:该平台服务态度好
SQ3:该平台功能稳定

这些都是观测变量。

2. 潜变量

潜变量是无法直接观测的抽象概念,需要通过多个观测变量间接测量。

例如:

  • 服务质量;
  • 顾客满意度;
  • 品牌忠诚度;
  • 学习动机;
  • 感知价值;
  • 组织承诺。

潜变量通常用椭圆表示,观测变量通常用矩形表示。

3. 路径系数

路径系数表示变量之间影响关系的强度和方向。

例如:

text 复制代码
用户满意度 → 用户忠诚度:0.72

说明用户满意度对用户忠诚度具有正向影响,且影响较强。

路径系数一般可以理解为标准化回归系数,取值越大,说明影响越强。

4. 因子载荷

因子载荷表示观测变量对潜变量的解释程度。

例如:

text 复制代码
满意度 → SAT1:0.85
满意度 → SAT2:0.79
满意度 → SAT3:0.88

说明这三个题项都能够较好地测量"满意度"。

一般来说,标准化因子载荷最好大于 0.7;如果大于 0.5,很多研究中也可以接受,但需要结合理论和整体模型判断。

5. 测量误差

SEM 的一个重要优势是能够显式考虑测量误差。

在现实研究中,问卷题项并不能完美测量某个概念。例如,受访者可能理解偏差、填写不认真、受情绪影响等,这些都会带来误差。

SEM 会将观测变量拆分为:

text 复制代码
观测变量 = 潜变量解释部分 + 测量误差

这使得 SEM 比普通回归分析更适合处理问卷数据和潜变量研究。


四、SEM 的基本模型类型

1. 验证性因子分析 CFA

CFA,全称为 Confirmatory Factor Analysis ,即验证性因子分析

它主要用于检验测量模型是否合理,也就是判断问卷题项是否能够有效测量对应的潜变量。

例如,假设我们有三个潜变量:

  • 服务质量 SQ;
  • 用户满意度 SAT;
  • 用户忠诚度 LOY。

每个潜变量由三个题项测量:

text 复制代码
SQ 由 SQ1、SQ2、SQ3 测量
SAT 由 SAT1、SAT2、SAT3 测量
LOY 由 LOY1、LOY2、LOY3 测量

CFA 的作用就是检验这种题项归属关系是否成立。

2. 路径分析

路径分析只包含观测变量,不包含潜变量。

例如:

text 复制代码
收入 → 消费意愿
教育水平 → 收入
教育水平 → 消费意愿

路径分析可以看作 SEM 的一种简化形式。

3. 完整结构方程模型

完整 SEM 同时包含测量模型和结构模型。

例如:

text 复制代码
服务质量 → 用户满意度 → 用户忠诚度

其中,每个潜变量又由多个观测题项测量。

这类模型是 SEM 最常见的应用形式。

4. 中介效应模型

中介效应模型用于研究一个变量是否通过另一个变量影响结果变量。

例如:

text 复制代码
服务质量 → 用户满意度 → 用户忠诚度

这里,用户满意度就是中介变量。

总效应可以分解为:

text 复制代码
总效应 = 直接效应 + 间接效应

其中:

text 复制代码
间接效应 = 服务质量对满意度的影响 × 满意度对忠诚度的影响

5. 调节效应模型

调节效应模型用于研究某个变量是否会改变两个变量之间关系的强弱。

例如:

text 复制代码
服务质量 → 用户满意度

这个关系可能会受到用户年龄、使用经验、产品类型等因素影响。

如果使用经验越高,服务质量对满意度的影响越强,那么使用经验就是调节变量。


五、SEM 的一般分析流程

SEM 建模不是简单地把数据放进软件里跑结果,而是一个理论驱动的数据分析过程。一般流程如下。

第一步:构建理论模型

首先需要根据理论、文献或研究假设确定变量之间的关系。

例如:

text 复制代码
H1:服务质量正向影响用户满意度
H2:用户满意度正向影响用户忠诚度
H3:服务质量正向影响用户忠诚度
H4:用户满意度在服务质量与用户忠诚度之间起中介作用

SEM 强调理论先行,不能完全依靠数据探索关系。

第二步:设计测量题项

每个潜变量通常需要多个观测题项进行测量。

例如:

text 复制代码
服务质量:
SQ1:平台功能稳定
SQ2:平台响应及时
SQ3:客服服务专业

用户满意度:
SAT1:我对平台整体满意
SAT2:平台符合我的预期
SAT3:我认为使用体验良好

用户忠诚度:
LOY1:我愿意继续使用该平台
LOY2:我愿意向他人推荐该平台
LOY3:我未来仍会优先选择该平台

第三步:收集数据

SEM 对样本量有一定要求。常见经验规则包括:

  • 样本量最好大于 200;
  • 样本量最好是观测变量数量的 5 到 10 倍以上;
  • 模型越复杂,需要的样本量越大。

这些只是经验标准,实际还要看模型复杂度、数据质量、估计方法等因素。

第四步:数据预处理

常见的数据预处理包括:

  • 缺失值处理;
  • 异常值检查;
  • 正态性检验;
  • 共同方法偏差检验;
  • 信度分析;
  • 效度分析。

在问卷数据中,还需要注意是否存在无效问卷,例如所有题项都选择同一选项、答题时间过短等情况。

第五步:验证测量模型

通常先进行 CFA,检验题项与潜变量之间的关系是否合理。

常用指标包括:

  • 标准化因子载荷;
  • Cronbach's Alpha;
  • 组合信度 CR;
  • 平均方差提取量 AVE;
  • 区分效度;
  • 聚合效度。

第六步:检验结构模型

测量模型通过后,再检验潜变量之间的路径关系。

主要关注:

  • 路径系数是否显著;
  • 假设是否成立;
  • 模型拟合度是否达标;
  • 中介效应或调节效应是否显著。

六、SEM 常用拟合指标

SEM 非常重视模型拟合度。模型拟合度用于判断理论模型与样本数据之间的匹配程度。

常见指标如下。

1. 卡方值与自由度比

常写作:

text 复制代码
χ²/df

一般认为:

text 复制代码
χ²/df < 3

说明模型拟合较好。

如果小于 5,在一些研究中也可以接受。

2. RMSEA

RMSEA 全称为 Root Mean Square Error of Approximation,表示近似误差均方根。

一般判断标准:

text 复制代码
RMSEA < 0.08:可以接受
RMSEA < 0.05:拟合较好

3. CFI

CFI 全称为 Comparative Fit Index,比较拟合指数。

一般判断标准:

text 复制代码
CFI > 0.90:可以接受
CFI > 0.95:拟合较好

4. TLI

TLI 全称为 Tucker-Lewis Index。

一般判断标准:

text 复制代码
TLI > 0.90:可以接受
TLI > 0.95:拟合较好

5. SRMR

SRMR 全称为 Standardized Root Mean Square Residual,标准化残差均方根。

一般判断标准:

text 复制代码
SRMR < 0.08

6. GFI 和 AGFI

GFI 和 AGFI 也是传统 SEM 中常见的拟合指标。

一般认为:

text 复制代码
GFI > 0.90
AGFI > 0.90

不过在现代研究中,CFI、TLI、RMSEA、SRMR 使用得更加普遍。


七、信度与效度检验

SEM 常用于问卷研究,因此信度和效度检验非常重要。

1. Cronbach's Alpha

Cronbach's Alpha 用于衡量量表内部一致性。

一般判断标准:

text 复制代码
Alpha > 0.7:信度较好
Alpha > 0.8:信度很好
Alpha > 0.9:信度非常高

但 Alpha 过高也不一定总是好事,可能说明题项重复度过高。

2. 组合信度 CR

CR,全称为 Composite Reliability,用于衡量潜变量的内部一致性。

一般判断标准:

text 复制代码
CR > 0.7

3. 平均方差提取量 AVE

AVE,全称为 Average Variance Extracted,用于衡量潜变量对其观测变量的解释能力。

一般判断标准:

text 复制代码
AVE > 0.5

AVE 越高,说明潜变量能够解释更多题项方差。

4. 聚合效度

聚合效度表示同一潜变量下的多个题项是否确实测量了同一个概念。

通常要求:

text 复制代码
标准化因子载荷 > 0.5 或 0.7
CR > 0.7
AVE > 0.5

5. 区分效度

区分效度表示不同潜变量之间是否具有足够区别。

常用判断方法包括:

  1. Fornell-Larcker 标准;
  2. HTMT 比率;
  3. 潜变量相关系数检验。

Fornell-Larcker 标准通常要求:

text 复制代码
某潜变量 AVE 的平方根 > 该潜变量与其他潜变量的相关系数

如果不满足,说明不同潜变量之间可能区分不明显。


八、SEM 与普通回归分析的区别

对比维度 普通回归分析 结构方程模型 SEM
变量类型 通常处理观测变量 可处理观测变量和潜变量
方程数量 通常一次一个因变量 可同时估计多个方程
测量误差 通常不显式建模 可以显式考虑测量误差
理论模型 相对简单 可表达复杂理论模型
中介效应 可做,但通常分步 可在整体模型中同时估计
模型拟合度 关注解释力和显著性 关注整体拟合度和路径关系
适用场景 简单因果或预测关系 复杂变量关系、问卷量表、理论检验

简单理解:

  • 如果你只有几个明确的观测变量,并且只想预测一个结果变量,回归分析可能已经足够。
  • 如果你有多个潜变量、多个题项、复杂路径、中介效应或测量误差,SEM 更合适。

九、SEM 应用示例

在实际研究中,SEM 模型在很多地学分析、商业分析等情境中都有很多应用,此处还是以我们在前文中提到的那个关于"服务质量、满意度与忠诚度"情景为例。假设我们研究以下模型:

text 复制代码
服务质量 SQ → 用户满意度 SAT → 用户忠诚度 LOY
服务质量 SQ → 用户忠诚度 LOY

其中:

text 复制代码
SQ 由 SQ1、SQ2、SQ3 测量
SAT 由 SAT1、SAT2、SAT3 测量
LOY 由 LOY1、LOY2、LOY3 测量

研究假设:

text 复制代码
H1:服务质量正向影响用户满意度
H2:用户满意度正向影响用户忠诚度
H3:服务质量正向影响用户忠诚度
H4:满意度在服务质量与忠诚度之间发挥中介作用

1. R 语言 lavaan 示例

在 R 语言中,常用 lavaan 包进行 SEM 分析。

r 复制代码
install.packages("lavaan")
library(lavaan)

# 定义 SEM 模型
model <- '
  # 测量模型
  SQ =~ SQ1 + SQ2 + SQ3
  SAT =~ SAT1 + SAT2 + SAT3
  LOY =~ LOY1 + LOY2 + LOY3

  # 结构模型
  SAT ~ SQ
  LOY ~ SAT + SQ

  # 间接效应
  indirect := SQ * SAT
'

# 拟合模型
fit <- sem(model, data = data)

# 输出结果
summary(fit, standardized = TRUE, fit.measures = TRUE)

需要注意,上面 indirect := SQ * SAT 只是示意写法。更规范的写法应该为路径命名:

r 复制代码
model <- '
  # 测量模型
  SQ =~ SQ1 + SQ2 + SQ3
  SAT =~ SAT1 + SAT2 + SAT3
  LOY =~ LOY1 + LOY2 + LOY3

  # 结构模型
  SAT ~ a * SQ
  LOY ~ b * SAT + c * SQ

  # 效应分解
  indirect := a * b
  direct := c
  total := c + a * b
'

fit <- sem(model, data = data, se = "bootstrap", bootstrap = 5000)

summary(fit, standardized = TRUE, fit.measures = TRUE, rsquare = TRUE)

其中:

text 复制代码
a:服务质量对满意度的影响
b:满意度对忠诚度的影响
c:服务质量对忠诚度的直接影响
a*b:间接效应
c + a*b:总效应

如果 bootstrap 置信区间不包含 0,通常说明中介效应显著。

2. Python semopy 示例

Python 中也可以使用 semopy 进行 SEM 分析。

安装:

bash 复制代码
pip install semopy pandas

示例代码:

python 复制代码
import pandas as pd
from semopy import Model, calc_stats

# 读取数据
data = pd.read_csv("sem_data.csv")

# 定义模型
desc = """
SQ =~ SQ1 + SQ2 + SQ3
SAT =~ SAT1 + SAT2 + SAT3
LOY =~ LOY1 + LOY2 + LOY3

SAT ~ SQ
LOY ~ SAT + SQ
"""

# 拟合模型
model = Model(desc)
model.fit(data)

# 查看参数估计结果
estimates = model.inspect()
print(estimates)

# 查看拟合指标
stats = calc_stats(model)
print(stats)

Python 的 semopy 使用起来比较简洁,适合希望在 Python 环境中完成 SEM 分析的用户。


十、SEM 结果如何解读?

SEM 结果通常从以下几个方面解读。

1. 看模型拟合度

首先看整体模型拟合是否达标。

例如:

text 复制代码
χ²/df = 2.31
CFI = 0.953
TLI = 0.941
RMSEA = 0.061
SRMR = 0.045

可以解释为:

模型整体拟合良好,理论模型与样本数据之间具有较好匹配度。

2. 看因子载荷

例如:

text 复制代码
SQ1 = 0.82
SQ2 = 0.79
SQ3 = 0.86

可以解释为:

服务质量各测量题项的标准化因子载荷均大于 0.7,说明题项能够较好地反映服务质量这一潜变量。

3. 看路径系数

例如:

text 复制代码
SQ → SAT:β = 0.68,p < 0.001
SAT → LOY:β = 0.55,p < 0.001
SQ → LOY:β = 0.21,p < 0.05

可以解释为:

服务质量对用户满意度具有显著正向影响,用户满意度对用户忠诚度具有显著正向影响,服务质量对用户忠诚度也具有显著正向影响。

4. 看中介效应

例如:

text 复制代码
间接效应 = 0.374
95% CI = [0.251, 0.489]

如果置信区间不包含 0,可以解释为:

用户满意度在服务质量与用户忠诚度之间发挥显著中介作用。

如果直接效应仍然显著,说明可能是部分中介;如果直接效应不显著,说明可能是完全中介。


十一、SEM 报告写作模板

下面给出一个论文或报告中常用的 SEM 结果描述模板。

1. 测量模型描述

text 复制代码
首先对测量模型进行验证性因子分析。结果显示,各测量题项的标准化因子载荷均达到可接受水平,说明题项能够较好地反映对应潜变量。各潜变量的 Cronbach's Alpha 和组合信度 CR 均大于 0.7,平均方差提取量 AVE 均大于 0.5,表明量表具有良好的内部一致性和聚合效度。

2. 拟合度描述

text 复制代码
结构方程模型拟合结果显示,χ²/df = 2.31,CFI = 0.953,TLI = 0.941,RMSEA = 0.061,SRMR = 0.045,各项拟合指标均达到推荐标准,说明模型整体拟合较好。

3. 路径关系描述

text 复制代码
路径分析结果显示,服务质量对用户满意度具有显著正向影响,路径系数为 0.68,p < 0.001,假设 H1 得到支持;用户满意度对用户忠诚度具有显著正向影响,路径系数为 0.55,p < 0.001,假设 H2 得到支持;服务质量对用户忠诚度具有显著正向影响,路径系数为 0.21,p < 0.05,假设 H3 得到支持。

4. 中介效应描述

text 复制代码
进一步采用 Bootstrap 方法检验中介效应。结果显示,服务质量通过用户满意度影响用户忠诚度的间接效应为 0.374,95% 置信区间不包含 0,说明中介效应显著。因此,用户满意度在服务质量与用户忠诚度之间发挥部分中介作用,假设 H4 得到支持。

十二、SEM 常见问题与解决方法

1. 模型拟合度不好怎么办?

如果模型拟合度不理想,可以从以下方面检查:

  1. 理论模型是否合理;
  2. 题项是否存在跨负荷;
  3. 某些题项因子载荷是否过低;
  4. 潜变量之间是否高度相关;
  5. 样本量是否不足;
  6. 数据是否严重偏离正态分布;
  7. 是否存在异常值;
  8. 是否遗漏了重要路径。

需要注意的是,不能只为了提高拟合度而随意修改模型。模型修正必须有理论依据。

2. 因子载荷低怎么办?

如果某个题项的标准化因子载荷过低,可以考虑:

  • 检查题项表述是否模糊;
  • 检查该题项是否属于反向题;
  • 检查数据录入是否错误;
  • 根据理论判断是否删除该题项;
  • 比较删除前后的信度和效度变化。

一般不建议仅仅因为统计指标不好就机械删除题项。

3. 潜变量相关性太高怎么办?

如果两个潜变量之间相关系数非常高,例如大于 0.85,可能说明它们区分效度不足。

解决思路包括:

  • 重新检查理论定义;
  • 检查题项是否重复;
  • 考虑合并潜变量;
  • 使用 HTMT 检验区分效度;
  • 检查是否存在共同方法偏差。

4. 样本量太小可以做 SEM 吗?

样本量太小会导致模型估计不稳定,标准误偏大,拟合指标不可靠。

如果样本量较小,可以考虑:

  • 简化模型;
  • 减少参数数量;
  • 使用偏最小二乘结构方程模型 PLS-SEM;
  • 使用 Bootstrap 方法辅助判断;
  • 尽可能扩大样本量。

5. SEM 能证明因果关系吗?

SEM 常用于检验理论假设中的因果路径,但它本身不能完全证明因果关系。

要更有力地支持因果关系,还需要:

  • 明确的理论基础;
  • 时间顺序;
  • 控制混杂变量;
  • 实验设计或纵向数据;
  • 稳健性检验。

因此,在论文或报告中应避免简单地说"SEM 证明了因果关系",更严谨的表达是:

text 复制代码
结果支持变量之间存在显著影响关系。

十三、SEM 与 PLS-SEM 的区别

SEM 通常可以分为两类:

  1. 协方差基础 SEM,即 CB-SEM;
  2. 偏最小二乘 SEM,即 PLS-SEM。

1. CB-SEM

CB-SEM 更关注理论模型与协方差矩阵之间的拟合程度,适合理论检验。

常用软件包括:

  • AMOS;
  • LISREL;
  • Mplus;
  • lavaan。

2. PLS-SEM

PLS-SEM 更关注解释力和预测能力,对数据分布和样本量要求相对宽松。

常用软件包括:

  • SmartPLS;
  • WarpPLS;
  • ADANCO。

3. 如何选择?

场景 推荐方法
理论成熟,重点是验证理论 CB-SEM
模型复杂,样本量较小 PLS-SEM
重点是预测和解释方差 PLS-SEM
需要严格报告模型拟合度 CB-SEM
问卷量表已经比较成熟 CB-SEM
探索性研究较强 PLS-SEM

需要注意,CB-SEM 和 PLS-SEM 并不是谁更高级的问题,而是适用场景不同。


十四、常用 SEM 软件

1. AMOS

AMOS 是 SEM 中非常常见的软件,界面友好,可以通过拖拽方式绘制模型。

优点:

  • 操作简单;
  • 图形化界面直观;
  • 适合初学者;
  • 与 SPSS 配合方便。

缺点:

  • 商业软件;
  • 对复杂模型支持有限;
  • 灵活性不如 Mplus 和 R。

2. Mplus

Mplus 是功能非常强大的 SEM 软件,适合复杂模型。

优点:

  • 支持多层模型;
  • 支持潜类别分析;
  • 支持纵向模型;
  • 支持复杂中介、调节和混合模型。

缺点:

  • 学习成本较高;
  • 商业软件;
  • 语法相对专业。

3. R lavaan

lavaan 是 R 中非常流行的 SEM 包。

优点:

  • 免费开源;
  • 语法清晰;
  • 适合可重复研究;
  • 文献中使用广泛。

缺点:

  • 需要一定 R 语言基础;
  • 图形化操作不如 AMOS 直观。

4. SmartPLS

SmartPLS 常用于 PLS-SEM。

优点:

  • 图形化界面;
  • 适合预测导向研究;
  • 对样本量要求相对较低;
  • 使用简单。

缺点:

  • 与 CB-SEM 的理论逻辑不同;
  • 不适合所有研究问题;
  • 需要注意方法选择的合理性。

5. Python semopy

semopy 是 Python 中用于 SEM 分析的工具。

优点:

  • 适合 Python 用户;
  • 可以与 pandas、numpy 等工具结合;
  • 适合自动化分析流程。

缺点:

  • 使用群体相对较小;
  • 生态成熟度不如 R lavaan。

十五、SEM 建模的注意事项

1. SEM 是理论驱动,不是数据驱动

SEM 不适合在没有理论基础的情况下随意连接变量。路径关系应该来自理论、文献或明确的研究逻辑。

2. 不要过度依赖修正指数

很多软件会提供 Modification Indices,即修正指数。它可以提示增加某条路径后模型拟合可能改善多少。

但是,不能只要修正指数高就添加路径。每一次模型修改都应该有理论解释。

3. 注意共同方法偏差

如果所有数据都来自同一份问卷、同一时间、同一被试,就可能存在共同方法偏差。

常见处理方法包括:

  • 程序控制;
  • Harman 单因子检验;
  • 标记变量法;
  • 潜在方法因子法。

4. 不要只报告显著性

SEM 结果不能只看 p 值,还应该综合报告:

  • 路径系数;
  • 标准误;
  • 置信区间;
  • 效应量;
  • 拟合指标;
  • 信度和效度。

5. 区分统计显著与实际意义

路径显著不一定代表影响很大。样本量很大时,微弱影响也可能显著。因此还要看路径系数大小和实际研究意义。


十六、总结

结构方程模型 SEM 是一种强大的统计分析方法,尤其适合处理包含潜变量测量误差多重路径关系和中介效应的复杂研究模型。

本文主要介绍了 SEM 的基本概念、模型构成、常见指标、分析流程、实战代码和结果解释方法。可以将 SEM 理解为:

text 复制代码
因子分析 + 路径分析 + 多元回归 + 测量误差控制

相比普通回归分析,SEM 的优势在于能够同时处理测量模型和结构模型,更适合理论检验型研究。

在实际使用 SEM 时,需要注意以下几点:

  1. 先有理论,再建模型;
  2. 先检验测量模型,再检验结构模型;
  3. 同时关注拟合度、信度、效度和路径显著性;
  4. 模型修正必须有理论依据;
  5. 不要简单把 SEM 结果解释为因果证明;
  6. 根据研究目的选择 CB-SEM 或 PLS-SEM。

总的来说,SEM 不只是一个统计工具,更是一种将理论模型、测量工具和数据分析结合起来的研究框架。掌握 SEM,可以帮助研究者更系统地理解变量之间的复杂关系,也能显著提升问卷研究、管理研究和社会科学研究的分析深度。