实证方法教程 / cfa

验证性因子分析 CFA

拟合指数不是凑够几个就行

这节课解决什么适合问卷题项、潜变量、测量模型和路径模型。
先准备哪些变量变量含义清楚
会看到哪张表cfa_results.csv
论文里怎么克制解释按信度、效度、测量模型、结构路径的顺序写,不要跳步。

验证性因子分析 CFA是什么?

验证性因子分析 CFA 回答的是预先设定的量表结构是否被数据支持。它不是让数据自由发现几个因子,而是检验题项是否按理论加载到指定潜变量上。

先用一句话理解

把 CFA 想成验收一份问卷。你原本认为 5 道题测信任、4 道题测满意度,CFA 要检查这些题是否真的主要对应各自概念,而不是乱成一团。

什么时候用

判断项教科书式判断
适合用在已有理论或成熟量表,需要验证题项-潜变量结构。
先不要用在完全不知道题项结构,想探索可能有几个维度。那是 EFA。
最关键的前提题项归属要事先指定,不能按结果随意改。
读表顺序先看标准化载荷,再看 CR/AVE、区分效度和拟合指标。
论文表述边界CFA 证明的是测量结构可接受,不直接证明结构路径。

把它和相近方法分清楚

容易混淆的对象怎么区分初学者记法
EFA探索潜在因子结构。事前不强设题项归属。
CFA验证预设测量结构。题项归属来自理论。
SEM在 CFA 基础上加入结构路径。回答概念关系。

核心直觉和模型公式

预设测量模型

CFA 的测量关系可写成:

\[y_i=\Lambda\eta_i+\varepsilon_i\]

Lambda 中多数载荷按理论固定为 0,只允许题项加载到指定潜变量。

公式里的符号怎么读

符号含义在本页怎么理解
y_i题项回答问卷中的观测变量。
η_i潜变量信任、满意度、风险感知等概念。
Λ载荷矩阵题项和潜变量的对应关系。
ε_i测量误差题项中未被潜变量解释的部分。
fit indices拟合指标CFI、TLI、RMSEA、SRMR 等。

专业使用口径

专业 CFA 报告要把信度、效度和模型拟合一起交代。

口径专业写法
标准化载荷题项载荷应足够高且方向一致。
聚合效度CR/AVE 等指标说明同一构念是否收敛。
区分效度不同构念之间是否能区分。
拟合指标整体测量模型是否可接受。

一步一步做:从问题到结果的五步

步骤这一页具体做什么做到什么程度才算读懂
1. 固定理论结构每个题项对应哪个潜变量。CFA 不是自由探索。
2. 估计测量模型读取标准化载荷。低载荷题项要谨慎处理。
3. 检查信效度CR、AVE、区分效度。只看 alpha 不够。
4. 看整体拟合CFI/TLI/RMSEA/SRMR。拟合差说明结构有问题。
5. 决定是否进入 SEM测量合格后再看结构路径。顺序不能倒。

结果怎么读:先读口径,再读数字

本页案例读表时,先记住这个口径:案例派生 alpha = ,第一因子解释率 = ,题项数 = 。

读表顺序本页怎么读不要这样读
先看载荷题项是否测到指定构念。载荷是 CFA 的第一关。
再看效度同一构念是否收敛、不同构念是否区分。效度比单个 p 值重要。
然后看拟合整体结构是否可接受。局部载荷好不代表整体好。
最后看修正删题或相关误差是否有理论理由。不要只为拟合好看。

初学者最容易错在哪里

误读为什么错
把 EFA 结果直接说成 CFA错。CFA 要预设结构。
按拟合指标随意删题风险高。删题要有理论理由。
只报 Cronbach alpha不够。CFA 还要载荷和效度。
测量未验证就做 SEM错。结构路径没有基础。

先看这个案例的结论

  • 案例派生 alpha = ,第一因子解释率 = ,题项数 = 。
  • 这里用财务变量秩分位派生题项做教学演示;正式问卷论文要换成真实题项,并报告每个题项载荷。
  • 量表方法的顺序是:信度/同源方差/EFA/CFA/SEM,不能跳过测量模型直接解释路径。

变量要求和案例口径

字段口径
数据CSMAR 风格 A 股企业创新面板
原始样本196 家上市公司,2015-2020 年,约 1200 个公司-年观测;各方法有效样本以本页输出表 N 为准
因变量patent_count;回归页通常使用 ln(1 + patent_count)
核心解释变量dfi_index,数字普惠金融指数;部分案例输出展示的是标准化后的 dfi_index
控制变量roa、lev、size、growth、cashflow、tobinq、top1、dual、board、indep、soe、age
输出文件cfa_results.csv
角色要求无硬性角色要求
依赖包无额外 Stata 社区包要求

实际代码

下面是本页案例里的最小 Stata 代码。它的作用是帮助你看清变量怎么进入模型、结果文件怎么生成,而不是要求你在网页里手动运行。

import delimited "$DATA_PATH", clear varnames(1) encoding(UTF-8)
gen ln_patent1 = ln(1 + patent_count)
egen firm_id = group(stkcd)
xtset firm_id year

global y ln_patent1
global count_y patent_count
global x dfi_index
global controls roa lev size growth cashflow tobinq top1 dual board indep soe age
gen post = year >= 2018
bysort firm_id: egen pre_dfi = mean(cond(year < 2018, dfi_index, .))
quietly summarize pre_dfi, detail
gen treat = pre_dfi >= r(p50)
gen did = treat * post
gen high_patent = patent_count > 2
gen running_dfi = dfi_index - 260
gen rdd_treat = running_dfi >= 0

sem (finance -> roa lev cashflow) (governance -> top1 indep board), method(mlmv)
estat gof, stats(all)
export delimited using "$JOB_DIR/cfa_results.csv", replace

实际输出表

这张表是本方法页配套案例的输出结果,用来把前面的公式、变量口径和代码对应到实际数字。

指标数值解释
样本1200 obs / 196 firms / 2015-2020来自共用案例 CSV
因变量ln(1 + patent_count)企业创新产出
核心解释变量dfi_index数字普惠金融指数
输出文件cfa_results.csvempirical-wizard 对应方法产物
finance -> ln Patent0.1266由 ROA/Cashflow/TobinQ/Lev 派生的财务潜变量路径
governance -> ln Patent0.2058由 Top1/Indep/Board 派生的治理潜变量路径
DFI direct path0.0032控制两个潜变量后的直接路径
模型 R²0.0777教学路径模型的解释度

案例图

这是一张由同一份案例数据生成的页面内诊断图。

验证性因子分析 CFA 的共用案例输出图。
验证性因子分析 CFA 的共用案例输出图。

论文里怎么写

本文使用验证性因子分析 CFA对案例派生题项进行量表/潜变量诊断。结果见 cfa_results.csv。若信度、载荷或拟合指标未达到常用阈值,后续结构路径不宜直接作为强证据解释。

检查清单

  • 先按理论指定题项属于哪个潜变量,不要让软件替你命名结构。
  • 同时报告标准化载荷、CR、AVE 和整体拟合指标。
  • 拟合不好时不能随意连误差项;每次修改都要有理论理由。

返回教程库 · 查看共用案例