Как использовать kappa2() или cohen.kappa() для проверки перекрывающихся назначений между наблюдателями

Пример 1. В обычной ситуации, если у нас есть следующие данные:

library("irr")
library("psych")

a<- c(1, 3, 1, 1, 2, 3, 1, 1, 3, 1, 1, 1, 1, 3, 2, 1)
d<- c(1, 3, 1, 1, 2, 3, 1, 1, 3, 1, 1, 1, 1, 3, 2, 2)
df2<- as.data.frame (cbind(a,d))
cohen.kappa(df2)

Наблюдатели "a" и "d" присвоили наблюдения одной и той же группе в 15/16 случаях, и cohen.kappa() вернет вам следующий вывод:

Call: cohen.kappa1(x = x, w = w, n.obs = n.obs, alpha = alpha, levels
= levels)

Cohen Kappa and Weighted Kappa correlation coefficients and confidence boundaries 
                 lower estimate upper 
unweighted kappa  0.68   0.89  1.00  
weighted kappa    0.96   0.96  0.96

Number of subjects = 16

Пример 2. Предположим теперь, что у нас есть следующий фрейм данных, который представляет один и тот же тип назначений (строк) от разных наблюдателей (столбцов). У нас есть три группы субъектов, и мы хотели бы знать, каково совпадение между тремя наблюдателями, назначающими каждый объект каждой из этих групп.

library("irr")
library("psych")

a<- c(1, 3, 1, 1, 2, 3, 1, 1, 3, 1, 1, 1, 1, 3, 2, 1)
b<- c(2, 1, 2, 2, 3, 1, 2, 2, 1, 2, 2, 2, 2, 1, 3, 1)
c<- c(3, 1, 3, 3, 2, 1, 3, 3, 1, 3, 3, 3, 3, 1, 2, 1)

df<- as.data.frame (cbind(a,b,c))

cohen.kappa(df[,c(1,2)])
cohen.kappa(df[,c(1,3)])
cohen.kappa(df[,c(2,3)])

В нашем примере субъекты 1-15 были классифицированы в одной и той же группе каждым наблюдателем, но они имеют разные метки (т. Е. Каждый субъект, который был отмечен "1" наблюдателем "а", был отмечен "2"). наблюдателем "b" и "3" наблюдателем "c"; то же самое относится и к другим меткам). Единственным субъектом, который был ошибочно помечен, был индивидуум 16, который был отмечен как "1" тремя наблюдателями.

Я хотел бы использовать функции kappa2 или cohen.kappa R для проверки перекрытия наблюдателей, но я всегда получаю низкие оценки, потому что каждый наблюдатель по-своему помечал предметы. Как я могу справиться с этой проблемой?

В моем случае, если мы представим таблицу данных, мы получим следующий вывод:

Вывод таблицы данных (df

То есть: для a=1, b=3, c=1; для a=2, b=1, c=3 и для a=3, b=2, c=2. Единственное несоответствие выделено красным кружком.

В моем случае перекрытие между тремя наблюдателями должно составлять 93,75 (15/16), а результат cohen.kappa() должен быть таким же, как в примере 1, но его вывод для cohen.kappa(df[,c(1,2)]) Например, следующий:

Call: cohen.kappa1(x = x, w = w, n.obs = n.obs, alpha = alpha, levels = levels)

Cohen Kappa and Weighted Kappa correlation coefficients and confidence boundaries 
                 lower estimate upper
unweighted kappa -0.50    -0.33 -0.16
weighted kappa   -0.44    -0.44 -0.44

 Number of subjects = 16 .

Кстати, я не хочу перемаркировать каждую группу, потому что это будет использоваться в контексте 10000 итераций для 10000 наблюдателей.

R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] magrittr_1.5       factoextra_1.0.5   cluster_2.0.6      bindrcpp_0.2       car_2.1-5         
 [6] dplyr_0.7.3        plyr_1.8.4         semTools_0.4-14    lavaan_0.5-23.1097 psych_1.7.8       
[11] pvclust_2.0-0      mclust_5.3         useful_1.2.3       ggplot2_2.2.1      irr_0.84          
[16] lpSolve_5.6.13    

loaded via a namespace (and not attached):
 [1] modeltools_0.2-21  kernlab_0.9-25     splines_3.3.2      lattice_0.20-35    colorspace_1.3-2  
 [6] viridisLite_0.2.0  stats4_3.3.2       mgcv_1.8-22        rlang_0.1.2        ggpubr_0.1.5      
[11] nloptr_1.0.4       foreign_0.8-69     glue_1.1.1         prabclus_2.2-6     fpc_2.1-10        
[16] bindr_0.1          robustbase_0.92-7  MatrixModels_0.4-1 munsell_0.4.3      gtable_0.2.0      
[21] mvtnorm_1.0-6      labeling_0.3       SparseM_1.77       quantreg_5.33      pbkrtest_0.4-7    
[26] flexmix_2.3-14     parallel_3.3.2     class_7.3-14       DEoptimR_1.0-8     trimcluster_0.1-2 
[31] Rcpp_0.12.12       diptest_0.75-7     scales_0.5.0       lme4_1.1-14        gridExtra_2.3     
[36] mnormt_1.5-5       ggrepel_0.6.5      grid_3.3.2         quadprog_1.5-5     tools_3.3.2       
[41] lazyeval_0.2.0     tibble_1.3.4       whisker_0.3-2      pbivnorm_0.6.0     pkgconfig_2.0.1   
[46] dendextend_1.5.2   MASS_7.3-47        Matrix_1.2-11      viridis_0.4.0      assertthat_0.2.0  
[51] minqa_1.2.4        R6_2.2.2           nnet_7.3-12        nlme_3.1-131      

0 ответов

Другие вопросы по тегам