【问题标题】:Is and Brier Score the right approach to evaluate this binomial glm model?和 Brier Score 是评估此二项式 glm 模型的正确方法吗?
【发布时间】:2020-11-20 16:58:32
【问题描述】:

我想评估一个计算器,该计算器通过计算基于大量输入变量的事件发生概率的估计百分比来预测事件(实际上它是关于具有风险因素和术后并发症的患者)。不幸的是,我对计算器的实际工作原理一无所知,只能查看输入/输出值。在输入了许多场景后,我最终得到了这样的 df:

risk <- runif(100, 0, 1)
event <- sample(c(0,1), 100, replace = TRUE) 
test.df <- data.frame(risk, event)

风险描述预测的概率,事件描述并发症是否实际发生。

现在我想了解计算器在预测患者并发症方面的能力。

是否适合使用二项式 glm 并使用标度的 brier 分数对其进行评估?

library (stats)
library (DescTools)
mod <- glm(event ~ risk, family = binomial, data = test.df)
BrierScore(mod, scaled = TRUE)

从我的角度来看,也可以直接从 df 计算 Brier 分数和 Scaled Brier 分数,但我不确定这是否是正确的方法。

BS <- function(obs, pred) {
          mean((obs - pred)^2)
        }
        
Scaled_BS <- function(obs, pred) {
          1 - (BS(obs, pred) / (mean(obs) * (1 - mean(obs))))
        }
BS(event, risk)
Scaled_BS(event, risk)

如果这是一个完全错误的方法,请原谅我。我是这种任务的新手,任何帮助将不胜感激!

【问题讨论】:

    标签: r glm


    【解决方案1】:

    使用 Brier 分数很好,但您可以补充 ROC 分析,该分析旨在测试二元结果。 ROC 分析的关键是返回一个 0-1 之间的值。越接近 1,预测越好。如果该值接近 0.5,则预测是随机的并且缺乏预测能力。经验法则是,如果 AUROC 超过 0.7,则模型的性能是合适的。我已经使用ROCR 包为您绘制了一个代码:

    library(ROCR)
    #Data
    risk <- runif(100, 0, 1)
    event <- sample(c(0,1), 100, replace = TRUE) 
    test.df <- data.frame(risk, event)
    #Model
    mod <- glm(event ~ risk, family = binomial, data = test.df)
    #Evaluate
    test.df$score<-predict(mod,type='response',test.df)
    pred<-prediction(test.df$score,test.df$event)
    discr=performance(pred,"auc")
    #Compute AUROC
    AUROC=as.numeric(discr@y.values)
    

    AUROC 的输出是:

    AUROC
    [1] 0.5700522
    

    这是低的。您还可以绘制 ROC 曲线,曲线最接近左上角意味着预测来自高性能模型。对于您的数据:

    这是正方形的中间,不靠近左上角。此度量可以帮助您确定模型的性能。

    【讨论】:

    • 非常感谢您对 AUROC 的快速支持和推荐。我想使用 Brier 分数,因为其他同事在同一个计算器的上下文中使用它。我想最终这两种方法都应该产生具有相似趋势的结果?再次感谢,周末愉快!
    • @NR117 非常感谢!是的,这两种度量都量化了性能,但 AUROC 使用更准确,因为 AUROC 被理解为概率。接近1的分类更好。 Brier 分数返回一个有时难以解释的数字。希望对你有帮助:)
    猜你喜欢
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多