0

我正在尝试计算两个评估者和多个受试者之间的类内相关性。但是,我还希望能够确定评估者对每个主题的同意,以便我可以确定哪些领域的一致性高/一致性低,以及哪些区域可能会提高/降低分数。

我知道我无法计算两个评分者在一个主题上的 icc,但找到每行(主题)值之间的百分比一致性将为我提供具体信息。

注意:这些值是连续整数,不是因数

我的数据目前看起来像:

subject  rater1  rater2
1        val1    val2
2        val3    val4
3        val5    val6
4        val7    val8

我想改变另一列“协议”,按行计算百分比协议。所以,它基本上看起来像这样:

subject  rater1  rater2  agreement
1        val1    val2    agreement_val1 %
2        val3    val4    agreement_val2 %
3        val5    val6    agreement_val3 %
4        val7    val8    agreement_val4 %

我知道我会用它来变异:

df %>% mutate(agreement = ???)

我只是想弄清楚计算以及它如何适用于每行/观察/主题。感谢大家

EDIT1:我基本上想在每行中使用类似同意()函数的东西。

这不起作用,但是具有这种性质的东西:

df %>% mutate(agreement = agree(each row))

EDIT2:你们中的一些人希望我提供一个例子。

在此示例中,有两个评估者(rater1 和 rater2)。他们都在评估动物执行特定行为的时间(以秒为单位)。数据框如下所示:

behavior  rater1  rater2
run       48      59
stand     23      91
sit       389     401
sleep     288     290

所以,“主体”是动物的行为。我可以运行 ICC() 或 icc() 测试,但这会给我一个基于两个评估者对所有行为的协议的值。但是,我希望能够看到两个评估者在每个单独的行为中是如何同意/不同意的。希望这是有道理的。

4

1 回答 1

0
library(psych)

ratings <- data.table(
  rater1 = c(3,3,3,4),
  rater2 = c(3,6,4,6),
  rater3 = c(2,1,4,4)
)

ICC(ratings)

# Call: ICC(x = ratings)
# 
# Intraclass correlation coefficients 
#                          type          ICC   F df1 df2    p lower bound upper bound
# Single_raters_absolute   ICC1 -0.000000045 1.0   3   8 0.44       -0.34        0.72
# Single_random_raters     ICC2  0.107142840 1.6   3   6 0.29       -0.15        0.73
# Single_fixed_raters      ICC3  0.157894727 1.6   3   6 0.29       -0.29        0.81
# Average_raters_absolute ICC1k -0.000000136 1.0   3   8 0.44       -3.07        0.89
# Average_random_raters   ICC2k  0.264705847 1.6   3   6 0.29       -0.66        0.89
# Average_fixed_raters    ICC3k  0.359999984 1.6   3   6 0.29       -2.04        0.93
# 
#  Number of subjects = 4     Number of Judges =  3
于 2021-10-22T12:47:20.733 回答