ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

结构效度分析全流程:从EFA到CFA的实证检验方法

结构效度分析全流程:从EFA到CFA的实证检验方法 1. 先把概念边界划清楚结构效度到底在验证什么1.1 从一句审稿意见说起审稿意见里最让我头疼的一句话不是“样本量不够”而是“Please provide evidence of construct validity”。第一次收到时我懵了很久问卷是参考成熟量表改的信度α0.88因子分析也做了还要什么证据后来帮导师改了几十份硕士论文、自己也重投过几个期刊才算真正把这条逻辑线走通结构效度不是“跑一个因子分析”能交差的它是一场从理论构念到测量指标的系统验证。很多人把结构效度理解成“用统计软件跑出来的一堆指标”这其实从一开始就跑偏了。结构效度的本质是回答一个理论问题你的量表分数是否真的反映了你想测的那个构念construct而不是在测别的东西。比如你想测“工作倦怠”但量表的某一题写的是“最近睡不好”睡不好可能跟倦怠有关更可能测的是躯体健康——那这一题就在削弱结构效度。1.2 三种效度怎么分工别再混着用测量学里传统上把效度分成三类内容效度、效标效度、结构效度。很多教材把它们并列但在实际研究里它们的地位完全不是同等的。内容效度靠专家评审判断“条目是否覆盖了构念的各个关键方面”本质上是拿理论对照条目的文字描述属于逻辑判断没有统计量。效标效度拿测量分数跟一个外在效标比如工作绩效、学业成绩求相关看预测力。结构效度检验“理论构念-测量指标”之间的内在关系这一类几乎只能靠实证数据来支持。我做结构效度分析时常做一个很朴素的工作先把理论构念拆成维度再把每个条目归到某个维度下拿给三个同行“盲评”看他们是否一致认为这个条目属于那个维度。得到基本一致的判断之后才进入数据层面的检验。原因很简单——如果条目在文字层面都站不住脚后续任何高阶统计都是空中楼阁。1.3 为什么说结构效度是一个“累积证据”的过程美国心理学会的《教育与心理测试标准》很早就把效度定义为“基于证据和理论所支持的、对测试分数解释的合理程度”。这里的关键词是“解释的合理程度”不是“量表本身的有效性”。同一个量表用在不同文化、不同人群结构效度可能完全不同。所以不存在“这个量表效度已验证过我可以直接搬过来用”这种说法你能做的只是“在中国样本里重新检验它的结构效度”。这种累积证据的思路正好解释了为什么结构效度是三种效度里最核心的内容效度和效标效度说到底都是在为“分数解释得合不合理”提供某一种证据而结构效度把理论网络、维度关系、测量误差全串起来了。2. 分析前先回答两个必答题样本量估算与数据预处理2.1 样本量到底要多少才能撑得起结构方程结构效度分析里的核心是因素分析和结构方程样本量不够时模型可能干脆不收敛或者收敛了但参数估计极不稳定。常见的经验规则有三个版本我实际用下来的感受都有坑。规则一N≥200。这个门槛太低了碰到四五个因子的量表200人估计出来的因子载荷标准误大得离谱。规则二条目数×5~10倍。这个在EFA阶段勉强够用但到了CFA阶段模型涉及协方差矩阵里大量参数按条目数算容易低估需求。规则三按模型参数数量估算N≥参数的5~10倍。这个相对合理但新手很难提前确定要估计多少参数。我的个人建议是做CFA样本量至少300起步如果条目数超过30或因子数超过4个尽量往400~500准备。群组比较比如男女组差异则每组都要达到这个量级不能拿总样本数“摊”到各组。如果你有条件更严谨的做法是用蒙特卡洛模拟来估算所需样本量——在R的lavaan包里根据自己的模型结构生成模拟数据设定目标效应量、缺失率跑1000次反复模拟看哪种样本量下模型收敛率和检验功效都达标。这个方法我现在几乎每次都用属于“平时麻烦一点、投稿时心里有底”的那种投入。2.2 数据清洗不能只做均值替代数据质量对结构效度的影响常常比统计方法的选择更大。至少过四个关卡。第一关是缺失值。如果用均值替代缺失等于自己篡改数据的方差结构相关矩阵会被低估后续载荷和拟合指标都会失真。CFA阶段优先用全信息最大似然法FIML处理缺失R的lavaan在默认设置下就会用这个逻辑不用专门设代码。第二关是正态性。绝大多数结构方程模型默认数据近似的服从多元正态分布。实际问卷数据很少完美正态但至少要让每个条目的偏度绝对值小于2、峰度绝对值小于7。如果明显超标就不要用普通最大似然法ML改用稳健估计MLR或者针对有序数据的WLSMV。第三关是极端响应与重复作答。连续填完全相同数字的问卷要直接剔除这个没商量反向计分的条目注意有没有录入错误——反问题要是录入方向错了会在因子分析里冒出一个莫名其妙的“方法因子”。第四关是题项-总分的相关性。在做任何因子分析之前先算每个条目与量表总分剔除该条目后的相关低于0.3的条目我会重点标记这通常是“内部一致性偏低”的第一个信号。3. 探索阶段的实操细节EFA不是“特征值大于1”这么简单3.1 谁需要先做EFA谁可以直接跑CFA很多教材把“先探索性因子分析EFA、再验证性因子分析CFA”写成固定套路实际场景要区分开。如果你使用的是一条成熟量表在原始文化背景里结构已经反复被验证翻译回中文后属于“跨文化修订”这时候最优做法是拿一个新样本直接做CFA验证原结构是否仍然成立。如果一个问卷是你自己根据理论开发的新量表那EFA和CFA都要做而且理想情况下要用两个不同样本先用第一个样本做EFA探索结构再用第二个独立样本做CFA确认结构。最忌讳的做法是同一样本里先做EFA根据EFA结果删掉几条题再拿这个样本做CFA然后报告“模型拟合良好”——这等于先看答案再做题检验效力被明显高估审稿人一眼就能看出来。3.2 因子数目的判定平行分析比“特征值1”靠谱得多SPSS默认输出的Kaiser准则特征值大于1在心理学数据里表现并不好。它容易高估因子个数尤其当条目多、负荷中等、样本量偏大的时候会给你拆出几个解释力极低、概念上说不通的因子。我自己现在判断因子数几乎只看三个工具的组合平行分析parallel analysis把真实数据的特征值与随机生成数据的特征值做比较只有真实值高于随机特征值均值的那几个因子才保留。碎石图看曲线由陡峭转平缓的“拐点”作为辅助判断。MAP准则最小平均偏相关根据偏相关矩阵给出建议因子数比Kaiser准则稳健。做平行分析很便宜的R里两行代码就能出结果也不需要额外安装奇奇怪怪的软件library(psych) fa.parallel(my_data, fa fa, fm ml, n.iter 100)fa参数选择fa而不是pc因为你做的是因子分析而不是主成分分析。fm ml表示用极大似然法做因子提取信息损失相对小。3.3 旋转方法与条目去留斜交旋转不是洪水猛兽因子旋转的目的不是“让结果更漂亮”而是让因子的结构更容易解释。正交旋转Varimax假设因子之间完全不相关斜交旋转Promax、Direct Oblimin则允许因子之间存在相关。心理学和社会科学的构念绝大多数不是彼此正交的。工作压力和工作倦怠、组织承诺和离职意向——这些概念理论上就存在相关。所以我在做EFA时几乎一律用斜交旋转。你没必要担心“斜交旋转没有正交旋转干净”反而要警惕的是如果因子间的相关太高比如大于0.85说明这两个“维度”可能其实是同一个东西这时候要去合并维度而不是靠旋转来粉饰。条目去留有一套常见的阶梯式判断逻辑该条目的公因子方差communality小于0.3说明它被共同因子解释的部分太少考虑删除。该条目在主因子上的载荷小于0.4删。该条目在多个因子上同时出现超过0.4的交叉载荷且两者差距小于0.2考虑删。删除后必须重新跑EFA并再检查因子结构不能一次全删完。有一个反直觉的点同一道题连续删掉之后因子的特征值和整体解释方差反而会上升因为干扰项被净化了。我第一次遇到这种情况特别不习惯总感觉“删了条目总量表变得更弱了”事实恰恰相反。4. 验证阶段核心动作CFA模型设定与拟合指标怎么看4.1 模型设定里最常见的四个错误CFA不是“把条目扔进软件自动出结果”它的一切都基于你对模型的预先设定。设定阶段最容易犯的四个错误我一个一个说。第一个错误允许条目跨因子自由载荷。CFA的意义在于验证“条目A只属于因子甲”的理论结构。如果你允许条目在多个因子上都有载荷探索性色彩会大大增强与EFA的区别就模糊了。建模型时默认每个条目只归属一个因子除非你基于理论和模型修正指数有非常明确的理由否则不要开放跨载荷。第二个错误忽略误差项独立性的假设。CFA默认不同条目之间的误差是不相关的。当两题在措辞上高度相似“我经常感到疲惫”和“最近总觉得精疲力尽”或者一正一反的表述出现在问卷里误差项往往会相关。修正指数会提示你“MI值特别高”这时候可以做误差项相关但这属于对模型进行修补每补一条都要有理论依据不能单纯为了拟合指标好看。第三个错误因子尺度设置混乱。潜变量本身没有单位必须被“锚定”。常见做法有两种固定每个因子的第一个条目的载荷为1固定载荷法或者固定因子方差为1固定方差法。两种方法等价但混用容易让因子间相关系数的解读变得麻烦。我习惯固定每个因子第一个条目的载荷为1读输出时看标准化解就可以了。第四个错误全局识别条件不足。模型中每个潜变量至少要有3个观测指标否则模型可能不可识别。两指标因子只有两个条目测量一个因子不是完全不能跑但识别过程很脆弱极易出现边界估计。开发新量表时每个维度尽量保留4个以上条目就是为了在这个阶段不给自己埋雷。4.2 拟合指标不是越多越好关键是看哪几个CFA跑完之后输出的拟合指标一大堆新手容易“哪个好看报告哪个”这恰恰是审稿人最反感的。我自己的判断框架按重要程度排序是三步第一步看χ²检验和自由度。χ²/df小于3可以认为模型与数据差异不大小于5属于勉强可接受。但χ²检验对样本量极其敏感样本量大时几乎必然显著所以这个指标仅供参考不要因为p0.05就判定模型失败。第二步看近似拟合指标。我固定报五个CFI、TLI、RMSEA、SRMR再加χ²/df。常用门槛是CFI和TLI≥0.90可接受≥0.95为良好RMSEA≤0.08可接受≤0.06为良好SRMR≤0.08。第三步看修正指数MI这一步属于“诊断”不是“拟合指标”。如果有理论依据可以逐步释放误差相关或跨载荷但每释放一个参数自由度就少一个模型的简约性就打折扣。一个良好模型应该是在不多加太多参数的前提下仍然能被数据支持而不是靠修出几条相关硬生生堆出好指标。4.3 载荷、AVE、CR三个数必须联动看结构效度报告里少不了的三个数字标准化因子载荷、平均方差抽取量AVE、组合信度CR。它们三个其实是同一个逻辑链条每个条目是否有效载荷在其因子上→因子能解释条目多少方差→这些解释是否可靠。标准化因子载荷理想状态≥0.70.5~0.7属于可以保留但要留意低于0.5的条目除非理论地位极其重要否则建议删除。组合信度CR相当于潜变量的内部一致性≥0.7可接受≥0.8更好。平均方差抽取量AVE因子能解释其条目方差的平均量≥0.5说明该因子解释了超过一半的方差这是聚合效度的基本合格线。我这里说一个最容易踩的坑不要只报Cronbachs α就给研究定性“信度良好”。α系数容易受条目数量和题目冗余度影响两项α也可能偏高但它完全反映不了单条目的效度问题。所以我实际分析时α和CR两个都看而且CR优先因为CR是根据CFA里边的标准化载荷算出来的和验证性因子的模型本身更一致。算这些指标在R里基于lavaan结果直接提取就行library(lavaan) semTools::reliability(fit) # 输出alpha、omega、CR等“别等投稿被拒了才意识到文章里缺了哪个指标”这句是我自己教学生做论文时经常重复的话。5. 区分效度的三种证明法从Fornell-Larcker到HTMT5.1 Fornell-Larcker准则最传统但仍要会说聚合效度回答的是“同一个因子内部的条目是否足够一致”区分效度回答的是“不同因子之间是否真的不一样”。比如“工作满意度”和“组织承诺”这两个因子如果相关系数高达0.95那你几乎可以断定它们没有区分开量表测的其实是同一个构念。Fornell和Larcker在1981年提出的判断准则是每个因子AVE的平方根要大于该因子与其他因子的相关系数。写成大白话就是某因子跟它自己条目的共同方差要大于它跟别的因子的共享方差自己人都比外人更亲边界就清晰了。实际报告时通常用一个相关系数矩阵加粗对角线值来表示。我的一个经验如果某两个因子的相关系数超过了0.85即使Fornell-Larcker准则勉强通过也需要警惕它们之间是否存在严重重叠。因为0.85这个数值已经高到两个构念在实证意义上几乎等同的程度。5.2 HTMT方法审稿人越来越爱看的新标准Fornell-Larcker准则被很多模拟研究批评为“检验力不足”——两个因子之间的真实相关明明严重偏高它仍然可能判定“区分效度良好”。Henseler等人提出的HTMTheterotrait-monotrait ratio异质-单质比率方法思路更直接比较“不同因子条目之间的平均相关”与“同一因子条目之间的平均相关”的比值。HTMT的判断阈值有两种口径0.85以下属于严格标准放宽到0.90也可以接受。我一般在心理学研究里用0.85这个保守口径因为心理构念本来就纠缠得厉害放得太宽容易让审稿人质疑。实操上有两种做法如果用的是SmartPLS或AMOS都有直接输出HTMT的选项如果用R可以基于CFA模型导出相关矩阵按公式手动计算。公式不复杂不需要写几千行代码重点是把概念理解清楚——比值越低说明不同因子的条目之间“粘连”越少区分效度越好。5.3 置信区间法最严谨但报告的人最少第三种方法是通过模型比较来检验两个因子能否合并。做法是先跑一个自由相关模型因子间相关系数自由估计再把相关系数固定为1比较两个模型的卡方差异。如果固定为1之后模型拟合显著变差说明两个因子确实有区分度如果拟合几乎没变化就说明“它们本来就是一体的”。这个方法的优势在于给出了明确的统计检验逻辑而不是依赖经验阈值。我在一些要求特别高的投稿里会用这个方法作为HTMT结果的一个交叉验证。缺点是操作略复杂要建两个模型并逐对比较因为每次只验证一对因子。6. 高阶但越来越常见的检查测量不变性与共同方法偏差6.1 什么时候必须做测量不变性检验如果你的研究要比较不同组别的构念均值——比如比较男性和女性的工作倦怠水平、比较不同年龄段的敬业度差异——那就不能只报告整体样本的结构效度。因为“该量表在两组之间是否测量了同一个构念”并不是默认成立的。测量不变性measurement invariance就是专门检查这个前提的。测量不变性按约束程度递增一般分四个层级形态等值configural各组的因子结构相同条目的归属和因子数量一致。这是基础。负荷等值metric/weak各组的因子载荷相同意味着条目与因子的关系强度在组间一致。截距等值scalar/strong各组条目截距也相同这时才能比较潜均值。误差等值strict误差方差也相同实际研究中很少要求偏严格。比较各组模型时通常用卡方差异检验但卡方检验同样对样本量敏感。所以实际判断更依赖模型拟合指标的变化常用的标准是ΔCFI≤0.01ΔRMSEA≤0.015说明约束没有显著恶化模型。在R的lavaan里实现起来逻辑非常清晰fit_configural - cfa(model, data mydata, group gender) fit_metric - cfa(model, data mydata, group gender, group.equal loadings) fit_scalar - cfa(model, data mydata, group gender, group.equal c(loadings, intercepts)) anova(fit_configural, fit_metric, fit_scalar)这里特别提醒一句很多人跑完整体样本的CFA就直接比较潜均值结果发现完全失效。我帮学生改过好几篇论文都是栽在这个地方。只要涉及组间比较测量不变性是绕不开的前置步骤。6.2 二阶因子模型什么时候用什么时候不用如果你的量表里分了几个子维度同时理论认为这些子维度统一地受一个更高阶构念驱动——比如“工作倦怠”有“情绪耗竭”“去个性化”“低成就感”三个子维度而你又认为倦怠是一个统一的高阶概念——这时候可以在CFA基础上加一个二阶因子模型。二阶模型的实质是用一个更高阶的潜变量来解释子维度之间的相关。判断二阶层级是否成立核心指标是一阶因子在二阶因子上的载荷如果各子维度在二阶因子上的载荷都在0.6以上说明二阶结构成立如果某个子维度载荷很低它在理论上可能并不属于这个高阶构念或者它是一个独立的概念。但这里有一个容易被忽视的陷阱二阶模型的一阶因子数至少要有3个最好4个以上你不可能用2个一阶因子去识别一个二阶因子模型。所以开发量表时尽量保证维度结构不是“双因子”结构否则后续做不了二阶验证。6.3 共同方法偏差结构效度报告的“隐形扣分项”问卷研究里每个变量都是同一批人同一时间填的变量间的相关可能有一部分来自“同一个人填所有题”共同的作答偏差比如社会赞许性、一致的作答风格、暂时的情绪状态。这种偏差叫共同方法偏差common method bias它可能抬高或扭曲因子间的相关直接影响结构效度判断。最常被用到的是Harman单因子检验把所有条目拉进一个因子看是否有一个因子解释了明显的大部分方差。这个方法被诟病很多我个人的态度是可以作为初筛参考但不能作为“没有共同方法偏差”的过硬证据。更靠谱一点的做法是在CFA模型里加入一个共同方法因子每条目都允许在方法因子上有载荷然后比较加入前后的拟合变化。如果模型拟合明显变好说明数据里的共同方法变异不可忽视这时候报告结果时最好如实说明甚至在模型里控制住方法因子后再检验结构关系。这个操作在投稿回复里也能主动说审稿人对“意识到局限并尝试检查”的做法通常会好接受得多。7. 完整流程速览与我最常踩的坑如果把整套结构效度分析流程压缩成一页纸我通常按下面这个顺序操作每一步都跟后一步紧密衔接明确理论构念的操作定义画出维度-条目映射表。请至少3位领域专家评判条目归属做内容效度确认。小样本预试N≥100做EFA探索初步因子结构。清洗数据检查缺失、极端值、正态性、题项-总分相关。独立大样本N≥300做CFA验证结构记录载荷、拟合指标。计算CR和AVE检验聚合效度。用Fornell-Larcker或HTMT检验区分效度。若涉及组间比较做测量不变性检验。若量表结构存在高阶构念补做二阶CFA。报告中把所有指标、判定标准、处理过程完整写出。走完这套流程最少也要两三个来回。我自己的第一次实战就栽过一个大跟头预试和正式样本不是同一批但我偷懒拿同一个样本做完EFA又做CFA当时觉得“结果很漂亮”被导师一眼看穿后重头再跑。后来我的习惯很简单数据拿到手先从中间随机劈成两半一半用于EFA另一半留到CFA用。这样做可以让两个检验的数据基础真正相互独立审稿人看到也会觉得你的流程严谨。还有一个无数次会遇到的坑模型修正指数的诱惑。lavaan一跑MI值上百个你会看到“条目3和条目4误差相关”的MI特别高一加进去CFI立刻往上蹿。但请记住不是为了指标的进步而修正而是为了阐释理论结构才修正。没有理论依据的每一条修正都是在给研究积累风险。最后一个建议是关于报告格式的。结构效度部分别只丢一个表建议把这样几块都放进去条目与因子的映射表、EFA结果如做了、CFA的拟合指标表、载荷/CR/AVE表、区分效度的相关系数矩阵表。这样一整组放下去审稿人想挑毛病也挑得费劲。我做了这么多年结构效度分析最大的体会是与其说这是一套统计流程不如说是一次“理论和数据的语言统一”。统计方法只是把理论问题翻译成数据逻辑的工具真正的判断落脚点永远是——你怎么解释这些测量结果、怎么捍卫这个解释。把功夫下在这个层面上结构效度分析就没有那么吓人了。
返回列表