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

使用R执行Kruskal-Wallis与Dunn检验结果与Prism不符及报错问题

R复现Prism Kruskal-Wallis & Dunn检验问题排查与解决

核心问题

  • Prism结果显示3个分面中对照组与各处理组均存在显著差异,但R复现结果不符
  • 遇到两类报错:
    • stat_signif()报错:所有观测值在同一组
    • 自定义KW函数后summarise()报错:参数y缺失,无默认值

报错1:stat_signif()计算失败

原因

分组变量的子集(某分面)中仅存在一组有效数据,或因子水平定义错误导致分组识别失败。

解决步骤

  1. 验证分组数据完整性
    用以下代码检查每个分面下的分组样本量,确保每个分面都有对照组和处理组的有效数据:
    library(dplyr)
    your_data %>%
      group_by(facet_var, treatment_var) %>%
      tally()
    
  2. 明确因子水平
    手动指定处理组的因子顺序,避免自动排序导致分组混乱:
    your_data$treatment_var <- factor(your_data$treatment_var, 
                                      levels = c("Control", "Treatment1", "Treatment2"))
    
  3. 精准设置stat_signif()参数
    加载dunn.test包,明确指定对比组和校正方法(匹配Prism的Bonferroni校正):
    library(ggplot2)
    library(ggsignif)
    library(dunn.test)
    
    ggplot(your_data, aes(x = treatment_var, y = response_var)) +
      geom_boxplot() +
      facet_wrap(~facet_var) +
      stat_signif(comparisons = list(c("Control", "Treatment1"), 
                                     c("Control", "Treatment2")),
                  test = "dunn.test",
                  method = "bonferroni")
    

报错2:自定义KW函数的summarise()报错

原因

自定义函数未明确绑定响应变量,或summarise()调用时未正确传递变量参数。

解决步骤

  1. 重构自定义KW函数
    明确指定函数参数,确保能正确接收数据、响应变量和分组变量:
    kw_group_test <- function(data, y_col, group_col) {
      kruskal.test(reformulate(group_col, y_col), data = data)
    }
    
  2. 正确调用函数
    使用cur_data()传递当前分组数据,明确指定变量名:
    your_data %>%
      group_by(facet_var) %>%
      summarise(kw_result = list(kw_group_test(cur_data(), "response_var", "treatment_var")))
    

匹配Prism结果的关键细节

  1. 多重校正一致性
    Prism的Dunn检验默认使用Bonferroni校正,R中需手动指定method = "bonferroni",避免默认校正方法差异导致结果不同。
  2. 数据一致性验证
    检查R导入的数据与Prism使用的数据是否完全一致:
    • 确认无缺失值、行错位
    • 确认响应变量为数值型,分组变量为因子型
  3. 分组逻辑对齐
    确保R中按分面分组后执行检验的逻辑,与Prism的分面分析逻辑完全一致(比如是否每个分面独立做检验)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:02:37