Kappam.light из пакета irr в R: предупреждение sqrt(varkappa), произведено NAns, kappa = NA, z-значение = NA и p-значение = NA
Я пытаюсь рассчитать надежность меж-наблюдателя в R для системы подсчета очков, используя каппу Лайт, предоставленную пакетом irr. Это полностью скрещенный дизайн, в котором пятнадцать наблюдателей набрали 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
Затем я пытаюсь вычислить значение каппа, и я получаю следующий ответ
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". Какие-либо предложения?
РЕДАКТИРОВАТЬ: я нашел решение проблемы, без необходимости исключать данные. Чтобы рассчитать распространенность и скорректированную на смещение каппу, пабак можно использовать для решения проблем биратера. Для подобных задач вы должны использовать каппу Рэндольфа. Это основано на каппа Флисса и, следовательно, не учитывает различия. Идеально для той проблемы, которая у меня была.
Онлайн-калькулятор можно найти здесь. В R можно использовать пакет Raters. Я сравнил результат между двумя методами, и результаты практически одинаковы (разница в шестом десятичном знаке).
1 ответ
Вы получаете эту ошибку, потому что у вас нет изменений в столбцах 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 рассчитывает надежность между оценками и корректирует случайное соглашение. С двумя неизвестными и без изменчивости это не может быть рассчитано.
Следовательно, вы получите вывод без ошибок, если уберете эти 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