Как использовать 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 для проверки перекрытия наблюдателей, но я всегда получаю низкие оценки, потому что каждый наблюдатель по-своему помечал предметы. Как я могу справиться с этой проблемой?
В моем случае, если мы представим таблицу данных, мы получим следующий вывод:
То есть: для 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