该工具用于评估一项检测或生物标志物区分疾病的能力,支持固定截断值(2×2表)和跨全部截断值(ROC)两种情形,并能把检测结果转成患病概率。
用途与主要能力:当已有2×2表(TP/FP/TN/FN)时,运行 tu run Epidemiology_diagnostic '{"operation":"diagnostic","tp":90,"fp":10,"tn":180,"fn":20}',返回灵敏度、特异度、PPV、NPV、准确率、LR_pos、LR_neg 及样本患病率。当指标是连续评分时,用ROC_analysis(scores=[...], labels=[0,1,...]) 或 ROC_analysis(csv_path="scores.csv", cutoff=0.6),也可调用附带脚本 python skills/tooluniverse-diagnostic-test-evaluation/scripts/roc_analysis.py --input scores.csv(CSV列:label 中 1 为患病、0 为健康;score 为连续标志物),返回AUC及bootstrap 95%置信区间、Youden最佳截断值及其灵敏度/特异度。当需要把结果转成患病概率时,运行 tu run Epidemiology_bayesian '{"operation":"bayesian","prevalence":0.10,"sensitivity":0.90,"specificity":0.95,"test_result":"positive"}',返回检验前odds、似然比与检验后概率。
使用注意与限制:PPV/NPV依赖患病率,必须注明所用患病率;病例对照设计的人为50/50患病率不能直接引用PPV/NPV,应结合真实患病率用贝叶斯步骤计算。AUC不反映具体工作点,需报告所选截断值处的灵敏度与特异度。类别极不平衡时ROC/AUC可能虚高而PPV仍差。谱系偏倚会使在典型病与非病者上测得的灵敏度/特异度高估真实表现;在同一数据上选截断值再评估偏乐观,应在留出集验证。这些是判别/准确性指标而非校准指标;单一AUC无法比较两个检测,比较需配对AUC(DeLong)检验,超出基础脚本范围。