Dunn事后检验
在SPSS中执行Dunn事后检验(用于Kruskal-Wallis检验后的两两比较)需要借助非参数检验模块或手动计算,因为SPSS默认不直接提供Dunn检验的图形界面选项。以下是具体操作步骤:
方法一:通过SPSS非参数检验菜单(部分版本支持)
步骤1:执行Kruskal-Wallis检验
-
菜单路径:
分析(Analyze) → 非参数检验(Nonparametric Tests) → 独立样本(Independent Samples)
(或旧版路径:分析 → 非参数检验 → 旧对话框 → K个独立样本
) -
设置变量:
- 字段(Fields) 选项卡:将有序三分类因变量选入检验字段(Test Fields),分组变量选入组(Groups)。
- 设置(Settings) 选项卡:勾选自定义检验(Customize tests) → 选择Kruskal-Wallis检验。
- 点击运行(Run)。
步骤2:生成两两比较结果(若版本支持)
- 在输出窗口中,双击Kruskal-Wallis检验结果表,查看是否自动包含两两比较(Pairwise Comparisons)。
- 注意:较新版本SPSS(如27以上)可能在此处提供Dunn检验选项,若没有则需用方法二。
方法二:手动计算Dunn检验(通用方法)
步骤1:运行Kruskal-Wallis检验并保存秩次
-
菜单路径:
分析 → 非参数检验 → 旧对话框 → K个独立样本
-
变量设置:
- 将因变量选入检验变量列表(Test Variable List),分组变量选入分组变量(Grouping Variable),点击**定义范围(Define Range)**输入分组最小值/最大值(如1-3)。
- 勾选Kruskal-Wallis H,点击确定。
-
保存秩次(为后续计算准备):
- 返回数据视图,点击菜单:
转换(Transform) → 计算变量(Compute Variable)
。 - 输入新变量名(如
Ranks
),函数组选择全部(All),找到RANK
函数,将因变量放入计算表达式 → 确定。 - 生成的新变量
Ranks
即为每个观测值的秩次。
- 返回数据视图,点击菜单:
步骤2:计算Dunn检验的z值与p值
Dunn检验公式:
[ z = \frac{R_i - R_j}{\sqrt{\frac{N(N+1)}{12} \left( \frac{1}{n_i} + \frac{1}{n_j} \right)}} ]
其中 (R_i) 为第i组的平均秩,(N)为总样本量,(n_i)为第i组样本量。
-
计算各组平均秩:
分析 → 比较均值 → 均值(Means)
。- 因变量选
Ranks
,分组变量选原分组变量 → 点击选项(Options),勾选均值(Mean)和个案数(Number of cases) → 确定。 - 记录输出中每组的平均秩(Mean)和样本量(N)。
-
手动计算z值与p值:
- 使用Excel或SPSS语法计算每两组间的z值(公式如上)。
- 通过标准正态分布表或SPSS函数
CDF.NORMAL
转换z值为p值(双尾检验需乘以2)。
-
校正p值(Bonferroni法):
- 若进行k次两两比较,将原始p值乘以k(如3组比较时k=3)。
方法三:使用R或Python插件(推荐高效方案)
若SPSS版本不支持Dunn检验,可通过以下方式:
- 安装R插件:
- 菜单:
扩展(Extensions) → R Essentials
,安装后调用R函数dunnTest
(需安装R包FSA
)。
- 菜单:
- 语法示例:
BEGIN PROGRAM R. library(FSA) dunn.result <- dunnTest(因变量 ~ 分组变量, data=spssdata, method="bonferroni") print(dunn.result) END PROGRAM.
注意事项
- 多重比较校正:Dunn检验默认需校正p值(如Bonferroni、Holm法),SPSS手动计算时需自行调整。
- 结果解读:输出中关注校正后的p值,若
p<0.05
则认为两组差异显著。 - 替代方案:若操作复杂,可直接报告Kruskal-Wallis整体检验结果,并描述秩次分布趋势。
简化流程图
如有进一步问题,可提供SPSS版本和具体数据格式,我会补充针对性步骤!