结构方程模型(Structural Equation Model, SEM)

论坛 期权论坛 爱问     
6238c   2022-6-3 16:26   11744   17
Curran-Bauer Analytics的3日线上工作坊(by Daniel J. Bauer & Patrick J. Curran) 的笔记+补充,欢迎纠错提意见!
他们的正版链接的视频和ppt失效了,我上传了了ppt(链接:https://pan.baidu.com/s/1DQGDRPT3m1xo7tQUclvgQg 提取码:c4k3 ),但是找不到视频了。
全文包括:

  • SEM简介:功能、优点、缺点
  • 分析软件简介
  • 统计知识回顾:矩阵标量向量、多元回归分析、估计方法
  • SEM的六大步骤
  • 路径追踪规则(Path tracing rules)
  • R codes
一、SEM简介

强大的功能:

融合了因子分析(Factor Analysis)、方差分析(如ANOVA, ANCOVA, MANOVA, MANCOVA)、多重回归(multiple regression)等:

  • 可以分析有多个因变量的模型(multiple dependent variables)
  • 可以分析复杂的中介模型(complex mediating mechanisms)
  • 可以估算潜在变量以解释测量误差(estimate latent variables)
  • 可以估算二分变量(binary) /序级变量(ordinal)的潜在因子
  • 可以测试跨组的模型不变性(test invariance of models across groups)
  • 可以建模重复测量的数据的发展轨迹(growth trajectories of repeated measures)
不胜枚举的优点们:


  • 可以一次性完成对一个复杂模型的分析,而不用将模型拆分
  • 适用于各种数据(不同分布的数据-非正态分布,不同类型的数据-非连续数据)
  • 对长期数据,可以测试个体的稳定性
以及不足:


  • 建了个太太太复杂的模型,以致于啥都说明不了(比如把各种变量一股脑塞进模型,偏离了理论)—— 所以在建模specification/re-specification时,一定要明确自己在做什么,让模型保持精简。
  • 难以判断模型是否正好拟合(fit)数据 —— 要依据理论再参考一些fit index,将模型不断优化,在过度适合和适合不足中找到平衡点。
  • 可能有不同模型恰好一样地拟合数据
  • 没有明确参考标准来确定合适的样本大小——……样本量越大越好
  • 和其他分析一样,SEM无法修正由于取样或测量导致的误差——好好设计和实施实验让数据质量高一些
  • 哲学盲点:SEM使用”证据的缺失(absent of evidence)作为支持假设模型的证据 —— 没有证据证明其存在可以证明其不存吗?(例一:研制新药,如果没有证据显示新药有疗效,是不是就能说明新药没有疗效了呢?例二:寻找某物种,如果找不到这个物种的生物,是不是就说明该物种已经灭绝了饿呢?)
二、应用软件

常用软件:Amos(绘制路径图,简易模型分析,想发表文章的话还是用后两个分析吧)、Mplus(代码简洁好上手)、R(一般用lavaan package,还有别的包可以用比如semTools有一些补充功能比如求测量不变性 measurementInvariance(),semplot/lavaanplot可以用来绘图,还有openMX、sem等)。
除此以外,还有Python(学好编程啥问题都能解决)、LISREL(输入input是矩阵而非原数据!Coursera上有港中文大学Kit Tai Hau 侯傑泰教授的免费公开课程“Structural Equation Model and its Applications | 结构方程模型及其应用 (普通话/粤语))、EQS(多变量分析软件)、SPSS(也得自己码代码syntax,点点点鼠标是点不出来这些比较高级的功能的)。
三、统计知识回顾

矩阵代数(Matrix Algebra)

标量(scalars):实数,只有大小,没有方向。



*a是一个标量,b也是一个标量。
矩阵(matrix):双序排列的标量,行(rows)+列(columns)。


*表示矩阵的字母一般大写、加粗。
矩阵排序:下标前面的数字代表行i,后面的数字代表列j,记作aij。


矩阵转置(Transpose):把矩阵A(r×c)的行和列互相交换,得到矩阵A’(c×r)。


对称矩阵(Symmetric Matrices):A = A’。
对角矩阵(diagonal matrix):特殊的对称矩阵,主对角线之外的元素皆为0的矩阵。
单位矩阵(Identity Matrix):特殊的对角矩阵,主对角线为1,主对角线之外的元素皆为0的矩阵。
向量(Vector):仅有一列/一行的矩阵。



*代表向量的字母一般小写加粗。
矩阵的加减乘除(我省略了)
但要注意的是,

  • 计算标量时,ab=ba,计算矩阵时,ab ≠ ba因为乘法要考虑顺序。
  • 实际上没有矩阵除法,通过乘以逆矩阵(A-1)完成。
行列式(Determinant)

  • 矩阵S的行列式记作|S|
  • 仅正方形的矩阵可以求行列式,比如相关性、协变量矩阵。
  • 行列式为0的矩阵不可逆(inverted),这样的矩阵是非正定矩阵(non-positive definite, NPD),而SEM计算中通常需要求逆矩阵,所以行列式为0的矩阵为导致运行错误(例如“psi matrix is not positive definite” )
多元回归分析(Multiple Regression)


  • 回归分析(regression)可以看作是SEM的一种形式。
  • 广泛应用于社会、行为、健康科学中的强大、灵活的分析方法。
  • 因变量需要时正态分布的连续数据,对自变量没要求。
  • 可以分析交互作用、中介作用等。
估计方法

最小二乘估计(Least Squares Estimation, LSE)
选择可以最小化残差的平方和(sum of squared residuals)的参数
最大似然估计(Maximum Likelihood Estimation, MLE)
频率学派(Frequentist)的点估计法,根据样本数据不断尝试,选出能最优描述实际概率分布(likelihood)的参数。
最大后验估计(Maximum A Posteriori Estimate, MAP)
提到了频率学派,就插入一下贝叶斯学派(Bayesian)的最大后验估计MAP。MAP融合了预估计量的先验分布信息(Prior distribution),对未观测点做估计,可以看作是正则化(regularized)的最大似然估计。
四、SEM操作步骤

1. Specification 明确模型

自变量(independent variable)是什么?因变量(dependent variable)是什么?有没有调节变量(mediator)?有没有中介变量(moderator)?变量间是什么关系(relationship)?
1.1 路径图(path diagram)

  • 绘图比较好用易上手的软件:Amos (分析基于SPSS,要获得分析结果的话要同时下载SPSS)(Amos全名其实就是Analysis of moment structures)
  • 绘制正确的话,路径图完全可以表达(等同于)构建的方程式/模型
  • 优点:可视化模型隐含的矩阵结构(model-implied moment structure) 【moment指的是变量组(sets of variables)的均值(mean)、方差(variances)、 协方差(covariances),就是均值矩阵/(协)方差矩阵】。
路径图中图形的含义

  • 长方形/正方形:测量变量(measured variable)
  • 圆形:未测量变量(unmeasured variable), 如残差(residuals)、潜在变量(latent variables)
  • 单向直线箭头:回归方程的参数(regression coefficient)/因子分析的因子负荷(factor loadings)
  • 双向曲线箭头:方差(variance)/协方差(covariance)
  • 三角形:均值(mean)/截距(intercept)的常数(constant)。在分析模型时,统计软件会自动将一行常数设置成1。



1.2 矩阵结构(Moment Structures)

  • 总体矩阵(Population moments) 记作Σ和μ
  • 样本矩阵(sample moments)记作S和 m
  • 总体隐含矩阵(Population model implied moments)记作Σ (θ) 和μ (θ)
  • 样本隐含矩阵(Sample model implied moments)记作 Σ (θ hat)和μ (θ hat)
如下图,以总体矩阵为例:对于单个因变量和q个自变量的回归模型,有一个总体的协方差矩阵Σ和总体均值向量μ。


2. Identification模型的辨识性

就像每个人都有个身份证号一样,一个模型需要具有辨识度。模型辨识度指的在有足够的已知信息来推断未知参数的程度。
Model identification refers to the extent to which there is sufficient known information to infer unknown values


  • 过度识别(Over-identified):模型包含了冗余信息,需要修改 ——未知参数个数<独立方程式个数(方程式有解,但没有唯一精确解)。
许多路径分析和几乎所有SEM模型存在这个问题。

  • 正好识别(Just-identified):观察到的信息 = 所需估计的参数数量 ——未知参数个数=独立方程式个数(方程式有唯一精确解)。
所有多元回归模型都是恰好识别。

  • 识别不足(Under-identified):观察到有用信息不足——未知参数个数>独立方程式个数(方程无解)。
大问题!无法得到有效结果,下面讲到的路径追踪规则(path tracing rules)对解决这个问题有用。
3. Estimate 模型参数估计

从样本数据中得到系数的过程。
3.1 最常用的是上述ML(最大似然法maximum likelihood),其具有3个特点:
a.无偏的:虽然每次都有抽样误差(sampling error), 但无限次重复实验后,样本估值的平均值将等于总体的真实值
unbiased: if we were to repeat our study an infinite number of times, the mean of the sample estimates would equal the population value
b.一致性:当样本量无限接近于总人群量时,样本估值也无限接近群体值
consistent: as the sample size approaches infinity, the sample estimate approaches the population value
c.有效性:参数估值的误差最小
efficient: no other estimator has a smaller sampling error for the parameter estimate
3.2 两种方式:
a. 充分统计最大似然值估计(Sufficient-statistic maximum likelihood estimation,SSML)仅仅基于观测到的协方差矩阵和均值向量,前提是有完整数据 (complete-case data)和正态分布的因变量(normally distributed DVs)
b. 完全信息最大似然值估计(Full information maximum likelihood estimator,FIML) 基于任何从个体观察到的数据。允许部分缺失的数据(partially missing data)和用于处理非正态分布(non-normal distribution)和嵌套数据结构( nested data structures)的替代方法
*对于完整的正态分布的数据,SSML 和FIML 一样。
3.3 优点:

  • 适用于各种模型
  • 无偏、一致、最大化有效性。
  • 估值渐近正态分布(Estimates are asymptotically normally distributed),为推理测试(inference test)提供依据
  • 可以通过卡方检验比较不同模型的相对拟合度的优劣
  • FIML适用于有缺失值和非正态分布的数据。
3.4 步骤

  • 初始值(start value):选择参数估计的初始值
  • 迭代(iteration):计算似然值,更新参数估计值
  • 收敛(converge):不断计算似然值,直到前后两个似然值之间的差异足够小为止
  • 从最后一步保留拟合值(Fit statistics)、参数估值(parameter estimates)和标准误差(standard errors )
*如果模型太复杂有可能出现模型不收敛“failed to converge”的问题。
4. Evaluation 模型评估

模型拟合程度如何?根据模型拟合指数作判断(Model fit index)
5. Potential re-specification可能需要模型再明确

如果模型不够好,怎么修改?参考理论,根据修正指数(Modification indices)调整模型。
6. Interpretation 解读

哪个结果显著?结果是否有意义?
通常关注点在:

  • 原始的参数估值(Raw parameter estimates)
  • 标准化的参数估值(Standardized parameter estimates)
  • 决定系数R2 , (explained variance in outcomes),即模型可解释的变异量
五、路径追踪规则(Path Tracing Rules):

Sewall Wright在 19世纪20年代和30年代发明。  
1.一旦开始用了单项箭头,就不能再往回/用双向箭头了4 前进了不能再后退, 但可以先后退再前进
Rule 1: if you begin a trace forward from a variable using a singleheaded arrow, you can proceed forward any number of times; but once you start forward you may not move backwards or span a double-headed arrow




图片来源 p67 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

2.每一条路径,最多仅可涉及一个未分析到的相关系数(仅能通过双箭头部分一次)
Rule 2: If you begin a trace backward from a variable using a single headed arrow, you can proceed backward any number of times; upon reaching a variable, you can do one of two things:
a. span a double-headed arrow and stop
b. span a double-headed arrow and proceed the trace forward



图片来源 p68 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

3.一个变量只能被经过一次,无回路(no loop)
Rule 3: for each trace you can only pass through a variable once ; no loops are allowed




图片来源 p67 《結構方程模式理論與實務:圖解AMOS取向》作者: 李茂能

六、R code

#下载lavaan包
install.packages("lavaan", dependencies=TRUE)
#运行lavaan包
library(lavaan)
#建模:x是因,y是果
model  <- ‘y ~ x’
#选择用sem分析模型,指定数据
fit <- sem(model, data = data)
#显示结果
summary(fit) #显示原始参数
summary(fit, standardized = TRUE) #显示标准化参数
summary(fit, std.nox = TRUE, rsquare = TRUE) #显示基于观测变量和潜在变量的标准化参数和R方
第一天结束~

参考资料:《第四章 潛在變項 模式建構》
分享到 :
0 人收藏

17 个回复

倒序浏览
2#
tjm  1级新秀 | 2022-6-3 16:26:36 发帖IP地址来自 中国
史上最佳学妹无疑
3#
47j8  1级新秀 | 2022-6-3 16:27:03 发帖IP地址来自 中国
非常棒的分享,受益良多!不过点进看PPT需要密码,请问密码是什么呢?
4#
吴宇  管理员  伦敦金丝雀码头交易员 | 2022-6-3 16:27:20 发帖IP地址来自 北京
cba_SEM3!
要区分大小写,线上材料和视频有效期大约到5.24日。
5#
4j5  1级新秀 | 2022-6-3 16:27:58 发帖IP地址来自 中国
[干杯]
6#
rz2_3  1级新秀 | 2022-6-3 16:28:14 发帖IP地址来自 北京
请问用lavaan包做分析,R报错说模型不收敛,这个主要是什么原因?系统还提及说我的迭代次数为422,似乎迭代次数不够?参考文档也没有找到解决方法,希望博主能看一下
7#
吴宇  管理员  伦敦金丝雀码头交易员 | 2022-6-3 16:28:29 发帖IP地址来自 中国
可能模型识别不足(看SEM二上里有关identification那块),检查模型结构有么有问题(比如潜在模型能不能识别,模型有没有满足基本的t规则)。也可能数据问题(看二下MLE的assumptions那部分),检查数据有么有问题(比如样本量太小 缺失值太多 共线性)。
8#
v8qzv  1级新秀 | 2022-6-3 16:29:02 发帖IP地址来自 北京丰台
谢谢你的回复,模型结构一开始没问题的,开始跑的时候系统提示我变量之间的尺度相差太大,提示模型不收敛,后来我就把数据先按0/1标化以后再进行CFA,跑CFA的时候又提示我潜变量的协方差矩阵非正定,后来看了一下潜变量的协方差矩阵,发现有正负值,也有超过1的值,请问出现这个现象是因为数据的共线性问题么,是否需要将关联程度过高的潜变量合并这样?[爱]谢谢你的回复,模型结构一开始没问题的,开始跑的时候系统提示我变量之间的尺度相差太大,提示模型不收敛,后来我就把数据先按0/1标化以后再进行CFA,跑CFA的时候又提示我潜变量的协方差矩阵非正定,后来看了一下潜变量的协方差矩阵,发现有正负值,也有超过1的值,请问出现这个现象是因为数据的共线性问题,是否需要将关联程度过高的潜变量合并这样?

还有我在cfa的基础上跑结构模型的分析,系统显示我的模型可能无法识别,因为潜变量的方差有负值,是不是还是因为前面的数据影响??打扰了,感谢博主
9#
8wg9  1级新秀 | 2022-6-3 16:29:44 发帖IP地址来自 北京
看起来好复杂的样子。。。。你私信我发我截图?[思考]
10#
b2i0ly  1级新秀 | 2022-6-3 16:30:15 发帖IP地址来自 北京
哈哈哈,谢谢啦,有两个潜变量共变系数大于1,我将这两个变量合并了,cfa可以跑出来,但是结果很不理想,信效度都很差,拟合地和粑粑一样,估计是原始模型构建的太烂了,先自己捋一下,有问题再咨询博主,谢谢
11#
ev9j  1级新秀 | 2022-6-3 16:30:49 发帖IP地址来自 北京
好嘞 不谢
12#
吴宇  管理员  伦敦金丝雀码头交易员 | 2022-6-3 16:31:47 发帖IP地址来自 江西景德镇
你好,刚刚关注到这个帖子,请问您还有视频资源嘛,求[拜托]
13#
urfvg  1级新秀 | 2022-6-3 16:32:37 发帖IP地址来自 北京
请问的模型方程画完以后那个图上面的数字有的大于1是怎么回事
14#
k08q  1级新秀 | 2022-6-3 16:32:55 发帖IP地址来自 中国
感谢分享,比心[红心][红心][红心]
15#
49rk  1级新秀 | 2022-6-3 16:33:52 发帖IP地址来自 中国
请问mplus报错非正定(the latent variable covariance matrix (psi) is not positive)。但是各变量之间没有高度相关,这是什么原因导致的呢?
16#
k4w8o  1级新秀 | 2022-6-3 16:34:51 发帖IP地址来自 湖北
请问SEM要求的数据符合多元正态分布是指所有的x和所有的y么?还是只需要所有的y满足就可以了呢?
17#
u4g5  1级新秀 | 2022-6-3 16:35:12 发帖IP地址来自 福建
非常棒的分享!想看视频以及其他教程的,可以关注公众号“荷兰心理统计联盟”
18#
cfq  1级新秀 | 2022-6-3 16:35:45 发帖IP地址来自 北京
很好的分享,想确认一下,中介变量和调节变量的英文是不是写反了?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP