☰
LISREL验证性因素分析完整指南:从模型设定到拟合指标解读
2026/10/18 17:27:56 网站建设 项目流程

简介:LISREL软件验证性因素分析的讲解PPT,面向社会学、心理学、管理学等方向的研究生与科研人员,用于理解结构方程模型的基本原理、模型比较策略及拟合指数含义。内容围绕“准确与简洁”的权衡展开,详细说明如何输入观测变量的相关矩阵、设定理论模型、估计因子负荷与误差方差,并借助NNFI、CFI等指数评估模型优劣。其中包含具体数值示例与多模型比较表格,能帮助读者直观掌握不同拟合指数的计算与解读。资源整体为1份PPT文件,大小1.22MB,篇幅紧凑但覆盖从测量模型、结构模型到多模型比较的完整知识链条,可作为课堂教学或自主学习的速览材料。已有59人学习浏览,适合正在使用LISREL进行问卷数据分析、需要系统理解验证性因素分析操作思路的研究者。

1. 验证性因素分析不是跑个回归:先想清楚 LISREL 到底帮你回答什么问题

拿到一份《LISREL软件验证性因素分析完整版》PPT,大部分人第一反应是翻到语法页,把 DA、MO、PA、OU 四段命令抄下来,替换成自己的数据就开跑。但验证性因素分析最折磨人的一刻,往往不是命令写错,而是结果出来后拟合指标一个都不达标、潜在变量方差出现负数、或者模型提示非正定矩阵——这时候你分不清是数据质量有问题,还是模型设定本身就有缺陷。这份完整版课件真正值钱的地方,不是把操作流程罗列一遍,而是把 CFA 从模型设定、识别判断、语法实现到拟合解读的完整链路讲通了。它面向的是正在做量表修订、问卷效度检验的社科研究生,以及那些需要用结构方程模型出论文但不想把统计软件当黑匣子的从业者。

2. 模型设定与识别规则:自由度、载荷锚点与三个先决条件

2.1 CFA 与 EFA 的本质区别:什么时候非用 CFA 不可

探索性因素分析(EFA)的逻辑是「让数据自己说话」:不预设因子结构,让算法按特征值、碎石图帮你把题目归类。验证性因素分析(CFA)的逻辑正好相反——你事先已经有一个理论结构,比如某量表分三个维度、每个维度对应四道题,CFA 要验证的是「这个预设结构是否与观察数据一致」。两者的分界线在于你的研究阶段:如果是开发新量表、题目都没定型,老老实实先做 EFA;如果是在成熟理论框架下修订量表、检验跨文化一致性、或者做效度证据收集,直接用 CFA。

很多人在同一个数据集上先跑 EFA 又跑 CFA,发现因子归属和预设有出入,就手动把题目挪到载荷更高的维度上。这是典型的方法误用。CFA 不允许跑完再改归属,所有题目与因子的对应关系必须在建模前锁定。这份 PPT 里也强调了一个观点:CFA 是「检验理论」,不是「发现结构」,如果模型拟合不好,应该从题目质量、样本量、理论结构是否合理这些角度去找原因,而不是在数据里东挪西凑。

2.2 测量模型三要素:潜变量、观察变量与误差项在 LISREL 里的角色

在 LISREL 的语法里,CFA 默认走测量模型(Measurement Model),只涉及三个角色:观察变量(指标题项)、潜变量(因子)、误差项。你的量表题目进入模型后作为 Y 变量(如果潜变量是外因则用 X 变量),每一题都有一条路径指向某个潜变量,同时每个观察变量配一个独立的误差项。这个配置对应 LISREL 里最基础的设定:LY(因子载荷矩阵)自由估计,TD 或 TE(误差协方差矩阵)设为对角矩阵。

写语法之前先画一遍路径图是个好习惯。比如 20 道题分 5 个维度,每个维度 4 题,那么 LY 矩阵是 20 行 5 列,每行只有对应维度的位置是 1 或待估参数,其余为空。误差项 TD 是 20 阶对角矩阵,对角元素自由估计,非对角元素固定为 0——这代表各题目的独特方差互不相关,是一个强假设。如果题目里有内容高度重复的表述,这个假设很容易被修正指数验证为假,后面会专门说这个坑。

2.3 模型识别的三个硬性条件:参数个数、载荷锚点与每个因子至少三指标

模型能不能被估计出来,不取决于样本量,首先取决于识别(Identification)。CFA 的识别有三个先决条件,任何一个不满足,LISREL 都会报错或给出不可解释的参数估计。

第一,模型自由度必须大于 0。自由度的计算公式是 df = k(k+1)/2 - t,其中 k 是观察变量个数,t 是待估参数个数。一个 20 题的模型,协方差矩阵有 20×21/2 = 210 个非重复元素,待估参数包括 20 个载荷、20 个误差方差、5 个因子方差和 10 个因子协方差,共 55 个,自由度是 155,识别没问题。如果每个因子只配两道题,因子的方差和协方差可能无法被充分约束,就会出现欠识别。

第二,每个潜变量必须有载荷锚点。潜变量的尺度不是天然定义的,你必须为每个因子固定一个参照:要么把某个指标的载荷固定为 1(固定载荷法),要么把因子方差固定为 1(固定方差法)。LISREL 默认用固定方差法,也就是 PS 矩阵对角固定为 1,这样所有载荷都能自由估计,便于比较贡献大小。

第三,每个因子最好至少有三道指标。这是统计识别的底线:两个指标也能识别,但很容易出现退化估计,比如载荷大于 1 或误差方差为负。三个指标能让模型更稳定,四个以上更好。

提示:判断识别问题最直接的方法是看自由度。如果 LISREL 输出里的自由度是负数或者报 "Not identified",优先检查有没有哪个因子只剩一道题在撑着。

3. LISREL 语法实操:DA、MO、PA、OU 四段式配置与输出参数速查

3.1 先备数据:从 SPSS/Excel 到 LISREL 可读取的格式

LISREL 读取数据最常见的方式是读一个纯文本数据文件。以 SPSS 数据为例,我一般先把量表题导出成 CSV,再用记事本打开另存为 .dat 或 .txt,编码选 UTF-8 或 ANSI 均可,但有个细节:文件路径尽量不要带中文和空格,某些版本对中文路径支持不稳定,会报找不到文件。

数据文件里每一列对应一道题,列名放在第一行,从第二行开始是具体数值。注意 LISREL 自带的数据窗口也可以手工录入,但几十道题的规模手输太慢,直接读文件更靠谱。缺失值处理上,LISREL 默认用配对删除(Pairwise Deletion),也就是只要两个变量都有值就纳入协方差计算;如果你的缺失模式比较复杂,建议先用多重插补处理后再导入,否则不同指标间的样本量不一致,相关矩阵可能非正定。

3.2 一段可直接改用的 LISREL 语法示例

下面是一段针对 15 题、3 因子的 CFA 的 LISREL 语法,结构比较典型:

DA NI=15 NO=300 MA=CM LA item1 item2 item3 item4 item5 item6 item7 item8 item9 item10 item11 item12 item13 item14 item15 CM 1.000 0.521 1.000 0.478 0.503 1.000 0.298 0.275 0.261 1.000 0.312 0.289 0.301 0.452 1.000 0.256 0.244 0.238 0.421 0.387 1.000 0.211 0.198 0.187 0.322 0.297 0.305 1.000 0.198 0.184 0.177 0.296 0.278 0.264 0.423 1.000 0.221 0.206 0.194 0.312 0.288 0.295 0.398 0.401 1.000 0.102 0.095 0.088 0.176 0.154 0.161 0.211 0.198 0.203 1.000 0.089 0.081 0.077 0.152 0.143 0.139 0.187 0.174 0.169 0.431 1.000 0.114 0.107 0.098 0.168 0.151 0.146 0.199 0.184 0.191 0.402 0.377 1.000 0.078 0.069 0.065 0.121 0.114 0.107 0.155 0.143 0.138 0.214 0.198 0.186 1.000 0.092 0.083 0.079 0.134 0.126 0.115 0.166 0.152 0.148 0.229 0.211 0.203 0.412 1.000 0.067 0.061 0.058 0.102 0.094 0.091 0.132 0.124 0.119 0.186 0.173 0.166 0.357 0.346 1.000 MO NY=15 NE=3 LY=FU,FR PS=DI,FR TD=DI,FR PA LY 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 OU MI SS SC RS EF

这段语法的逻辑是:DA 行声明数据规模,15 个指标、300 个样本、输入相关矩阵;LA 行给变量命名;CM 行读入下三角相关矩阵;MO 行声明模型,NY=15 表示 15 个观察变量,NE=3 表示 3 个潜变量,LY=FU,FR 表示载荷矩阵设为全自由估计,PS=DI,FR 表示因子方差固定为 1、因子协方差自由估计,TD=DI,FR 表示误差协方差固定为 0、误差方差自由估计;PA 行用 0/1 矩阵指定第几题落在第几个因子上;OU 行控制输出,MI 是修正指数,SS 是标准化解,SC 是完全标准化解,RS 是残差。

PA 矩阵是整个语法的核心,每一行对应一个观察变量,每一列对应一个因子。上面这段里前三题属于因子 1,四到六题属于因子 2,七到九题属于因子 3,十到十五题本来应该是第二、三因子,为了示例完整我进行了调整——实际操作时,每个因子至少保留 3 道题,最后几列的归属要按你的理论结构写,不能随意修改归属。

3.3 SIMPLIS 语句:不想写矩阵参数时的替代方案

LISREL 还提供 SIMPLIS 语言,不用数 LY、TD 矩阵的位置,直接写题目归属,适合建模初期快速跑通。同样一个三因子模型,SIMPLIS 写法是:

Raw Data from file 'cfa15.dat' Latent Variables: f1 f2 f3 Relationships: item1 item2 item3 = f1 item4 item5 item6 = f2 item7 item8 item9 = f3 item10 item11 item12 item13 item14 item15 = f3 Path Diagram End of Problem

这段语法的可读性更好,Relationships 行左边写题目名,右边写因子名。如果有的题目同时归属两个因子(交叉载荷),在 SIMPLIS 里也能写,比如 item13 = f2 f3,但交叉载荷的建模必须来自理论假设,不能因为修正指数大才临时加上。SIMPLIS 的缺点是精细控制不如 LISREL 语法强,比如想固定某个载荷为 1、其他自由估计,用标准语法写 PA 矩阵更直观。我的习惯是先用 SIMPLIS 验证模型能收敛、自由度正常,再改用标准语法做正式估计。

4. 拟合指标不是玄学:卡方、RMSEA、CFI 与 MI 修正的判断顺序

4.1 报告拟合指标的阈值速查表

LISREL 输出文件里会同时给出几十个拟合统计量,但实际写论文时大家只报告其中少数几个。下面这组阈值是当前社会科学顶刊的通行标准,直接用没有问题:

指标可接受标准优秀标准说明
卡方/df< 3.0< 2.0卡方对样本量敏感,大样本几乎必显著
RMSEA≤ 0.08≤ 0.06越小越好,90% 置信区间上限不超过 0.10
CFI≥ 0.90≥ 0.95比较拟合指数,越接近 1 越好
TLI / NNFI≥ 0.90≥ 0.95惩罚复杂模型,比 CFI 严格
SRMR≤ 0.08≤ 0.05标准化残差均方根
GFI≥ 0.90≥ 0.95容易受样本量影响,现在报告率下降

注意卡方值本身几乎总是显著的,样本量超过 500 时更是如此,所以不要因为 p < 0.05 就判模型死刑,要看卡方/df。如果样本量很大,比如上千份问卷,RMSEA 和 CFI 比卡方更有参考价值。GFI 的问题在于它没有对模型复杂度做惩罚,两个模型可能 GFI 相同但一个更简洁,所以很多期刊已经不要求报 GFI。

4.2 指标打架时按什么顺序看

拟合指标之间经常不一致:CFI 超过 0.95 但 RMSEA 到 0.09,或者卡方/df 是 2.8 但 SRMR 只有 0.04。这时候不要挑着好指标报,要用一个固定顺序来评估模型整体质量。

我的判断顺序是:先看模型是否收敛、参数是否合理(有没有载荷大于 1、方差为负),再看 SRMR 和 RMSEA,最后看 CFI/TLI。逻辑在于,SRMR 直接反映「协方差残差的大小」,是最接近数据层面的指标;RMSEA 反映了近似误差的严重程度;CFI 是相对于独立模型的改进程度,受因子间相关强度影响很大。如果一个模型的 SRMR 小于 0.05、RMSEA 小于 0.06,但 CFI 只有 0.90,通常说明因子间相关偏低导致整体拟合提升有限,这时可以接受模型;反过来如果 CFI 很高但 SRMR 很大,说明残差里有系统的局部失拟,要做进一步诊断。

提示:LISREL 输出里有一列「Standardized Residuals」,绝对值超过 2.58 的残差通常在矩阵中用 A 标记,这是定位局部拟合失拟最直接的线索。

4.3 修正指数(MI)的使用边界与跨载荷处理

修正指数是 LISREL 最有用的诊断工具,也是被误用最多的工具。MI 值代表如果释放某个被固定的参数,卡方会下降多少。一般把 MI > 3.84 或 > 6.63 作为阈值,分别对应 p<0.05 和 p<0.01 的单参数释放。但释放参数必须遵循两个原则:第一,只释放理论上说得通的路径,比如同一因子下两个题目表述相近,可以允许误差相关;第二,逐条释放,一次只加一个参数,跑完再看 MI 变化。

最常见的误用是看到某个题目的 MI 指向另一个因子,就直接给它增加交叉载荷。交叉载荷意味着一个题目同时测两个构念,这在理论上是「题目纯度不够」的表现,而不是模型可以随便改的理由。合理的做法是:如果该题目在原来的因子上载荷也不高(低于 0.5),优先考虑删题;如果载荷尚可、但 MI 很大,将题目表述和理论构念再核对一遍,确认它是否真的存在跨因子内容。某次模拟项目里出现一道「我经常感到压力」同时指向「工作满意度」因子,从内容上看它确实测的是情绪状态,这种情况允许释放交叉载荷是合理的,但论文里要明确说明理论依据。

5. 避坑现场:非正定矩阵、Heywood 案例与收敛失败的五条记录

5.1 非正定矩阵报错:不是数据造假,是变量之间太「像」

现象:LISREL 读入数据后报错 "W_A_R_N_I_N_G: The matrix is not positive definite",或者相关矩阵里出现大于 1 的相关系数。

原因:最常见的是两个变量实际上是同一个构念的重复测量,相关接近 0.95 甚至 0.99,矩阵行列式被推向零;其次是个案数太少或缺失严重,两两间的有效样本不一致,导致相关矩阵内部矛盾。

解决:先检查相关矩阵里是否有超过 0.90 的配对,如果两个题目的措辞几乎相同,考虑合并且保留更清晰的一道;再用列表删除法(Listwise Deletion)重新生成协方差矩阵,排除样本量不一致造成的问题。

5.2 Heywood 案例:载荷大于 1 或误差方差为负

现象:输出里某个标准化载荷超过 1.0,或者某个误差方差是负值(在 LISREL 输出中会被标记为 *)。

原因:通常是该题目的独特方差太小,模型试图把它估计成负数来适应数据;也可能该题目与潜变量的关系被严重高估,或者样本量不足以稳定估计。

解决:第一步看该题目的原始方差和载荷,确认数据录入没抄错;第二步考虑删掉这道题重新建模,如果删后整体拟合变差再考虑保留;第三步可以尝试将该题目的误差方差固定为一个很小的正数(比如 0.01),但不推荐作为常规方案,属于止血操作。

5.3 模型不收敛:迭代到最大次数仍不停

现象:运行结束提示 "No convergence" 或 "Iteration limit reached",输出参数里很多是 0 或空白。

原因:初始值太差、模型设定错误、或待估参数过多导致秩亏;数据本身不存在能满足约束的合理解也会不收敛。

解决:把 OU 行添加 IT=500 提高迭代上限,同时检查 PA 矩阵是否写漏了数位;更有效的手段是改从相关矩阵估算而不是协方差矩阵,LISREL 的 MA=CM 比 MA=KM 更容易收敛;还不行就用手动给的初始值,在 MO 行后追加 ST 语句为 LY 指定一个粗略的载荷值,比如 0.6。

5.4 自由度比期望的小:因子个数和指标归属对不上

现象:模型可以跑完,但自由度明显少于手算值,甚至为 0 或负数。

原因:PA 矩阵里某一列全为 0,意味着某个因子没有分配任何题目;或者某道题被同时分到多个因子,导致参数数量膨胀。

解决:逐行检查 PA 矩阵,确保每个因子至少匹配三道题,且同一道题暂时不要出现在两个因子里;用 df = k(k+1)/2 - t 手算一遍待估参数数量,比对输出文件的自由度是否一致。

5.5 误差协方差修正上瘾:模型越修越「好看」但越不可复制

现象:修正指数提示多个误差项该相关,你一个个加进去,最终模型拟合报表大幅改善,但题目间误差相关的数量超过有理论依据的数量。

原因:这是把 CFA 当探索用,用后视镜开车;大量误差相关意味着题目共享了很多未建模的方差,模型的解释力反而低。

解决:设定硬性规则——每个模型最多只能释放 2 到 3 个误差相关,且必须来自相近表述或共同方法效应(如同一页问卷的排布);任何 MI 驱动的修正都要在论文「模型修正」部分明确交代。反复出现大量误差相关的题目组,直接删掉部分题目比修模型更干净。

6. 从单阶到多阶:多组比较与测量等价性验证的进阶路径

验证性因素分析的终点不是单组模型的拟合达标,而是把你的量表用于跨组比较——比如性别差异、行业差异或控制组对比。很多人在做组间比较时直接分别跑两组 CFA,看到两组都拟合良好,就放心比较潜变量均值。这里有个隐患:如果两组数据的因子结构、载荷或截距不等价,均值差异拟合出来的可能是测量偏差,而不是真实差异。

正确的做法是走测量等价性检验的三步。第一步形态等价(Configural),两组自由估计载荷,只确认因子结构相同;第二步弱等值(Metric),把各题目的因子载荷跨组固定,检验各组题目是否以相同强度反映构念;第三步强等值(Scalar),在载荷固定的基础上再固定截距,只有达到这一步,潜均值比较才站得住。LISREL 里做多组只需要在语法层面对样本分组,用 SE 语句指定第几观察到第几观察属于组一、组二,后面的约束条件按同样结构叠加。等价性检验中除了跑模型,还要做嵌套模型的卡方差值检验,如果 Δχ² 不显著,就支持更严格的等值约束。

如果单阶因子之间的相关很高(比如超过 0.70),可以尝试二阶模型。二阶 CFA 的实质是让多个一阶因子共同指向一个更高阶因子,这时模型的参数约束更强,能验证量表背后的统一构念。LISREL 里实现二阶模型只需要调整 MO 和 PA 的维度:NE 从一阶因子个数改为一阶因子加二阶因子的总数,LY 矩阵的右侧多出一列从每个一阶因子到二阶因子的路径即可。从那以后,我每次拿到新的多组数据,都强制自己走一遍强等值检验这条流程,不再只看单组拟合就下结论。写论文时也发现,审稿人对等价性检验的重视程度逐年提高,主动做完三步比事后补做要省去很多沟通成本。希望这份完整版 PPT 里的经验整理,能帮你在用 LISREL 做验证性因素分析时不走弯路。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询