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 
Другие вопросы по тегам