这可以通过 GENLIN 程序来完成。这是我生成的一些随机数据以显示如何:
data list list /after oneChild value.
begin data.
0 1 12
0 1 12
0 1 11
0 1 13
0 1 11
1 1 10
1 1 9
1 1 8
1 1 9
1 1 7
0 0 16
0 0 16
0 0 18
0 0 15
0 0 17
1 0 6
1 0 6
1 0 5
1 0 5
1 0 4
end data.
dataset name exampleData WINDOW=front.
EXECUTE.
value labels after 0 'before' 1 'after'.
value labels oneChild 0 '>1 child' 1 '1 child'.
组的平均值(按顺序,在截断为整数之前)分别为 17、6、12 和 9。所以我们的 GENLIN 程序应该生成值 -11(>1 个孩子组中的前后差异)、-5(1 个孩子 - >1 个孩子的差异)和 8(前后差异的孩子差异) )。
为了绘制数据,您可以看到我们的预期:
* Chart Builder.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=after value oneChild MISSING=LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: after=col(source(s), name("after"), unit.category())
DATA: value=col(source(s), name("value"))
DATA: oneChild=col(source(s), name("oneChild"), unit.category())
GUIDE: axis(dim(2), label("value"))
GUIDE: legend(aesthetic(aesthetic.color.interior), label(""))
SCALE: linear(dim(2), include(0))
ELEMENT: line(position(smooth.linear(after*value)), color.interior(oneChild))
ELEMENT: point.dodge.symmetric(position(after*value), color.interior(oneChild))
END GPL.
现在,对于 GENLIN:
* Generalized Linear Models.
GENLIN value BY after oneChild (ORDER=DESCENDING)
/MODEL after oneChild after*oneChild INTERCEPT=YES
DISTRIBUTION=NORMAL LINK=IDENTITY
/CRITERIA SCALE=MLE COVB=MODEL PCONVERGE=1E-006(ABSOLUTE) SINGULAR=1E-012 ANALYSISTYPE=3(WALD)
CILEVEL=95 CITYPE=WALD LIKELIHOOD=FULL
/MISSING CLASSMISSING=EXCLUDE
/PRINT CPS DESCRIPTIVES MODELINFO FIT SUMMARY SOLUTION.
结果表显示了我们所期望的。
> 1 个儿童组在之后与之前相比降低了 12.3 - 10.1。这个 95% CI 包含 11 的“真实”值
>1 个孩子和 1 个孩子的前差是 5.7 - 3.5,包含 5 的真实值
差异之差为 9.6 - 6.4,包含 (17-6) - (12-9) = 8 的实际值
标准。错误、p 值和其他假设检验值也都会报告。希望有帮助。
编辑:这可以通过自己计算交互项并进行简单的线性回归来用不太“复杂”的语法来完成:
compute interaction = after*onechild.
execute.
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS CI(95) R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT value
/METHOD=ENTER after oneChild interaction.
请注意,生成的标准误差和置信区间实际上与以前的方法不同。我对 SPSS 的 GENLIN 和 REGRESSION 程序知之甚少,无法告诉你为什么会这样。在这个人为的示例中,您从数据中得出的结论将大致相同。在现实生活中,数据不可能这么干净,所以我不知道哪种方法“更好”。