推荐书: Python开发最佳实践

SPSS+Amos共同方法偏差的诊断

微博@mlln-cn, 并附上文章url链接, 我就能回答你的问题奥!

共同方法偏差(Common Method Bias)指的是因为同样的数据来源或评分者、同样的测量环境、项目语境以及项目本身特征所造成的预测变量与效标变量之间人为的共变。

– 百度百科

共同方法偏差导致变量之间的相关偏高, 导致我们容易得出错误的结论, 尤其是问卷数据进行分析的时候, 很容易出现共同方法偏差, 因此在进行数据分析之前, 需要先进行检验, 看数据是否受到了共同方法偏差的影响。

诊断共同方法偏差的方法有很多, 常用的有三种: Harman’s single factor test(单因素检测), Common latent factor(潜变量法), and Common marker variable(标签变量法)。

单因素检测(Harman’s single factor test)

该方法使用探索性因子分析, 并且限制仅提取一个因子, 如果这个因子的方差解释率达到了50%以上, 我们就可以怀疑存在着共同方法偏差。

这种方法最大的优势就是简单, 也容易理解, 但是缺点也比较多:

  • 数据可能受到多个共同因素的影响, 但是该方法仅能检测一个
  • 变量个数越多在探索性因素分析中可以提取的因子也就越多, 当固定一个因子的时候, 方差解释率越难超过50%

SPSS操作

打开因子分析的对话框

将有关变量都放到变量框, 从变量名我们就可以推测, 我这里用了三个因子的变量

在”提取”对话框中, 设置提取因子的个数为1

在计算的结果里面, 我们只需要找到累计方差解释率, 如果这个值没有超过50%就认为不存在共同方法偏差

汇报结果

使用探索性因子分析, 使用主成分的方法提取因子, 并且固定因子数为1, 结果显示, 第一个因子的方差解释率达到39.4%, 没有达到50%, 因此不存在共同方法偏差。

潜变量法 Common latent factor

使用验证性因子分析(CFA)的方法, 构建如下的模型, 模型标名我们有两个因子, 如果存在共同方法偏差CMB, 就会导致F1和F2之间的相关偏高, 因此我们需要构建因子F3, 代表共同方法因子, 它可以影响所以的测量指标。

F3代表共同方法因子, F3对所有的指标变量都有影响, 并且限制所有路径的系数相同, 设置F3的方差为1。这种方法也是仅允许只有一个共同因素, 并且限制了每个指标变量受共同因素的影响程度相同。 并且如果F1和F2本身存在一定的相关性, 也可以导致F3到测量指标的路径系数是显著的,并且会显著降低F1和F2之间的相关性。

通常情况下, 我们会设定两个模型, 模型1设定所有F3的因子载荷固定为0, 也就是假设没有CMB , 模型2设定F3所有因子载荷都固定为一个变量, 比如a, 变量名无所谓, 也可以是b。 最终比较模型1和模型2之间的卡方差异是否显著, 如果模型2的卡方值显著低于模型1, 说明存在CMB。

Amos操作

构建基线模型:共同方法因子有关的路径系数都控制为0

构建控制模型, 与基线模型的区别就是我们的共同方法因子有关的路径系数都控制为a

比较两个模型的拟合指标卡方的变化:

  • 这是基线模型的卡方

  • 这是控制模型的卡方

结果汇报

控制模型卡方148.326(df=40)与基线模型卡方171.324(df=41)的差值为22.998(df=1),达到显著水平(p<0.05)。

标签变量法 Common marker variable

同样是使用验证性因子分析, 我们增加了一个Marker F4, 理论上F4与F和F2都没有关系, 也就是相关为0, 同时我们设定F3到所有测量指标的路径系数都相同, 因此F3到测量指标V10-V12的路径系数就表示了共同方法偏差, 由于理论上F4与F1和F2之间相关为0, 当没有F3的时候, 他们之间的最小的相关系数也能代表共同方法偏差。

该方法比上一个方法的优点就是可以有了标签变量, 它与其他变量都受到共同方法F3影响的话, 就可以证明有偏差存在。

通常情况下, 我们会设定两个模型, 模型1设定所有F3的因子载荷固定为0, 也就是假设没有CMB , 模型2设定F3所有因子载荷都固定为一个变量, 比如a, 变量名无所谓, 也可以是b。 最终比较模型1和模型2之间的卡方差异是否显著, 如果模型2的卡方值显著低于模型1, 说明存在CMB。

Amos操作

  • 这是基线模型

  • 这是控制模型

基线模型的卡方值

控制模型的卡方值

在这个网页上可以进行卡方差异是否显著的检验: https://mlln.cn/2020/09/17/卡方差值的显著性检验/

现在的结果是:

结果汇报

控制模型的卡方206.676(df=71)与基线模型的卡方203.629(df=70)的差值为3.047(df=1),没达到显著水平(p>0.05)。

视频教程

参考文献

注意
本文由jupyter notebook转换而来, 您可以在这里下载notebook
有问题可以直接在下方留言
或者给我发邮件675495787[at]qq.com
请记住我的网址: mlln.cn 或者 jupyter.cn

赞助

持续创造有价值的内容, 我需要你的帮助