就所给数据而言, 经R手工计算和代包计算, kappa
的结果和hagiaatcos一样, 和文章也对不上
注意: 混淆矩阵(confused matrix)有的是预测在上, 真实在左, 如wiki; 有的是真实在上,预测在左, 如本例
测试如下:
原帖数据及library(psych)
计算
library(psych)
ob = c(rep(0,196),rep(1,88),rep(0,90),rep(1,23))
pr = c(rep(0,196),rep(1,88),rep(1,90),rep(0,23))
x = cbind(ob,pr)
ck = cohen.kappa(x)
ck$kappa
# [1] 0.403579
根据wiki定义手工计算
# https://en.wikipedia.org/wiki/Confusion_matrix
# https://en.wikipedia.org/wiki/Cohen's_kappa
# https://stats.stackexchange.com/questions/373995/
cohens_kappa = function(TP, FN, FP, TN) {
return(2 * (TP * TN - FN * FP) / (TP * FN + TP * FP + 2 * TP * TN + FN^2 + FN * TN + FP^2 + FP * TN))
}
TP = 88; FN = 23; FP = 90; TN = 196 #此处请自行check, 注意wiki是[预测在上,真实在左], 和本例转置
cohens_kappa(TP, FN, FP, TN)
# [1] 0.403579
代包library(caret)计算
ob = factor(ob); pr = factor(pr)
cc = caret::confusionMatrix(pr,ob)
cc$overall["Kappa"]
# Kappa
# 0.403579
至于结果对不上, 个人谈几点可能的原因:
hagiaatcos可能
没有理解文章的细节, 数据和方法没有对应上; 因为就贴的内容而言, 缺少上下文
文章本身计算可能
有问题, 尽信书不如无书; 何况很多时候发论文只是为糊口, 疏忽之处难免
文章可能
采用别的软件计算kappa, 公式可能
和R不一样: 里面有比例系数
或者权重系数
之类的