在 R 中的 GGPUBR 中向箱线图添加统计测试

问题描述 投票:0回答:1

我有以下数据集(这只是数据集的缩减,但它具有较大数据集的所有特征)

df <- structure(list(Modality = c("IMU", "IMU", "IMU", "IMU", "EMG", 
"EMG", "EMG", "EMG", "EMG", "EMG", "MULTIMODAL", "MULTIMODAL", 
"MULTIMODAL", "MULTIMODAL", "MULTIMODAL", "MULTIMODAL"), Accuracy = c(0.890994094, 
0.932236205, 0.920874879, 0.808366656, 0.736169166, 0.727917473, 
0.76442499, 0.766358025, 0.672936004, 0.544758539, 0.922476135, 
0.958934517, 0.889652539, 0.878411911, 0.800769442, 0.9035499
), Precision = c(0.910120428, 0.935881939, 0.930419589, 0.858438788, 
0.783804275, 0.803642164, 0.867418091, 0.826140299, 0.651388637, 
0.683146414, 0.931054424, 0.960414109, 0.913705853, 0.892099619, 
0.827661119, 0.917972446), Recall = c(0.890994094, 0.932236205, 
0.920874879, 0.808366656, 0.736169166, 0.727917473, 0.76442499, 
0.766358025, 0.672936004, 0.544758539, 0.922476135, 0.958934517, 
0.889652539, 0.878411911, 0.800769442, 0.9035499), F1_Score = c(0.895340797, 
0.929767228, 0.923515392, 0.820549586, 0.740460186, 0.743306797, 
0.771715283, 0.778685153, 0.654271508, 0.562382109, 0.923856378, 
0.958423427, 0.894510388, 0.881315329, 0.804600327, 0.905468385
), Model = c("CNN", "CNN", "LSTM", "CNN-LSTM", "LSTM-CNN", "CNN", 
"LSTM", "LSTM-CNN", "CNN-LSTM", "CNN", "CNN", "LSTM", "CNN", 
"LSTM-CNN", "CNN-LSTM", "CNN-LSTM")), class = c("tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -16L))

我想做箱线图,在其中比较模式并按模型分组。我正在使用以下代码:

library(ggpubr)
library(dplyr)

p <-ggboxplot(df, x = "Model", y = "Accuracy", color = "Modality", 
          palette = "jco", 
          add = "jitter", ylab = "Accuracy",
          width = 0.7,
          lwd = 1.35,
          xlab = "Model", legend = "right") +
  
  ggtitle("Boxplot of Accuracy by Model and Modality") +
  theme_minimal()
anyNA(df)

剧情是正确的。我为每个模型获得了 3 个箱线图,其中比较了模态。现在我想添加同一模型内模态之间的统计比较。为此,我添加以下代码行:

p + stat_compare_means(comparisons = list(c("EMG", "IMU")), method = "wilcox.test", label = "p.signif")

但没有出现统计检验。问题是我无法在同一模型中添加关于模态的统计测试。

r boxplot ggpubr
1个回答
0
投票

我认为问题与箱线图的布局有关。

?stat_compare_means
帮助文件描述了
comparisons
参数的预期输入,如下所示:

长度为 2 的向量列表。向量中的条目是 x 轴上 2 个值的名称或 2 个整数 对应于感兴趣组的索引,进行比较。

因此,听起来您想要比较的组需要显示在 x 轴上,但您的原始绘图在图例中表示了模态。

此代码翻转 Model 和 Mode 的位置。通过此调整,兴趣比较将按预期显示。

p <-ggboxplot(df, x = "Modality", y = "Accuracy", color = "Model", 
              palette = "jco", 
              add = "jitter", ylab = "Accuracy",
              width = 0.7,
              lwd = 1.35,
              xlab = "Modality", legend = "right") +
  
  ggtitle("Boxplot of Accuracy by Model and Modality") +
  theme_minimal()+ 
  stat_compare_means(comparisons = list(c("EMG", "IMU")), method = "wilcox.test", label = "p.signif")
© www.soinside.com 2019 - 2024. All rights reserved.