如何在R中针对金标准数据集计算特异性、敏感性、预测值及绘制ROC曲线?
在R中计算诊断指标及绘制ROC曲线
一、基础概念回顾
- 敏感性(Sensitivity):真阳性率,即金标准阳性的样本中被检测为阳性的比例,公式:
TP/(TP+FN) - 特异性(Specificity):真阴性率,即金标准阴性的样本中被检测为阴性的比例,公式:
TN/(TN+FP) - 阳性预测值(PPV):检测阳性的样本中实际为阳性的比例,公式:
TP/(TP+FP) - 阴性预测值(NPV):检测阴性的样本中实际为阴性的比例,公式:
TN/(TN+FN)
其中: - TP:真阳性(检测阳性,金标准阳性)
- FN:假阴性(检测阴性,金标准阳性)
- TN:真阴性(检测阴性,金标准阴性)
- FP:假阳性(检测阳性,金标准阴性)
二、基于交叉表计算诊断指标
你已经构建了两个交叉表tab1和tab2,结构为table(检测结果, 金标准),可以直接从中提取TP/FN/TN/FP来计算指标:
针对SIH_NMM_TOTAL vs NMM_TOTAL(tab1)
# 提取交叉表中的数值 TP <- tab1[2, 2] # 检测阳性,金标准阳性 FN <- tab1[1, 2] # 检测阴性,金标准阳性 TN <- tab1[1, 1] # 检测阴性,金标准阴性 FP <- tab1[2, 1] # 检测阳性,金标准阴性 # 计算各指标 sensitivity_nmm <- TP / (TP + FN) specificity_nmm <- TN / (TN + FP) ppv_nmm <- TP / (TP + FP) npv_nmm <- TN / (TN + FN) # 输出结果 cat("SIH_NMM的诊断指标:\n") cat("敏感性:", round(sensitivity_nmm, 2), "\n") cat("特异性:", round(specificity_nmm, 2), "\n") cat("阳性预测值:", round(ppv_nmm, 2), "\n") cat("阴性预测值:", round(npv_nmm, 2), "\n")
针对SIH_CPAV_TOTAL vs CPAV_TOTAL(tab2)
# 提取交叉表中的数值 TP <- tab2[2, 2] FN <- tab2[1, 2] TN <- tab2[1, 1] FP <- tab2[2, 1] # 计算各指标 sensitivity_cpav <- TP / (TP + FN) specificity_cpav <- TN / (TN + FP) ppv_cpav <- TP / (TP + FP) npv_cpav <- TN / (TN + FN) # 输出结果 cat("\nSIH_CPAV的诊断指标:\n") cat("敏感性:", round(sensitivity_cpav, 2), "\n") cat("特异性:", round(specificity_cpav, 2), "\n") cat("阳性预测值:", round(ppv_cpav, 2), "\n") cat("阴性预测值:", round(npv_cpav, 2), "\n")
三、绘制ROC曲线
ROC曲线用于评估诊断试验的准确性,我们可以使用pROC包来实现:
步骤1:安装并加载包
install.packages("pROC") # 首次使用需安装 library(pROC)
步骤2:绘制SIH_NMM vs NMM的ROC曲线
# 构建ROC对象 roc_nmm <- roc(response = data$NMM_TOTAL, predictor = data$SIH_NMM_TOTAL) # 绘制ROC曲线 plot(roc_nmm, main = "ROC Curve: SIH_NMM vs NMM Gold Standard", col = "blue", lwd = 2, print.auc = TRUE) # 自动显示AUC值
步骤3:绘制SIH_CPAV vs CPAV的ROC曲线
# 构建ROC对象 roc_cpav <- roc(response = data$CPAV_TOTAL, predictor = data$SIH_CPAV_TOTAL) # 绘制ROC曲线 plot(roc_cpav, main = "ROC Curve: SIH_CPAV vs CPAV Gold Standard", col = "red", lwd = 2, print.auc = TRUE)
注:由于你的检测指标是二分类(0/1),ROC曲线会呈现为一个点加两条线段,AUC值反映整体诊断准确性,越接近1说明准确性越高。
内容的提问来源于stack exchange,提问作者Lana Meijinhos
相关产品推荐
相关产品推荐

