美文网首页
[生物医学统计]R语言-ROC曲线的手动实现

[生物医学统计]R语言-ROC曲线的手动实现

作者: 戴钢盔的熊 | 来源:发表于2021-04-02 11:25 被阅读0次

    最少精神病 (CMMS) 试验

    本文以Bernard Rosner的《Fundamentals of Biostatistics》的一道习题为例,对ROC曲线进行了手动构造,同时计算灵敏度、特异度等相关指标。

    背景:

    中国人的最少精神病测验(CMMS)由114个项目组成,用于去识别老年性痴呆。这个指标也被延伸且用到临床。每个老人与精神病医生及护士谈话并被诊断是否有老年性痴呆。表1仅列出一部分正是受过教育的部分老人资料。

    假设CMMS合计值≤20分者被识别为有老年性痴呆

    1. 计算这个测验的灵敏度;

    2. 计算这个测验的特异度;

    3. 把CMMS值定在20分作分界点是任意的。假设我们改变分界点值。今分别取分界点值为5,10,15,20,25,30,请分别计算灵敏度及特异度且把他们做成表格;

    4. 请用上题的表格构建一个ROC曲线;

    5. 假设我们要求灵敏度及特异度都不低于70%。请找出最佳的分界点以用于识别老年性痴呆;

    6. 计算ROC曲线下的面积。结合本题的前后关系解释这个面积的意义。

    解答:

    1. 根据CMMS合计值≤20的条件将表格进行合并,得到如表2所示的结果:

    ∴Sensitivity=\frac{12}{16}=0.75, Specificity=\frac{34}{46}=0.7391

    3. 

    Sensitivity^{(5)}=\frac{2}{16}=0.125,  Specificity^{(5)}=\frac{46}{46}=1

    之后的表格类似处理,这里不再依次展示各个表格,仅呈现计算结果:

    4. 

    图1. ROC曲线

    5.

    图2. Cutoff识别

    6. 如图1所示,详细计算请见程序。

    程序地址:https://github.com/KeWXiong/Biostatistics-learning/blob/main/ROC_curve_manual.R

     (统计小白,如有错误,还望大神们指正)

    相关文章

      网友评论

          本文标题:[生物医学统计]R语言-ROC曲线的手动实现

          本文链接:https://www.haomeiwen.com/subject/uqpfkltx.html