SPSS 协方差分析 (ANCOVA) - 初学者教程
作者: Ruben Geert van den Berg, 发表于 方差分析 (ANOVA) & 统计 A-Z
- 协方差分析 (ANCOVA) - 零假设
- 协方差分析 (ANCOVA) 假设
- SPSS 协方差分析 (ANCOVA) 对话框
- SPSS 协方差分析 (ANCOVA) 输出 - 主体间效应
- SPSS 协方差分析 (ANCOVA) 输出 - 调整均值
- 协方差分析 (ANCOVA) - APA 格式报告
一家制药公司开发了一种治疗高血压的新药。他们将新药与一种老药、安慰剂和一个对照组进行了测试。数据(部分如下所示)位于 blood-pressure.sav 文件中。
该公司想知道他们的新药是否优于其他治疗方法:服用新药后,这些参与者的血压是否低于其他人?由于治疗方法是一个名义变量,因此可以使用简单的 方差分析 (ANOVA) 来回答这个问题。
现在,已知治疗后血压与治疗前血压密切相关。因此,也应该考虑这个变量。治疗前和治疗后血压之间的关系可以用简单的线性回归来检验,因为这两个变量都是定量的。
我们现在想在控制治疗前血压的情况下,检查药物的效果。我们可以通过将前测作为协变量 (covariate) 添加到我们的方差分析 (ANOVA) 中来实现。这就变成了 协方差分析 (ANCOVA) ——是 analysis of covariance(协方差分析)的缩写。这种分析基本上将方差分析 (ANOVA) 与回归分析相结合。
令人惊讶的是,协方差分析 (ANCOVA) 实际上 不 涉及 协方差 - 快速入门 中讨论的协方差。
协方差分析 (ANCOVA) - 零假设
通常,协方差分析 (ANCOVA) 试图通过拒绝以下零假设来证明某种效应:在控制 1 个或多个协变量 (covariates) 时,所有总体均值都相等。对于我们的例子,这意味着“当控制治疗前血压时,所有治疗方法的平均治疗后血压都相等”。基本的分析非常简单,但确实需要相当多的假设。让我们先来了解一下这些假设。
协方差分析 (ANCOVA) 假设
- 独立观察 (independent observations);
- 正态性 (normality):因变量必须在每个子总体中 呈正态分布。这仅适用于 n < 20 左右的小样本;
- 同质性 (homogeneity):因变量的方差在所有子总体中必须相等。这仅适用于样本量明显不相等的情况;
- 回归斜率的同质性 (homogeneity of regression slopes):协变量 (covariate) 的 b 系数在所有子总体中必须相等。
- 线性 (linearity):协变量 (covariate) 和因变量之间的关系必须是线性的。
考虑到这些,我们整个分析的一个好的策略是:
- 首先运行一些基本的数据检查:直方图和描述性统计可以快速了解频率分布和样本量。这告诉我们是否首先需要假设 2 和 3。
- 通过分别对我们的治疗组运行回归分析,看看假设 4 和 5 是否成立;
- 运行实际的协方差分析 (ANCOVA),看看假设 3(如果必要)是否成立。
数据检查 I - 直方图
首先,让我们看看我们的血压变量是否首先是合理的。我们将通过运行下面的 语法 (syntax) 来检查它们的直方图。如果您更喜欢使用 SPSS 的菜单,请参阅 在 SPSS 中创建直方图。
***快速检查 I - 因变量和协变量的频率分布。
**
frequencies predias postdias
/format notable
/histogram.
结果
结论:我们的血压测量的频率分布看起来是合理的:我们没有看到任何非常低或高的值。两者都没有显示出大量的 偏度 (skewness) 或 峰度 (kurtosis),并且它们看起来都相当 呈正态分布。
数据检查 II - 描述性统计
接下来,让我们研究一些描述性统计,尤其是样本量。我们将创建并检查一个表格,其中包含
- 样本量 (sample sizes),
- 均值 (means) 和
- 标准差 (standard deviations)
对于我们治疗组的因变量和协变量 (covariate)。我们可以从 A nalyze C ompare Means
M eans 或 -更快地- 直接从语法 (syntax) 执行此操作。
***快速检查 II - 按治疗组划分的样本量、描述性统计和方差分析 (ANOVA)。
**
means predias postdias by treatment
/statistics anova.
结果
我们输出的主要 结论 是:
- 所有治疗组都具有至少 n = 20 的 合理的样本量 (reasonable samples sizes)。这意味着我们无需担心正态性假设。否则,我们可以使用 Shapiro-Wilk 正态性检验 或 Kolmogorov-Smirnov 检验,但我们宁愿避免这些。
- 治疗组具有明显 不相等的样本量 (unequal sample sizes)。这意味着我们的协方差分析 (ANCOVA) 需要满足方差同质性假设。
- 方差分析 (ANOVA) 结果(此处未显示)告诉我们,治疗后均值没有 统计学上的显著差异 (statistically significantly),F(3,116) = 1.619,p = 0.189。但是,此检验尚未包括我们的协变量 (covariate)——治疗前血压。
我们的基本数据检查就到此为止。我们现在将研究回归结果,然后继续进行实际的协方差分析 (ANCOVA)。
治疗组的单独回归线
现在让我们看看我们的回归斜率在组之间是否相等——协方差分析 (ANCOVA) 的假设之一。我们将首先在散点图中将其可视化,如下所示。
单击 P aste 会生成以下语法 (syntax)。
***治疗组的回归线的散点图。
**
GRAPH
/SCATTERPLOT(BIVAR)=predias WITH postdias BY treatment
/MISSING=LISTWISE.GRAPH
/TITLE='舒张压按治疗方法划分'。
***双击生成的图表,然后单击“在子组中添加拟合线”图标。**
SPSS 现在创建一个散点图,其中不同的治疗组使用不同的颜色。双击它会在“图表编辑器 (Chart Editor)”窗口中打开它。在这里,我们单击“在子组中添加拟合线 (Add Fit Lines at Subgroups)”图标,如下所示。
结果
从此图表得出的主要结论是,回归线 (regression lines) 几乎完全平行:我们的数据似乎满足协方差分析 (ANCOVA) 要求的回归斜率同质性 (homogeneity of regression slopes) 假设。
此外,我们没有看到任何偏离线性 (linearity) 的情况:协方差分析 (ANCOVA) 假设似乎也得到了满足。为了更彻底地检查线性 (linearity),我们可以使用残差图运行实际的回归。我们在 SPSS 调节回归教程 中就是这样做的。
现在我们检查了一些假设,我们将运行两次实际的协方差分析 (ANCOVA):
- 第一次运行仅检查回归同质性 (homogeneity of regression) 斜率假设。如果成立,则不应存在任何协变量 (covariate) 与治疗的交互作用效应。
- 第二次运行测试我们的零假设 (null hypothesis):在控制我们的协变量 (covariate) 时,所有总体均值是否相等?
SPSS 协方差分析 (ANCOVA) 对话框
首先,导航到 A nalyze G eneral Linear Model
U nivariate 并填写对话框,如下所示。
单击 P aste 会生成以下语法 (syntax)。
***协方差分析 (ANCOVA) I - 仅测试治疗与协变量的交互作用。
**
UNIANOVA postdias BY treatment WITH predias
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/EMMEANS=TABLES(treatment) WITH(predias=MEAN) COMPARE ADJ(SIDAK)
/PRINT ETASQ HOMOGENEITY
/CRITERIA=ALPHA(.05)
/DESIGN=predias treatment predias*treatment. /* predias*treatment 将交互作用效应添加到模型中。
结果
首先请注意,我们的协变量 (covariate) 与治疗的交互作用在统计上根本不显著:F(3,112) = 0.11,p = 0.96。这意味着协变量 (covariate) 的回归斜率在治疗之间没有差异:回归斜率同质性假设似乎几乎完全成立。
对于这些数据,这并不令人感到意外:我们已经看到,不同治疗组的回归线大致平行。我们的第一个协方差分析 (ANCOVA) 基本上是一种更正式的方式来表达相同的观点。
SPSS 协方差分析 (ANCOVA) II - 主效应
我们现在只需像之前一样重新运行我们的协方差分析 (ANCOVA)。但是,这一次,我们将删除协变量 (covariate) 与治疗的交互作用效应。这样做会导致如下所示的语法 (syntax)。
***协方差分析 (ANCOVA) II - 报告这些结果(没有治疗与协变量的交互作用)。
**
UNIANOVA postdias BY treatment WITH predias
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/EMMEANS=TABLES(treatment) WITH(predias=MEAN) COMPARE ADJ(SIDAK)
/PRINT ETASQ HOMOGENEITY
/CRITERIA=ALPHA(.05)
/DESIGN=predias treatment. /* 仅测试 2 个主要影响。
SPSS 协方差分析 (ANCOVA) 输出 I - Levene 检验
由于我们的治疗组具有明显不相等的样本量,因此我们的数据需要满足方差同质性 (homogeneity of variance) 假设。这就是为什么我们在分析中包含 Levene 检验 的原因。其结果如下所示。
结论 (Conclusion):我们不拒绝误差方差相等的零假设,F(3,116) = 0.56,p = 0.64。我们的数据满足方差同质性 (homogeneity of variances) 假设。这意味着我们可以放心地报告其他结果。
SPSS 协方差分析 (ANCOVA) 输出 - 主体间效应
结论 (Conclusion):我们拒绝了我们的治疗导致平均血压相等的零假设,F(3,115) = 8.19,p = 0.000。重要的是,治疗的效应大小介于中等到较大之间:偏 η 平方 (partial eta squared)(写为 **** η 2 )= 0.176。
显然,毕竟有些治疗方法比其他治疗方法表现更好。有趣的是,在将我们的前测作为协变量 (covariate) 包括在内之前,这种治疗效果在统计上并不显著。
那么哪些治疗方法表现更好或更差?为了回答这个问题,我们首先检查我们的估计边际均值表。
SPSS 协方差分析 (ANCOVA) 输出 - 调整均值
协变量 (covariates) 的一个作用是根据相应的前测均值之间的任何差异来调整后测均值。这些调整后的均值及其标准误差在下面的估计边际均值 (Estimated Marginal Means) 表中找到。
这些调整后的均值表明,所有治疗方法都导致平均血压低于“无”。在旧药中观察到最低的平均血压。那么 哪些 均值差异在统计上显著?这由 事后检验 (post hoc tests) 回答,这些检验在成对比较 (Pairwise Comparisons) 表中找到(此处未显示)。此表显示所有 3 种治疗方法与对照组不同,但其他差异均无统计学意义。有关事后检验的更详细讨论,请参阅 SPSS - 带有事后检验的单向方差分析 (ANOVA) 示例。
协方差分析 (ANCOVA) - APA 格式报告
为了报告我们的协方差分析 (ANCOVA),我们将首先提供
- 我们的协变量 (covariate) 的描述性统计 (descriptive statistics);
- 我们的因变量(未调整);
- 我们的因变量(针对协变量 (covariate) 进行调整)。
关于此表,有趣的是,通过包含我们的协变量 (covariate),后测均值几乎没有调整。但是,协变量 (covariate) 大大降低了这些均值的标准误差。这就是为什么只有在包含协变量 (covariate) 时,均值差异才在统计上显著。调整后的描述性统计从最终的协方差分析 (ANCOVA) 结果中获得。未调整的描述性统计可以从以下语法 (syntax) 创建。
***APA 报告表的未调整描述性统计。
**
means predias postdias by treatment
/cells count mean semean.
确切的 APA 表最好通过将这些统计数据复制粘贴到 Excel 或 Googlesheets 中来创建。
其次,我们将为最终模型和误差中包含的效应提供一个标准的 方差分析表 (ANOVA table)。
该表是通过将 SPSS 输出表复制粘贴到 Excel 并删除冗余行来构造的。