PAYATHON 2026

SPSS 中如何检验不同组间因子水平下的组间×组内交互对比?

数据阿明

结论

可以用 LMATRIX 与 MMATRIX 联合检验各个 strs 水平下的时间×gen 交互。原代码中的 /MMATRIX = ALL 1 -1 对应 t1 - t2,方向符合这一目标。仅凭现有语法,不能认定 GLM 的结果有误,也不能确定两者差异的唯一原因。

应先核对比较的输出是否对应同一假设,再检查模型参数化、因子水平顺序和误差项。题目没有提供具体输出数值;以下分析基于语法,未实际运行所链接的数据。

先明确要检验的假设

令 μ(t,g,s) 表示时间为 t、gen 为 g、strs 为 s 时的总体均值。对每个 s = 1, 2, 3,目标是检验:

Δ_s = [μ(t1,1,s) - μ(t2,1,s)]
    - [μ(t1,2,s) - μ(t2,2,s)]

H0: Δ_s = 0

这相当于比较:在固定 strs 水平后,两个 gen 组的时间变化量是否相同。

LMATRIX 指定组间参数的对比,MMATRIX 指定因变量的线性组合,两者共同构成 L B M = 0。在重复测量模型中,如果只指定 LMATRIX,默认的 M 矩阵对应跨重复测量的平均,不能直接据此解释时间交互。原语法已经显式指定时间差值,应保留这一设置。IBM 矩阵子命令说明

原 GLM 语法需要怎样理解?

原语法使用:

/DESIGN = gen*strs

在六种 gen×strs 组合都存在的前提下,这些组合的指示变量可以表示六个单元格均值。因此,不能仅因为没有单独列出 gen 和 strs,就断言模型遗漏了它们能够表达的均值差异。

如果 gen*strs 参数的排列顺序为:

(gen=1,strs=1), (gen=1,strs=2), (gen=1,strs=3),
(gen=2,strs=1), (gen=2,strs=2), (gen=2,strs=3)

那么 1 0 0 -1 0 0 就是在 strs=1 时比较两个 gen 组。配合 MMATRIX = ALL 1 -1,它对应上面的 Δ_1。

需要注意,LMATRIX 的系数对应设计矩阵中的参数,不能当作脱离模型的通用均值权重。修改 /DESIGN 后,需要重新确认原来的系数是否适用。

使用完整因子模型显式指定对比

如果采用常见的 gen strs gen*strs 参数化,可以使用以下语法。前提是实际因子水平顺序与上述顺序一致,六个单元格均有有效观测,且三个对比均可估计。

GLM t1 t2 BY gen strs
 /WSFACTOR = t 2
 /METHOD = SSTYPE(3)
 /MMATRIX = 't1 minus t2' t1 1 t2 -1
 /LMATRIX = 'Time x Gen at Strs1'
   gen 1 -1
   gen*strs 1 0 0 -1 0 0
 /LMATRIX = 'Time x Gen at Strs2'
   gen 1 -1
   gen*strs 0 1 0 0 -1 0
 /LMATRIX = 'Time x Gen at Strs3'
   gen 1 -1
   gen*strs 0 0 1 0 0 -1
 /WSDESIGN = t
 /DESIGN = gen strs gen*strs
 /PRINT = DESCRIPTIVE PARAMETER ETASQ TEST(LMATRIX MMATRIX).

每个 LMATRIX 都包含 gen 1 -1,因为在完整因子模型中,固定某个 strs 水平后的组间差异同时涉及 gen 主效应参数和相应的交互参数。如果增加主效应模型项后,仍只针对交互参数设置对比,所得假设可能不可估计,也可能不符合目标。

未在 LMATRIX 中列出的模型项,其对应系数按 0 处理,因此这里无需另写 intercept 0 或 strs 0 0 0。可以通过打印的参数表和 L、M 矩阵确认系数位置。IBM LMATRIX 说明

怎样与 MANOVA 的结果对应?

原 MANOVA 语法中:

/design = gen within strs(1), gen within strs(2), gen within strs(3).

这些项指定 gen 在各个 strs 水平下的简单效应。结合重复测量设计,应找到这些项与 time 对应的组内交互检验,再与 GLM 结果比较。跨时间平均的 gen 简单效应不能直接与 GLM 的时间差值对比比较。

此外,strs(1) 中的 1 表示因子水平的顺序位置,不一定等于原始数据中的编码值。即使题目声明范围为 strs(1,3),也应核对实际参与分析的水平及顺序。IBM 简单效应说明

原代码中的 /ERROR = WITHIN 指定以单元格内误差作为检验误差来源。这里的 WITHIN 不能直接理解成“时间因子的误差”,也不能仅凭单词相同就判断两个输出使用了相同的分母。IBM ERROR 说明

按差异类型排查

  1. 先比较 F、自由度和 p 值。不要仅凭平方和不同判断检验不同。例如,使用 t1-t2 与使用 (t1-t2)/√2 时,对比估计和平方和的尺度会改变;在其他条件相同且检验零假设时,F 和 p 值应保持一致。
  2. 若 F 或 p 值不同,检查分析样本和误差项。核对缺失值、筛选、权重、Split File、实际因子编码,以及是否存在空单元格;再比较两份输出的误差自由度和均方。
  3. 查看不可估计提示及实际矩阵。尤其是在更改 /DESIGN 后,确认 L 矩阵仍对应固定 strs 下的两个组之差,M 矩阵仍对应 t1-t2。

还可以创建差值变量作为辅助核对:

COMPUTE delta = t1 - t2.
EXECUTE.

在相同完整观测样本上,对 delta 拟合完整的 gen×strs 组间模型,再检验各个 strs 水平下的 gen 简单效应。对于当前只有两个时间点、使用相同固定效应和合并单元格内误差的分析,这与目标时间交互对比在数学上对应。

三个 strs 水平的检验是三个分别的假设。若要判断时间×gen 交互本身是否随 strs 改变,需要检验三阶交互;不能因为一处显著、另一处不显著,就认定两处交互存在显著差异。如果三个检验作为同一组推断报告,也应说明多重检验的处理方式。

备注:内容仅供参考。