Kappam.light 来自 R 中的 irr 包:警告 sqrt(varkappa),生成的 NAns,kappa = NA,z-value=NA 和 p-value=NA
Kappam.light from irr package in R: Warning sqrt(varkappa), NAns produced, kappa = NA, z-value=NA and p-value=NA
我正在尝试使用 irr 包提供的 Light 的 kappa 为评分系统计算 R 中观察者间的可靠性。这是一个完全交叉的设计,其中 15 名观察员对 20 个对象的存在(“1”)或不存在(“0”)进行了评分。
这是我的数据框(从 excel sheet 导入):
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
我已经尝试将所有变量的 class 更改为因子、字符、数字、布尔值。什么都不管用。我怀疑这与相对较低的“1”分数有关。有什么建议吗?
编辑:我找到了解决问题的方法,而不必排除数据。
要计算流行率和偏差调整后的 kappa,pabak 可用于解决双打问题。对于像这样的多评估者问题,您应该使用 Randolph 的 kappa。这是基于 fleiss 的 kappa,因此不考虑方差。非常适合我遇到的问题。
可以找到在线计算器here
在 R 中,可以使用 Raters 包。我比较了两种方法的结果,结果几乎相同(小数点后第六位不同)。
您收到此错误是因为您在 a
和 i
列中没有可变性。
首先,检查列之间的可变性
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 计算评估者间的可靠性并针对机会一致性进行更正。有两个未知数,没有可变性,这是无法计算的。
因此,如果您删除这两列,您将得到没有错误的输出。
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
我正在尝试使用 irr 包提供的 Light 的 kappa 为评分系统计算 R 中观察者间的可靠性。这是一个完全交叉的设计,其中 15 名观察员对 20 个对象的存在(“1”)或不存在(“0”)进行了评分。 这是我的数据框(从 excel sheet 导入):
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
我已经尝试将所有变量的 class 更改为因子、字符、数字、布尔值。什么都不管用。我怀疑这与相对较低的“1”分数有关。有什么建议吗?
编辑:我找到了解决问题的方法,而不必排除数据。 要计算流行率和偏差调整后的 kappa,pabak 可用于解决双打问题。对于像这样的多评估者问题,您应该使用 Randolph 的 kappa。这是基于 fleiss 的 kappa,因此不考虑方差。非常适合我遇到的问题。
可以找到在线计算器here 在 R 中,可以使用 Raters 包。我比较了两种方法的结果,结果几乎相同(小数点后第六位不同)。
您收到此错误是因为您在 a
和 i
列中没有可变性。
首先,检查列之间的可变性
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 计算评估者间的可靠性并针对机会一致性进行更正。有两个未知数,没有可变性,这是无法计算的。
因此,如果您删除这两列,您将得到没有错误的输出。
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