按组划分的评分者间信度

inter-rater reliability by groups

我的数据集如下所示,但行数和组数更多:

df2 <- data.frame(
  "group" = c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5), 
  "R1"    = c(1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0),
  "R2"    = c(1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0),
  "R3"    = c(1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0))

其中 R1、R2 和 R3 是不同的评分者。我想计算每个组内的评分者间可靠性(编码器间可靠性)。我怎样才能遍历这些组来做到这一点?

我在这里发现了一个类似的问题:Inter-rater reliability per category但是没有答案。 我很感激任何帮助,即使它只是关于在不计算评估者间可靠性的情况下遍历组。

我最近发现了优秀的 tidycomm 包。计算组上的 icr 尚未实现,但它与 group_map.

配合得很好
library(tidyverse)
library(tidycomm)
df2 %>% 
  # tidycomm expects tidy data so we have to do some reshaping first
  mutate(post_id = row_number()) %>% 
  pivot_longer(R1:R3, names_to = "coder_id", values_to = "code") %>%
  # first group by, then apply the function once per group 
  group_by(group) %>% 
  group_map(.f = function(.x, .y) {
    out <- test_icr(.x, unit_var = post_id, coder_var = coder_id, code)
    add_column(out, group = .y$group, .before = 1L)
  }) %>% 
  bind_rows()
#> # A tibble: 5 × 9
#>   group Variable n_Units n_Coders n_Categories Level   Agreement Holstis_CR
#>   <dbl> <chr>      <int>    <int>        <int> <chr>       <dbl>      <dbl>
#> 1     1 code           4        3            2 nominal     0.5        0.667
#> 2     2 code           3        3            2 nominal     0.667      0.778
#> 3     3 code           4        3            2 nominal     1          1    
#> 4     4 code           4        3            2 nominal     0.5        0.667
#> 5     5 code           5        3            2 nominal     0.8        0.867
#> # … with 1 more variable: Krippendorffs_Alpha <dbl>

reprex package (v2.0.1)

于 2022-03-23 创建