创建函数,R语言求解cutoff, AUC, 95%置信区间,敏感性,特异性

Python017

创建函数,R语言求解cutoff, AUC, 95%置信区间,敏感性,特异性,第1张

cal_metrics <- function(label, pred){

  roc.p=pROC::roc(label, pred,ci =T)

  if (roc.p$auc>0.5){

    cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]

    sensitivity=roc.p$sensitivities[which.max(roc.p$sensitivities+roc.p$specificities)]

    specificity=roc.p$specificities[which.max(roc.p$sensitivities+roc.p$specificities)]

    ci = roc.p$ci

    df=data.frame(type='positive classification',

                  auc=round(roc.p$auc,3),cutoff=cutoff,

                  sensitivity=sensitivity,specificity=specificity,ci_lower = ci[1],ci_upper=ci[3])

    return(df)

  }

  else{

    cutoff=roc.p$thresholds[which.min(roc.p$sensitivities+roc.p$specificities)]

    sensitivity=roc.p$sensitivities[which.min(roc.p$sensitivities+roc.p$specificities)]

    specificity=roc.p$specificities[which.min(roc.p$sensitivities+roc.p$specificities)]

    ci = roc.p$ci

    df=data.frame(type='negative classification',

                  auc=1-round(roc.p$auc,3),cutoff=cutoff,

                  sensitivity=1-sensitivity,specificity=1-specificity,ci_lower = ci[1],ci_upper=ci[3])

    return(df)

  }

}

指一个效应能够产生的最低值或最高值。此一名词广泛用于各方面,包括建筑学、生物学、飞行、化学、电信、电学、心理学等,如生态阈值

阀值:这个词最早是没有的,后来国家的咬文嚼字工作组通过统计全国人民使用词语的习惯,发现了阀值这个词。这个词本身是错误的一个词,他的产生是由于把阈值误写成“阀值”。