SPSS卡方检验与成对Z检验
作者:Ruben Geert van den Berg 发表于 卡方检验
大多数数据分析师都熟悉用于方差分析(ANOVA)的事后检验。但奇怪的是,卡方独立性检验的事后检验并没有被广泛使用。本教程将引导你了解在SPSS中获取和解释卡方独立性检验的事后检验的两种方法。
- 选项 1 - CROSSTABS (交叉表)
- 带有成对Z检验的CROSSTABS输出
- 选项 2 - Custom Tables (定制表)
- 带有成对Z检验的Custom Tables输出
- 这些Z检验可以被重复验证吗?
示例数据
我们询问了N = 300名受访者的教育水平和婚姻状况。由此获得的数据位于edu-marit.sav文件中。本教程中的所有示例都使用此数据文件。
卡方独立性检验
首先,让我们看看教育水平和婚姻状况是否相关:我们将使用下面的语法运行一个卡方独立性检验。这将创建一个列联表,显示频率和列百分比。
***Basic crosstabs with chi-square independence test.
**
crosstabs marit by educ
/cells count column
/statistics chisq.
首先,让我们看看下面的实际检验结果。
首先,我们拒绝独立性的零假设:教育水平和婚姻状况是相关的,χ² (12) = 23.57,p = 0.023。请注意,SPSS错误地将这个单尾显著性报告为双尾显著性。但无论如何,我们真正想知道的是 哪些 百分比彼此之间存在显著差异?
选项 1 - CROSSTABS(交叉表)
我们将通过稍微修改我们的语法来回答这个问题:在/CELLS
子命令中添加BPROP
(“Bonferroni proportions”的缩写)即可。
***Crosstabs with pairwise z-tests.
**
crosstabs marit by educ
/cells count column **bprop**. /*bprop = Bonferroni adjusted z-tests for column proportions.
运行这个简单的语法会产生如下表所示的结果。
带有成对Z检验的CROSSTABS输出
首先,仔细看看表格脚注:“每个下标字母表示教育水平类别的一个子集,其列比例在0.05水平上彼此之间没有显著差异。” 这些结论是基于独立比例的Z检验。这些结论也适用于表格中显示的百分比:在每一行中,使用Z检验比较每对可能的百分比。如果它们没有差异,它们会得到一个相似的下标。反之,在每一行中,_不_共享下标的百分比是显著不同的。例如,从未结婚的中学学历的人的百分比为46.2%,其频率n = 18被标记为“a”。对于拥有硕士学位的人,16.7%的人从未结婚,其频率为9,_没有_被标记为“a”。这意味着46.2%与16.7%有显著差异。
拥有本科学历且从未结婚的人的频率(n = 21或25.0%)被标记为“a”和“b”。它与标记为“a”、“b”或两者的任何单元格没有显著差异。这些单元格都是该表行中的单元格。
现在,对每一行中的检验数量应用Bonferroni校正。这意味着对于\(k\)列, \[P_{bonf} = P\cdot\frac{k(k - 1)}{2}\] 其中
- \(P_{bonf}\) 表示 Bonferroni 校正后的 p 值,并且
- \(P\) 表示“正常”(未校正)的 p 值。
好的,现在我们的表有 5 个教育水平作为列,所以 \[P_{bonf} = P\cdot\frac{5(5 - 1)}{2} = P \cdot 10\] 这意味着每个 p 值乘以 10,然后才与 alpha = 0.05 进行比较。或者 - 反过来 - 只有产生未校正的 p < 0.005 的 Z 检验才会被标记为“显著”。这适用于此表中报告的所有检验。我稍后会验证这些说法。
选项 2 - Custom Tables(定制表)
获取卡方检验的“事后检验”的第二种选择是“定制表”。它们位于“_A_nalyze” (分析) “_T_ables”(表格)
“_C_ustom Tables”(定制表) 下,但前提是你拥有“定制表”的许可证。下图展示了一些基本步骤。
你可能想要为教育程度选择频率和列百分比。
我们建议你也为教育程度添加总计。
接下来,我们的 Z 检验可以在“Test Statistics”(检验统计)选项卡中找到,如下所示。
完成这些步骤会产生以下语法。
***Contingency table with pairwise z-tests via CTABLES.
**
CTABLES
/VLABELS VARIABLES=marit educ DISPLAY=DEFAULT
/TABLE marit BY educ [COUNT 'N' F40.0, COLPCT.COUNT '%' PCT40.1]
/CATEGORIES VARIABLES=marit ORDER=A KEY=VALUE EMPTY=INCLUDE TOTAL=YES POSITION=AFTER
/CATEGORIES VARIABLES=educ ORDER=A KEY=VALUE EMPTY=INCLUDE
/CRITERIA CILEVEL=95
/COMPARETEST TYPE=PROP ALPHA=0.05 ADJUST=BONFERRONI ORIGIN=COLUMN INCLUDEMRSETS=YES
CATEGORIES=ALLVISIBLE MERGE=YES STYLE=SIMPLE SHOWSIG=NO.
带有成对Z检验的Custom Tables输出
让我们首先尝试理解脚注的内容:“结果基于双侧检验。对于每对显著的组别,列比例较小的类别的键出现在列比例较大的类别中。大写字母(A、B、C)的显著性水平:0.05。检验针对每个最内层子表的一行中的所有成对比较进行了调整,使用 Bonferroni 校正。”
现在,对于正常的双向列联表,“最内层子表” 只是整个表。在每一行中,使用 Z 检验比较每对可能的列比例。如果 2 个比例差异显著,则较高的比例会用较低的比例的列字母标记。有点令人困惑的是,SPSS 标记的是频率而不是百分比。
在第一行(从未结婚)中,列 A 中的 D 表示这两个百分比差异显著:对于只完成了中学的那些人(46.2%,来自 n = 39),从未结婚的人的百分比明显高于完成了硕士学位的人(16.7%,来自 n = 54)。
同样,所有 Z 检验都使用 α = 0.05,前提是 Bonferroni 校正了其 p 值,校正因子是表中 列 的数量。对于我们的示例表,其中包含 5 列,每个 p 值都乘以 \(0.5(5 - 1) = 10\),然后再评估它是否小于所选的 alpha 水平 0.05。
这些Z检验可以被重复验证吗?
可以。可以重复验证。
Custom Tables 具有一个选项,可以创建一个包含所有成对 Z 检验的确切 p 值的表。它位于“Test Statistics”(检验统计)选项卡中。选择它会生成以下语法。
***Contingency table with Bonferroni corrected z-tests (exact p-values) in separate table.
**
CTABLES
/VLABELS VARIABLES=marit educ DISPLAY=DEFAULT
/TABLE marit BY educ [COUNT 'N' F40.0, COLPCT.COUNT '%' PCT40.1]
/CATEGORIES VARIABLES=marit ORDER=A KEY=VALUE EMPTY=INCLUDE TOTAL=YES POSITION=AFTER
/CATEGORIES VARIABLES=educ ORDER=A KEY=VALUE EMPTY=INCLUDE
/CRITERIA CILEVEL=95
/COMPARETEST TYPE=PROP ALPHA=0.05 ADJUST=BONFERRONI ORIGIN=COLUMN INCLUDEMRSETS=YES
CATEGORIES=ALLVISIBLE MERGE=NO STYLE=SIMPLE SHOWSIG=YES.
Z检验的精确P值
对于第一行(从未结婚),SPSS 声称比较列百分比 A 和 D 的 Bonferroni 校正后的 p 值为 p = 0.020。对于我们的示例表,这意味着_未校正_ 的 p 值为 p = 0.0020。 我们使用 Excel Z 检验计算器重复了此结果。考虑到 Bonferroni 校正,它得出了与 SPSS 完全相同的 p 值。
SPSS 报告的所有其他 p 值也已通过我们的 Excel 计算器 完全 重复。
我希望本教程对获取和理解列联表的成对 Z 检验有所帮助。如果你有任何问题或反馈,请在下面给我们留言。
感谢你的阅读!