Специфичность и чувствительность - PullRequest
0 голосов
/ 09 октября 2018

Я пытался вычислить некоторые показатели специфичности и чувствительности.
Пакет 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

К сожалению, я не смог получить необработанныйчисла для ИСТИННОГО ПОЗИТИВНОГО, ИСТИННОГО ОТРИЦАТЕЛЬНОГО, ЛОЖНОГО ПОЗИТИВНОГО, ЛОЖНОГО ОТРИЦАТЕЛЬНОГО.Я хотел бы иметь их в четырех разных колонках.Кто-нибудь знает пакет или функцию, которая может это сделать?Результат, который я хотел бы получить, ниже.

#TP  TN  FP  FN
#5    3   1   3

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать пользовательскую функцию, подобную приведенной ниже, для вычисления истинных / ложных значений классификации:

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 в качествеположительный случай, поэтому в других случаях он не будет работать так, как хотелось бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...