ggstatsplot中ggwithinstats无法生成组间比较的p值及括号求助
问题解决:ggwithinstats无法显示组间比较p值及括号
- 核心问题:你的数据并非配对/重复测量设计,但误用了针对配对数据的
ggwithinstats函数。当前数据中每个id仅对应一次Evaluation(baseline和followup各40个独立样本),函数默认不会生成组间比较的括号与p值——它的设计目标是分析同一对象的前后两次测量数据。
方案1:修正为配对数据(若实验实际为配对设计)
如果你的研究是同一批患者在基线和随访时均完成评估,需重构数据让每个id对应两次评估记录:
generate_EDSS <- function(n) { vals <- seq(from = 0, to = 10, by = 0.5) sample(vals, size = n, replace = TRUE) } # 重构配对数据集:40个id,每个id包含baseline和followup两次评估 df <- tibble( id = rep(paste0("id", 1:40), times = 2), neda = factor(sample(c("No", "Yes"), size = 80, replace = TRUE)), Evaluation = rep(c("baseline", "followup"), each = 40), EDSS = generate_EDSS(80) ) ggwithinstats( data = df, x = Evaluation, y = EDSS, type = "nonparametric", pairwise.display = "all", p.adjust.method = "bonferroni", xlab = "Time of Evaluation", digits = 3, package = "ggsci", palette = "nrc_npg", violin.args = list(width = 0), pairwise.annotation = "p.value" # 强制显示配对比较的p值与括号 )
方案2:改用独立样本分析函数(若两组为独立对象)
如果baseline和followup是两组不同的研究对象,直接替换为针对独立样本的ggbetweenstats函数:
# 使用你原有的数据集即可 ggbetweenstats( data = df, x = Evaluation, y = EDSS, type = "nonparametric", pairwise.display = "all", p.adjust.method = "bonferroni", xlab = "Time of Evaluation", digits = 3, package = "ggsci", palette = "nrc_npg", violin.args = list(width = 0), pairwise.annotation = "p.value" # 强制显示组间比较的p值与括号 )
内容的提问来源于stack exchange,提问作者EGF1
相关产品推荐
相关产品推荐

