【问题标题】:Wilcoxon matrix on all factors of a column列的所有因子上的 Wilcoxon 矩阵
【发布时间】:2021-02-20 15:19:13
【问题描述】:

我有一个包含 VMethods 列的数据框,至少有 5 个级别。 我想在 VMethod 的不同因子之间生成Wilcoxon 和 Kruskal 矩阵。

数据框示例:

structure(list(error = c(3.6306, 5.6414, 5.2754, 4.9065, 4.5347, 
3.4018, 6.0769, 5.7142, 2.7866, 4.0094, 5.4953, 4.7581, 5.4953, 
5.2754, 5.2754, 5.5684, 6.0769, 4.6093, 6.7226, 4.5347, 4.2352, 
4.0848, 5.4221, 4.6093, 6.0046, 5.4953, 5.787, 6.365, 5.4221, 
4.0848, 5.4221, 5.5684, 6.2211, 4.8324, 4.3103, 6.2211, 3.8582, 
6.0769, 5.2018, 6.2931, 6.0769, 5.7142, 5.6414, 4.1601, 5.2754, 
5.7142, 5.2018, 3.8582, 4.0848, 4.9065, 3.4018, 5.8596, 4.6838, 
5.6414, 4.0848, 6.2211, 5.6414, 5.0544, 3.8582, 5.8596, 5.3488, 
5.1282, 3.9339, 4.0848, 4.5347, 5.5684, 3.9339, 4.9805, 4.0848, 
3.8582, 5.5684, 5.787, 6.1491, 3.6306, 5.787, 5.2018, 6.0046, 
3.7066, 5.787, 5.6414, 6.5084, 5.4953, 5.2754, 5.787, 5.7142, 
5.1282, 6.5084, 3.9339, 6.2211, 2.7091, 4.9805, 4.0094, 5.5684, 
5.2754, 5.9322, 5.3488, 4.2352, 4.1601, 5.8596, 3.172, 5.7142, 
4.2352, 4.9805, 2.8639, 5.5684, 3.5545, 3.0952, 5.4953, 3.7825, 
5.0544, 4.9805, 3.6306, 3.7825, 4.8324, 3.8582, 5.2754, 4.0094, 
3.4782, 2.7091, 4.3103, 4.1601, 4.6838, 3.172, 3.4782, 4.6093, 
2.8639, 3.3254, 3.0952, 2.6315, 5.1282, 5.6414, 4.46, 4.6838, 
3.4782, 4.3852, 4.9065, 4.1601, 3.6306, 3.6306, 3.172, 5.5684, 
5.787, 4.46, 4.3852, 5.4221, 4.3852, 3.3254, 4.1601, 5.0544, 
3.0182, 4.6838, 3.9339, 4.9065, 3.6306, 3.4782, 5.1282, 5.4221, 
3.0952, 3.3254, 4.6838, 3.6306, 4.3852, 3.7066, 2.7866, 2.2417, 
4.0848, 2.5538, 2.8639, 4.1601, 2.2417, 3.0952, 3.2488, 3.7825, 
3.4782, 4.2352, 5.4953, 5.1282, 3.172, 3.172, 3.4018, 3.6306, 
4.46, 5.2754, 1.6116, 6.0769, 4.6838, 4.6838, 3.9339, 5.2018, 
2.2417, 6.1491, 3.0952, 4.6838, 5.2754, 3.5545, 4.46, 4.6838, 
4.2352, 2.7866, 3.0952, 5.2754, 5.4221, 5.787, 2.085, 5.1282, 
3.4782, 4.1601, 3.0182, 6.2931, 5.7142, 3.4782, 5.5684, 5.3488, 
3.0182, 4.0094, 5.7142, 3.8582, 4.0094, 3.6306, 6.0769, 4.1601, 
3.4018, 4.2352, 2.9411, 3.0182, 4.1601, 3.172, 4.9805, 2.7091, 
3.3254, 3.8582, 3.7066, 4.0848, 3.9339, 2.7091, 3.3254, 5.787, 
4.8324, 4.8324, 5.9322, 3.3254, 3.7066, 2.6315, 4.9805, 5.4221, 
4.9805, 4.1601, 4.5347, 4.9805, 4.6093, 4.0094, 3.7066, 5.2018, 
4.7581, 4.6093, 3.7825, 4.9805, 5.7142, 4.5347, 3.0952, 4.1601, 
4.8324, 5.4221, 4.0094, 4.2352, 5.5684, 2.7866, 5.1282, 2.7091, 
5.8596, 5.787, 5.1282, 3.172, 3.6306, 5.2018, 2.7091, 5.1282, 
2.5538, 4.1601, 3.7066, 4.2352, 4.5347, 3.4018, 4.3103, 4.9065, 
3.2488, 4.8324, 6.2931, 5.7142, 4.9065, 4.9805, 5.2754, 4.0094, 
5.0544, 2.7091, 3.6306, 3.3254, 2.2417, 5.7142, 4.3852, 5.8596, 
5.787, 4.8324, 3.6306, 3.7066, 5.0544, 3.172, 4.0094, 5.4953, 
5.4221, 2.7866, 5.4953, 3.0952, 4.6093, 5.6414, 3.7066, 5.6414, 
4.9065, 5.2754, 5.3488, 3.6306, 4.1601, 4.9065, 4.9805, 5.7142, 
3.7825, 5.6414, 4.6093, 4.3852, 3.172, 4.5347, 4.0094, 5.9322, 
4.9805, 4.5347, 4.2352, 2.5538, 4.3103, 5.1282, 3.172, 4.0848, 
1.2135, 6.4367, 4.7581, 2.7866, 3.172, 4.46, 4.3852, 4.3103, 
3.3254, 3.4018, 3.9339, 5.2754, 5.7142, 4.7581, 5.6414, 2.7866, 
4.8324, 4.0848, 4.3852, 2.5538, 2.7866, 2.6315, 4.0848, 4.8324, 
5.3488, 4.0094, 5.2018, 5.2018, 3.4018, 4.5347, 5.6414, 1.8488, 
3.8582, 3.7066, 3.4782, 4.6838, 4.9805, 3.7825, 4.0094, 5.1282, 
4.9805, 5.0544, 4.5347, 2.7866, 3.0952, 3.172, 3.4782, 4.2352, 
2.6315, 4.8324, 4.6093, 4.3852, 3.7825, 5.1282, 3.3254, 4.6093, 
5.787, 5.4953, 4.7581, 4.7581, 4.9065, 2.476, 2.8639, 4.9065, 
4.9065, 3.9339, 4.3103, 2.9411, 5.9322, 4.6838, 4.8324, 2.7866, 
4.1601, 4.3103, 2.9411, 5.787, 3.4782, 4.9805, 3.4782, 5.3488, 
4.0848, 5.787, 2.7866, 4.3103, 2.9411, 4.8324, 4.0848, 4.0848, 
3.5545, 4.9805, 3.8582, 4.9065, 3.9339, 4.0848, 3.172, 3.172, 
3.4782, 3.9339, 5.6414, 4.3103, 5.6414, 5.7142, 4.7581, 2.085, 
4.6093, 4.1601, 4.5347, 5.8596, 4.1601, 4.3103, 4.6838, 3.6306, 
4.6838, 5.9322, 4.6838, 5.3488, 4.3852, 3.0952, 3.7825, 4.46, 
4.0094, 2.8639, 4.7581, 3.8582, 2.7866, 1.9277, 4.5347, 5.7142, 
5.3488, 4.3852, 4.0094, 5.1282, 4.3103, 3.0182, 2.8639, 4.6093, 
5.4953, 3.6306, 5.2018, 2.6315, 6.2211, 5.0544, 5.0544, 4.7581, 
4.9065, 2.7091, 3.9339, 4.3103, 4.8324, 2.7866, 2.1634, 4.1601, 
3.9339, 4.8324, 3.7825, 3.4782, 4.6838, 3.7825, 4.3103), VMethod = structure(c(4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L), .Label = c("test_bs", "test_by", "test_epb", 
"test_ovn", "test_ub"), class = "factor")), row.names = 2:501, class = "data.frame")

例如,我可以使用tidyr 获得相关矩阵:

  levels(test$VMethod)
  test <- test %>% 
    group_by(VMethod) %>% 
    mutate(grouped_id = row_number())
  test <- spread(test, VMethod, error)
  # For correlation table
  cor(test[,-1], use="pairwise.complete.obs")

输出:

┌──────────┬──────────────┬─────────────┬──────────────┬─────────────┬─────────────┐
│          │   test_bs    │   test_by   │   test_epb   │  test_ovn   │   test_ub   │
├──────────┼──────────────┼─────────────┼──────────────┼─────────────┼─────────────┤
│ test_bs  │  1.000000000 │  0.01858443 │ -0.006640928 │  0.13832687 │ -0.11471342 │
│ test_by  │  0.018584428 │  1.00000000 │ -0.126182155 │  0.02388832 │  0.13476503 │
│ test_epb │ -0.006640928 │ -0.12618215 │  1.000000000 │ -0.07941926 │ -0.04927660 │
│ test_ovn │  0.138326870 │  0.02388832 │ -0.079419261 │  1.00000000 │  0.01742074 │
│ test_ub  │ -0.114713416 │  0.13476503 │ -0.049276601 │  0.01742074 │  1.00000000 │
└──────────┴──────────────┴─────────────┴──────────────┴─────────────┴─────────────┘

如何生成 Wilcoxon 和 Kruskal 矩阵?

【问题讨论】:

    标签: r matrix statistics


    【解决方案1】:

    虽然不是矩阵,但dplyr 和purrr 选项可以是:

    map_dfr(.x = combn(unique(df$VMethod), 2, simplify = FALSE),
            ~ df %>%
             filter(VMethod %in% .x) %>%
             summarise(pair1 = .x[1],
                       pair2 = .x[2],
                       p_value = wilcox.test(error ~ VMethod)$p.value))
    
          pair1    pair2      p_value
    1  test_ovn  test_bs 3.529168e-11
    2  test_ovn test_epb 4.769740e-07
    3  test_ovn  test_ub 3.621912e-07
    4  test_ovn  test_by 1.570687e-08
    5   test_bs test_epb 1.037952e-01
    6   test_bs  test_ub 5.834015e-02
    7   test_bs  test_by 2.691848e-01
    8  test_epb  test_ub 8.920884e-01
    9  test_epb  test_by 5.338900e-01
    10  test_ub  test_by 4.128583e-01
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 2012-11-22
      • 1970-01-01
      相关资源
      最近更新 更多