二.多重中介
多重中介是指存在多个中介变量的情况。目前针对传统多重中介分析存在
1)分析不完整
LISREL--只能得到总的中介效应估计值及其标准误和t值。
AMOS --也只能得到总的中介效应估计值。
MPLUS--可以得到特定路径的中介效应和总的中介效应估计值,但还是得不到对比中介效应的分析结果。
2)使用sobel检验的局限
首先,sobel检验统计量的推导基于正态假设,而特定中介效应、总的中介效应和对比中介效应估计值都涉及参数的乘积,因而通常都不满足正态假设。
其次,sobel检验需要大样本,检验在小样本的表现并不好。
第三, sobel检验统计量计算复杂,且需要手工计算
所以采用以下两种方法来改善。
1.增加辅助变量的方法
针对当前多重中介效应分析不完整的问题,在结构方程模型中加入辅助变量,可以进行完整的多重中介效应分析。
操作
我们还是以上图的模型为例子
首先打开spss数据库,在SPSSFILE下选择Save as,依次保存上述指标变量A1,A2,B1,B2,B3,E1-E7,E9,E10,文件格式为Fixed ASCⅡ(.datbootstrap检验方法),文件名为“dc.dat
Lisrel操作
单击FILE,新建syntax窗口,输入:
TI
DA NI=14 NO=706 MA=CM AP=1 !表示增加一个辅助变量
RA FI=dc.dat
la
E1 E2 E3 E4 E5 E6 E7 E9 E10 B1 B2 B3 A1 A2
MO NY=12 NX=2 NK=1 NE=3 LX=FI LY=FI GA=FU,FI BE=FU,FI
LK
X
LE
M1 M2 Y
PA LY
2(1 0 0)
0 1 0
1 0 0
0 1 0
1 0 0
1 0 0
0 1 0
0 1 0
3(0 0 1)
PA LX
1
1
FR ga 3 1 ga 2 1 ga 1 1
FR be 3 1 be 3 2
CO PAR(1)=GA(1,1)*BE(3,1)-GA(2,1)*BE(3,2) !辅助变量,用来建立一新的待检验参数
PD
OU AD=OFF ND=4
点击保存,将文件命名为fz.pr2,点击运行按钮
结果输出部分BETA可以到b1b2两条路径的参数估计值及显著性
                  M1        M2          Y 
            --------  --------  --------
      M1      - -        - -        - - 
      M2      - -        - -        - - 
        Y    0.1915    -0.0894      - - 
            (0.0607)  (0.0421)
              3.1532    -2.1256
发现M1Y的预测作用不显著,M2Y的预测作用显著
GAMMA中可以到其他路径系数及显著性
                  X 
            --------
      M1    0.6296
            (0.0561)
            11.2243
      M2    -0.3534
            (0.0483)
            -7.3242
        Y    -0.0491
            (0.0597)
            -0.8223
ADDITIONAL PARAMETERS表示辅助变量a1*b1-a2*b2的估计值
PA(1)    !表示第一个辅助变量,本例只用了一个辅助变量
    --------
0.0890  !表示辅助变量的参数估计值
  (0.0412)  !表示p值,小于0.05说明显著,即两个中介变量M1M2的中介效应差异显著。
  2.1616
如果将辅助变量的程序设置为CO PAR(1)=GA(1,1)*BE(3,1) CO PAR(1)=GA(2,1)*BE(3,2)则可以分别计算出两个中介变量的特定中介效应大小a1*b1a2*b2。建议只设置一个辅助变量,因为我设置两个及两个以上辅助变量时程序无法运行
Mplus操作
mplus软件可以在一个程序中实现辅助变量与bootstrap法因此在下面bootstrap法中一起介绍。
2.bootstrap
Lisrel操作
Lisrel软件进行 bootstrap分析的步骤分为六步:
第一步,使用 Lisrel软件中的 prelis程序从原始样本中抽取至少1000 bootstrap样本具体操作是打开lisrel软件,单击file/import data in free format,选择上一步保存好的dc.dat文件单击打开,因为本例中共有14个变量,所以在number of中填14,单击ok,生成了一个fz.PSF的文件。然后点击statistics/bootstrapping按钮如图
Number of bootstrap 中输入1000sample fraction中输入文件名v然后点击utput option按钮出现如图对话框
moment matrix中选择covariance保存成协方差矩阵,单击OK,run。我们就会在源文件夹中发现mafile.COV这个新文件。
注意:在我用自己的数据进行到这一步时出现错误提示
W_A_R_N_I_N_G:  VAR12 has more than 15 categories and will be
                          treated as continuous. ERROR CODE 201.
个人分析可能是数据不适用的问题,所以没有再继续进行,但是按照文献所讲仍将下面的步骤列出。
第二步,设置辅助变量,采用固定方差法编写可以分析多个样本的 Lisrel程序(如果采用固定负荷法编写 Lisrel程序将得到中介效应的非标准化解)
程序写法见上文
第三步,运行 Lisrel程序分析1000bootstrap样本,得到研究者感兴趣的特定、总的和对比中介效应系数估计值各1000个,保存为prelis 数据文件(文件名.PSF
程序如下:
DA NI=14 NO=706 AP=4 RP=1000 ! AP=4表示增加4个辅助变量;RP=1000表示重复运行LISREL程序1000
CM =mafile.cov  ! 使用第一步产生的1000个协方差矩阵进行分析
MO NY=12 NX=2 NK=1 NE=3 LX=FI LY=FI GA=FU,FI BE=FU,FI
LK
X
LE
M1 M2 Y
PA LY
2(1 0 0)
0 1 0
1 0 0
0 1 0
1 0 0
1 0 0
0 1 0
0 1 0
3(0 0 1)
PA LX
1
1
FR ga 3 1 ga 2 1 ga 1 1
FR be 3 1 be 3 2
CO PAR(1)= GA(1 1)* BE(3 1) ! 特定中介效应
CO PAR(2)= GA(2 1)* BE(3 2) ! 特定中介效应
CO PAR(3)= PAR(1)+ PAR(2)  ! 总的中介效应
CO PAR(4)= PAR(1)-PAR(2)   ! 对比中介效应
OU AD=OFF ND=4 PV=bs.psf  !参数估计值保存在PRELIS文件bs.psf
这里设置了四个辅助变量
第四步,将 prelis 数据文件导出为EXCEL 文件(文件名.XLS)
第五步,在 EXCEL中将 1000个中介效应估计值从小到大进行排序,将1000 个中介效应估计值的均值作为中介效应估计值的标准化解;用第2.5百分位数和第 97.5 百分位数来估计bootstrap 的中介效应置信区间,如果置信区间不包括 0,说明中介效应显著,百分位 bootstrap 方法的中介效应检验完成
第六步,对第五步得到的中介效应置信区间进行校正,得到偏差校正的百分位 bootstrap方法的中介效应置信区间,如果置信区间不包括0,说明中介效应显著,偏差校正的百分位 bootstrap方法的中介效应检验完成。具体校正方法见温忠麟2012年的文章
Mplus操作
打开mplus软件单击新建按钮,然后在空白界面中输入:
TITLE:
DATA:
FILE IS dc.dat; !此处还是继续延用上文用spss保存好的数据文件dc.dat  
VARIABLE:
    NAMES =E1 E2 E3 E4 E5 E6 E7 E9 E10 B1 B2 B3 A1 A2;
ANALYSIS: bootstrap=1000 ! bootstrap法抽样1000
MODEL:
    X BY A1 A2; !两个变量作为潜变量X的指标,其余同理
    M1 BY E1 E2 E4 E6 E7;
    Y BY B1 B2 B3;
    M2 BY E3 E5 E9 E10;
    Y ON M1(b1); !表示将M1Y的路径系数命名为b1,其余同理。
    Y ON X(c);
    Y ON M2(b2);
    M1 ON X(a1);
    M2 ON X(a2);
 
MODEL INDIRECT:
    Y IND M1 X; !表示自变量为X,中介变量为M1,因变量为Y的中介效应,其余同理
Y IND M2 X;
MODEL CONSTRAINT:                     
  new (con);            !对比中介效应命名为con
  con=a1*b1-a2*b2;      !计算对比中介效应大小
OUTPUT:
    cinterval (bcbootstrap); standardized; !输出偏差校正的百分位bootstrap结果和标准化解
若要得到百分位bootstrap结果, 仅需将OUTPUT中的 cinterval (bcbootstrap)改为cinterval (bootstrap)即可
单击保存按钮,将文件与dc.dat保存于同一文件夹,命名为11.inp