You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中为Wilcoxon符号秩检验选择合适的事后检验方法

配对Wilcoxon符号秩检验的事后检验选择与代码问题解决

核心问题说明

你已用配对Wilcoxon检验分析time分组的配对数据,现在需要匹配合适的事后检验方法,同时你的Bonferroni校正代码报错,还不确定Dunn检验是否适用。

方法适配性解析

  • Bonferroni校正:是适配配对Wilcoxon事后检验的方法,但你代码报错的原因是wilcox.test()本身没有p.adjust.method参数,不能直接在该函数内指定校正方法。
  • Dunn检验:仅适用于独立样本的秩和检验事后比较,完全不适合配对数据场景,不要使用。

正确实现方式

手动批量检验+Bonferroni校正

假设Category_time是多时间点分组(如time1、time2、time3),可按以下步骤操作:

library(tidyverse)
# 生成所有两两配对的分组组合
comparisons <- combn(unique(data$Category_time), 2, simplify = FALSE)

# 批量执行配对Wilcoxon检验并校正p值
posthoc_results <- map_dfr(comparisons, function(pair) {
  subset_data <- filter(data, Category_time %in% pair)
  test_result <- wilcox.test(score ~ Category_time, data = subset_data, paired = TRUE)
  tibble(
    group1 = pair[1],
    group2 = pair[2],
    statistic = test_result$statistic,
    raw_p = test_result$p.value,
    adjusted_p = p.adjust(test_result$p.value, method = "bonferroni", n = length(comparisons))
  )
})

print(posthoc_results)

用rstatix包简化操作

rstatix包专门支持统计检验的事后分析,内置了配对Wilcoxon的多重比较功能:

library(rstatix)
# 直接执行配对Wilcoxon事后检验+Bonferroni校正
posthoc_rstatix <- data %>%
  wilcox_test(score ~ Category_time, paired = TRUE, p.adjust.method = "bonferroni")

print(posthoc_rstatix)

关键注意事项

  • 确保数据严格配对:每个个体在Category_time的所有水平下都有对应的score值,否则配对检验会报错。
  • 除Bonferroni外,也可选择holm校正(比Bonferroni更宽松,统计效力更高),只需将校正方法参数改为"holm"即可。

内容的提问来源于stack exchange,提问作者denise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 16:34:55