ARTICLE DETAIL

资讯详情

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

从偏差平方和到共同方法偏差:Amos潜在误差变量控制法实战指南

从偏差平方和到共同方法偏差:Amos潜在误差变量控制法实战指南 很多做问卷研究的朋友看到审稿意见里写着“建议检验共同方法偏差”第一反应往往是去搜“共同方法偏差怎么检验”搜到“Amos潜在误差变量控制法”之后又会被“偏差平方和”这个统计名词卡住。这两个问题表面上不在一起其实关系非常紧密偏差平方和说明的是数据里的变异从哪来、怎么拆共同方法偏差关心的是变量之间那部分共享变异里有多少根本不是来自真实特质而是来自测量方法本身。想用Amos把潜在误差变量控制法跑明白必须先理解“方差分解”这个底层逻辑。这篇文章我会先把偏差平方和讲透再讲共同方法偏差为什么需要在模型里额外塞一个“方法因子”最后给出Amos从画图、设约束到跑结果、写报告的全流程。适合正在做毕业论文、准备投稿或者第一次被审稿人要求做CMB检验的同学参考。我会把我实际跑数据时踩过的坑也一起放进来少走弯路。1. 偏差平方和到底在说什么1.1 一个数字例子看懂“平方和”先别急着打开Amos我们先用一个最简单的例子理解“偏差平方和”。假设你要比较三种排班方式下员工的日均任务完成量每组三个人A组2、3、4B组3、4、5C组4、5、6九个数字的总平均值是4。把每个数字和4相减得到离差-2、-1、0、-1、0、1、0、1、2。这些离差全部平方再相加得到的就是总偏差平方和记为SST。算出来是12。总偏差平方和还能继续拆。第一种拆法是把“各组均值之间的差异”单独拎出来A组均值3B组均值4C组均值5它们和总均值4的离差分别是-1、0、1平方后乘以每组人数3得到组间平方和SSB6。第二种拆法是看“组内个体围绕本组均值的波动”三组内部的离差平方和分别是2、2、2加起来组内平方和SSW6。于是就有最核心的等式SST SSB SSW。这个式子看起来只是算术但它背后的统计学含义非常深一组数据的总变异可以拆成“由分组造成的差异”和“随机误差造成的差异”两个来源。方差分析本质就是在比较这两个来源谁更大用组间均方除以组内均方得到F值如果组间差异显著大于组内随机波动就说明分组确实有作用。1.2 平方和在方差分析和回归里的角色回归分析里也存在同样的分解逻辑。因变量y的离差平方和SST可以被拆成“回归可以解释的部分”SSR和“回归无法解释的残差部分”SSE。判定系数R²就是SSR除以SST它的含义是在y的总变异里自变量能解释掉多大比例。这就是“偏差平方和说明什么”最简练的答案它说明数据里到底有多少变异、变异来自哪些来源、某个来源占了多少比例。没有平方和的分解就没有方差分析中的F检验也没有回归里的R²更没有结构方程模型里的方差协方差比较。在Amos这类结构方程模型软件里平方和的思路被进一步扩展了。模型估计在核心上比较的是“样本协方差矩阵”和“模型预测的协方差矩阵”之间有多大偏差。卡方值、RMSEA、SRMR这些拟合指标本质上都是围绕“模型剩下多少偏差没有解释掉”来计算的。所以如果你不理解偏差平方和就很难看懂Amos输出的那些拟合指数为什么重要。1.3 为什么研究共同方法偏差前要先把平方和想清楚共同方法偏差这个概念往根上说就是一个“方差来源归属”的问题。问卷研究中两个潜变量之所以相关可能有三个来源两个构念在理论上本来就相关数据采集时用了同一个问卷、同一批被试、同一个时间点导致方法上的共同变异被算进了构念相关里纯随机误差。如果没有“方差分解”的思维你很容易把所有共享变异都当成真实关系。潜在误差变量控制法做的事就是在模型里增加一个公共因子专门负责“吸收”第二个来源的变异再看真实构念之间的路径系数还剩多少。这个思路和方差分析里“把总变异拆成组间和组内”如出一辙只不过拆的对象从“组”换成了“方法因子”。所以标题里“偏差平方和”和“共同方法偏差”不是两个无关的知识点前者是理解后者的钥匙。2. 共同方法偏差那点“共享变异”到底从哪来2.1 什么是共同方法偏差共同方法偏差英文叫Common Method Bias简称CMB指的是“由于测量方法而不是所测构念本身导致的系统性变异”。这里有一个关键词系统性。随机误差虽然也干扰数据但它不会让两个变量稳定地相关共同方法偏差不同它会规律性地夸大或削弱变量之间的关系。最常见的场景是单波次问卷研究。一个人在同一时间、同一份问卷里先填了自变量“工作满意度”又填了因变量“离职意愿”。他当天心情很差可能把所有题都往消极方向打分他当天心情很好又可能所有题都偏积极。于是工作满意度和离职意愿之间的相关就不只来自真实联系还来自“当天情绪”这个共同方法源。这种偏差造成的后果可大可小。它可能让两个本来不相关的构念显著相关也可能掩盖真实存在的相关。很多研究者觉得“只要显著就行”但如果你不能说服审稿人这个“显著”不是测量方法带来的结论就站不住。2.2 它从哪里来会怎样干扰结论共同方法偏差的来源通常可以归成三类你可以对照自己的问卷设计自查测量工具本身的特征题项措辞含糊、所有题都用同一套正向计分方式、题干中包含太多线索词都会引导被试按同一模式作答。评分者的内部状态情绪、社会赞许倾向、一致性动机——被试不愿意显得自相矛盾于是会把同类题目填得很接近。测量情境同一时间、同一场所、匿名性不够都可能放大系统性变异。在实际操作中不用把所有来源都识别出来你需要做的是向审稿人证明“即使存在共同方法偏差它的影响也没有大到改变我的核心结论。”2.3 审稿人常要的检验方法对比处理共同方法偏差的策略大体分成“程序控制”和“统计检验”。程序控制是在问卷收集阶段预防比如匿名填写、时间错开、多源数据统计检验是在数据拿到之后做诊断或补救。这里只列几种最常见的统计策略。策略基本思路优点缺点Harman单因素检验所有题项放一起做EFA看未旋转的第一个因子解释率是否低于40%操作简单、SPSS几秒钟出结果过于宽松又过于严苛学界认可度越来越低单因子CFA比较将所有题项负荷在一个公共因子上看模型拟合是否很差比Harman正式一些只能提供间接证据不能排除CMB潜在误差变量控制法在结构方程模型中加入一个方法因子吸收共同变异能量化方法变异的影响可以直接观察路径系数变化需要样本量、模型约束操作稍复杂标记变量法在问卷中放一个理论上与核心构念无关的“标记变量”控制更精细很难提前放好合适的标记变量如果你的场景是“数据已经收完没有多来源、没有时间隔开只能用统计手段回应审稿人”那潜在误差变量控制法是比较好的选择。但要注意它是对模型的后期修正不是万能药如果程序上完全没有控制审稿人也可能不买账。3. 潜在误差变量控制法的原理3.1 模型里加一个“方法因子”潜在误差变量控制法英文是Unmeasured Latent Method Construct常被简写为ULMC。名字很长但思路很短在结构方程模型里额外加一个潜变量让它指向所有测量题项。这个潜变量没有理论含义只负责“收留”所有题目共享的、不属于真实构念的变异。可以用一个公式帮助理解。对于一个题项xᵢ我们可以把它的得分拆成三部分特质因子的贡献这是我们真正关心的构念方法因子的贡献这是共同方法偏差的来源随机误差。加方法因子之后模型在估计“工作满意度影响离职意愿”这条路径时会先把所有题项里被方法因子解释掉的共同变异拿出来剩下的部分才用来估计真实路径。如果路径系数在加入方法因子前后变化不大说明共同方法偏差没有很严重如果路径从显著变成不显著或者系数掉了非常多说明之前的显著相关很可能有水分。用“垃圾桶”来类比可能更容易记住。方法因子像一个专门装公共垃圾的垃圾桶把所有题项里“来自问卷形式的共同杂质”统一倒进去。倒完之后再看构念之间的关系相对干净一些。3.2 为什么必须做约束很多第一次用Amos跑ULMC的同学会在第一步就卡住画好模型之后软件报错、不给估计结果。绝大多数原因是模型识别不足。结构方程模型本质是用样本协方差提供的信息去估计参数。方法因子本身没有对应的实测指标——它不是问卷里的一个维度所以必须靠约束条件才能从数学上把它“抓”出来。最常见的三种识别策略让方法因子到所有题项的载荷相等设置同一个参数名让其中至少两个题项的方法载荷相等固定方法因子的方差为1同时估计至少两个载荷。我建议新手优先用第1种也就是在Amos里把所有方法因子的载荷命名为同一个参数。它容易理解、不容易出错论文里也解释得清。还要注意方法因子和特质因子之间理论上应设为正交也就是不相关。实际操作中只要不在Amos里给方法因子和别的潜变量画双箭头它就被默认为不相关。这个默认设定对ULMC来说是正确的。3.3 方法有边界——设计上预防更根本必须冷静地说一句ULMC不是灵丹妙药。它只能从统计上“吸收”一部分共同变异不能做到像实验设计那样干净地控制一切。而且如果方法因子与特质因子在处理上被强制不相关而实际数据里二者相关不为零也可能造成过度校正或校正不足。更关键的是审稿人今天已经不会只看“是否做了ULMC”。他们更关心你有没有在数据采集阶段就采用程序控制比如匿名作答、副题随机排序、时间滞后、配对数据。所以我的建议是ULMC可以作为对已收数据的一个补救和交代但下次设计问卷时优先从源头阻断共同方法偏差。4. AMOS操作全流程4.1 准备数据与前置检查在打开Amos之前先把数据准备好。以最常见的三变量模型为例自变量X、中介变量M、因变量Y每个变量有3到4个题项。数据文件建议用SPSS保存成.sav格式变量名不要有中文不要有空值每一列用简短的英文命名比如x1、x2、x3、m1、m2、m3、y1、y2、y3。这里有一个新手特别容易踩的坑不要拿“总分”或“均值”去跑ULMC。潜在误差变量控制法需要题项级别的信息因为只有多个题项的共享变异才能被方法因子吸收。如果你已经提前把条目打包成总分方法因子就没有着力点模型很难估计。另外样本量要留够。结构方程模型的样本经验门槛是“每个自由参数至少配10个样本”而ULMC因为多了一个方法因子和一堆载荷自由参数会比普通CFA多不少所以样本量最好在200以上。如果你的样本只有80人我建议改用更简单的检验方法别硬跑ULMC结果不会稳定。4.2 搭基准测量模型第一步不是加方法因子而是先跑一个不加方法因子的基准模型。原因很简单你得先知道“不加控制时模型长什么样”才能比较“加了控制后变化有多大”。具体操作打开Amos Graphics左侧工具栏选择画潜变量的图标在空白画布上依次画出三个椭圆分别命名为X、M、Y。选中一个潜变量用工具栏里的“Indicators”功能为它指定测量题项。在弹出的数据变量列表里把x1、x2、x3选给X把m1、m2、m3选给M把y1、y2、y3选给Y。用“Draw Covariance”工具在X、M、Y之间画两两相关的双箭头。注意潜变量之间如果要有相关必须手动画线。固定每个潜变量第一个题项的载荷为1。选中路径后右键打开Object Properties在参数设置中的Regression weight栏里输入1。这一步是为了给潜变量定义尺度否则模型无法识别。点击“Select Data File”加载.sav数据点击“Calculate Estimates”运行模型。点击“View Text”查看输出记录卡方值χ²、自由度df、CFI、RMSEA、SRMR以及X到Y的路径估计值。跑基准模型之前最好先确认测量模型拟合合格。如果基准CFA本身就是一塌糊涂那加不加方法因子都没有意义。4.3 加入方法因子并设置载荷约束确认基准模型能顺利收敛后把文件另存一份开始加方法因子。复制一份当前文件保存为“ULMC模型”不要直接在原文件上改方便回退。在画布上再画一个椭圆命名为Method。用“Draw Path”工具从Method指向所有观察变量x1、x2、x3、m1、m2、m3、y1、y2、y3。注意是指向矩形不是指向潜变量。最关键的一步把所有Method到题项的路径载荷设相等。双击其中一条从Method到题项的路径在参数名称里输入一个相同的名字比如b1然后对其余所有Method路径都设置成b1。这样Amos就会把它们当作同一个参数来估计。不画Method到X、M、Y之间的相关箭头保持正交。特质因子到题项的载荷固定规则与基准模型保持一致也就是每个潜变量的第一个题项载荷为1。再次加载数据点击运行。如果出现“模型无法识别”的提示优先检查两件事一是特质因子是否每个都有固定载荷1的题项二是方法因子的所有载荷是否真的用同一个参数名。绝大多数识别问题都出在这两个地方。4.4 运行与结果解读跑完后把两个模型的输出放在一起对比。主要看三点。第一看模型拟合改善。比较χ²的变化Δχ² 基准模型的χ² − 方法模型的χ²Δdf 基准模型的df − 方法模型的df。如果Δχ²在对应自由度下显著说明加入方法因子后模型拟合明显变好也就是“数据里确实存在可被公共方法因子解释的变异”。这里的Δχ²差异检验要查卡方临界值表不要只看χ²大不大。第二看方法因子本身的载荷。如果Method到各题项的标准化载荷整体偏小、不显著说明共同方法偏差不明显如果载荷较大且显著说明存在一定的方法变异。第三也是最关键的看核心路径的变化。以X到Y的路径为例比较基准模型和方法模型里的标准化回归系数。我的经验标准是如果路径系数变化不超过0.1且显著性没有发生反转那就不太担心共同方法偏差会推翻你的结论如果系数原本显著、加了方法因子后失掉显著性或者系数直接缩水一大截那结论就要谨慎陈述了。报告里可以这样写为检验共同方法偏差的影响采用潜在误差变量控制法在结构方程模型中加入一个由全部测量题项指向的方法因子并对其载荷进行相等约束。结果表明加入方法因子后模型拟合改善不显著方法因子载荷均值较低关键路径系数变化小于0.1说明共同方法偏差对本研究结论的干扰有限。4.5 自己要不要再做一个模型比较有的教材会建议你用Amos里的嵌套模型比较功能也就是在同一个Amos文件里设置两个模型一次性估计并自动给出Δχ²。这个功能存在但对新手来说分开运行两个文件再手动计算反而更清晰也不容易因为模型设定冲突而出错。等你熟悉ULMC之后再用管理模型功能提高效率也不迟。5. 常见问题、避坑与自查清单5.1 常见报错与解决办法现象可能原因处理方式模型不收敛无法估计样本量不足题项过多方法约束设置错误增加样本减少题项检查方法因子载荷是否同一参数名出现负的误差方差标准化估计超过1Heywood case数据异常或模型设定问题检查相关矩阵是否有极端值尝试固定该误差方差为0.01重新审查数据缺失协方差矩阵非正定缺失值较多或变量间共线性过高先在SPSS里处理缺失值检查题目间相关是否接近0.99方法因子载荷全部不显著共同方法偏差本身不明显这是可以接受的结果如实报告即可不要为了显著去删题项模型卡方很大拟合很差基准测量模型本身不成立回头检查题项是否归属正确先修好测量模型再说5.2 审稿视角你的报告要交代什么如果你是投稿报告我的建议是至少在正文或附录里交代四点数据收集方式是否有程序控制是否先检验了测量模型是否报告了基准模型和方法模型的拟合指标对比是否报告了加入方法因子后核心路径系数的变化。只贴一个“我做了ULMC”是不足以说服审稿人的。尤其需要注意的是不要把ULMC的结果当成“绝对干净”的证据。我见过一些同学看到方法因子不显著就欢呼“没有共同方法偏差”然后用普通模型继续分析这其实是可以的但前提是你的程序控制也做得说得过去。反过来如果ULMC显示存在明显的方法效应你也不能只承认“有偏见”就完事最好进一步说明结论的稳健性或者换个分析策略。5.3 后续还能怎样扩展这个内容后续还可以往两个方向延伸。一个是用多波次数据配合ULMC做更严格的控制比如用时间延后的交叉滞后模型从设计角度证明结论稳定另一个是用贝叶斯结构方程模型做稳健性检验Bayesian方法对样本量和小模型收敛问题更宽容。如果你正在做一篇实证论文ULMC只是其中一环但弄清偏差平方和、方差分解、方法因子这些底层概念会让你在回复审稿人时更有底气。5.4 实操自查清单防呆清单随时可以拿来对照数据文件是否为.sav格式变量是否全部英文命名是否提前处理缺失值是否先跑不含方法因子的基准模型每个特质因子第一个题项载荷是否固定为1方法因子是否指向所有题项所有方法因子载荷是否使用同一个参数名方法因子与特质因子之间是否保持不相关是否保存了基准模型文件方便回退结果是否同时报告拟合变化和路径系数变化。最后说点我自己的习惯。我在提交报告前一定会先把三个潜变量之间的简单相关矩阵放在桌面上看一遍。如果所有变量相关都高到异常就算ULMC结果再好看我也要先回去检查量表本身如果一个变量和其他所有变量的相关普遍低于0.3那么共同方法偏差通常也不会是主要问题。另一个经验是Amos的模型图每次改动后都单独保存一个带日期的文件。加方法因子、设载荷约束这两个动作非常容易改错改错之后想看之前是什么状态没有备份真的会崩溃。统计控制是手段不是终点数据是不是可信最终仍然要看你在研究设计阶段有没有把好关。
返回列表