2

我正在尝试使用由 irr 包提供的 Light 的 kappa 计算评分系统在 R 中的观察者间可靠性。这是一个完全交叉的设计,其中 15 名观察者对 20 个主题的存在(“1”)或不存在的东西(“0”)进行评分。这是我的数据框(从 Excel 表导入):

library(irr)       
my.df #my dataframe

   a b c d e f g h i j k l m n o
1  0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
2  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3  0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
4  0 1 1 0 0 0 1 0 0 0 0 0 0 0 0
5  0 1 0 0 1 1 0 0 0 1 1 0 0 1 0
6  0 1 0 0 1 1 0 0 0 0 0 1 1 0 0
7  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8  0 0 1 0 0 0 0 0 0 1 0 0 0 0 0
9  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
11 0 1 1 1 0 1 0 0 0 1 0 0 0 0 1
12 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0
13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
14 0 1 0 1 0 1 1 0 0 1 1 1 1 1 0
15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
17 0 1 0 1 1 1 0 0 0 0 0 1 1 1 0
18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0

接下来我尝试计算 kappa 值,我得到以下响应

kappam.light(my.df) #calculating the kappa-value

Light's Kappa for m Raters

 Subjects = 20 
   Raters = 15 
    Kappa = NaN 

        z = NaN 
  p-value = NaN 

Warning messages:
1: In sqrt(varkappa) : NaNs produced
2: In sqrt(varkappa) : NaNs produced
3: In sqrt(varkappa) : NaNs produced
4: In sqrt(varkappa) : NaNs produced
5: In sqrt(varkappa) : NaNs produced
6: In sqrt(varkappa) : NaNs produced
7: In sqrt(varkappa) : NaNs produced
8: In sqrt(varkappa) : NaNs produced
9: In sqrt(varkappa) : NaNs produced
10: In sqrt(varkappa) : NaNs produced

我已经尝试将所有变量的类更改为因子、字符、数字、布尔值。没有任何效果。我怀疑这与“1”分数相对较低有关。有什么建议么?

编辑:我找到了解决问题的方法,而不必排除数据。要计算患病率和偏差调整后的 kappa,pabak 可用于解决双向问题。对于像这样的 multirater 问题,您应该使用 Randolph's kappa。这是基于 fleiss' kappa 的,因此不考虑差异。非常适合我遇到的问题。

可以在此处找到在线计算器 在 R 中,可以使用 Raters 包。我比较了两种方法的结果,结果几乎相同(小数点后六位的差异)。

4

1 回答 1

0

您收到此错误是因为您在列ai.

首先,检查列之间的可变性

apply(df,2,sd)
        a         b         c         d         e         f         g         h         i         j         k         l         m         n         o 
0.0000000 0.5104178 0.3663475 0.4103913 0.3663475 0.4893605 0.3077935 0.2236068 0.0000000 0.4701623 0.3663475 0.4103913 0.4103913 0.4103913 0.2236068 

您会看到这些列a并且i没有可变性。需要变异性是因为 Kappa 会计算评估者间的可靠性并纠正机会一致性。有两个未知数,没有可变性,这是无法计算的。

因此,如果您删除这 2 列,您将获得没有错误的输出。

df$a=NULL
df$i=NULL
kappam.light(df)
 Light's Kappa for m Raters

 Subjects = 20 
   Raters = 13 
    Kappa = 0.19 

        z = 0 
  p-value = 1 
于 2015-03-25T14:36:56.023 回答