我一直在尝试计算有关特异性和敏感性的一些指标。
SDMTools R软件包非常有用,可以得到总体估计。
library(SDMTools)
a <- c(1,1,1,1,0,0,0,1,0,1,1,1) #observed
b <- c(1,1,0,0,1,0,0,1,0,0,1,1) #predicted
accuracy(a, b)
# threshold AUC omission.rate sensitivity specificity prop.correct Kappa
#1 0.5 0.6875 0.375 0.625 0.75 0.6666667 0.3333333
不幸的是,我无法获得TRUE POSITIVE,TRUE NEGATIVE,FALSE POSITIVE和FALSE NEGATIVE的原始数字。我想将它们放在四个不同的列中。有谁知道一个软件包或函数可以做到这一点?我想得到的结果如下。
#TP TN FP FN
#5 3 1 3
答案 0 :(得分:2)
您可以在下面使用类似的自定义函数来计算对/错分类计数:
accuracy_table <- function(obs, pred){
data.frame(TP = sum(obs == 1 & pred == 1),
TN = sum(obs == 0 & pred == 0),
FP = sum(obs == 0 & pred == 1),
FN = sum(obs == 1 & pred == 0))
}
accuracy_table(a, b)
此功能依赖于观察和预测被编码,其中0表示否定情况,而1表示肯定情况,因此在其他情况下将无法正常工作。