Harrell BBR 18-19 中的循环推理?

机器算法验证 回归 机器学习 准确性 计分规则
2022-03-28 07:04:16

我正在查看 Harrell 的“生物医学研究的生物统计学”的第 18 章(信息丢失):https ://hbiostat.org/doc/bbr.pdf 。

18-19 的例子似乎是循环推理。统计量来反对分类准确性,并说这表明性别包含负面信息。χ2

为什么性不能包含负面信息?我当然相信它会是一个预测器,但我在统计数据中看不到任何表明这一点的东西,除非我们将 c-index 或作为性能指标。χ2

所以哈雷尔的论点似乎是:

  1. 使用 c-index 或,而不是准确度χ2

  2. ,准确度使它看起来像性包含负面信息χ2

  3. 所以使用 c-index 或,而不是准确度χ2

这个论点对我来说似乎是循环的。我们必须假设 c-index 和是更好的指标,以显示作为指标的准确性缺陷。χ2

我误入歧途到哪里去了?

(请注意,我不是在问为什么准确性是一个不恰当的评分规则。这就是为什么 Harrell 的论点不是循环的。)

1个回答

这个论点对我来说似乎是循环的。我们必须假设 c-index 和是更好的指标,以显示作为指标的准确性缺陷χ2

在您的评论中,您提到您同意并理解为什么我们应该更喜欢 c 指数和似然比卡方 (LHRCS) 而非分类准确性。在您的帖子中,您还提到您了解准确性不是正确的评分规则。好的,这很好。

您提出的论点不是循环的。然而,这是一个糟糕的论点。“使用 LHRCS,因为在本例中它是一个更好的指标”。

然而,这并不是我认为弗兰克试图提出的论点的忠实代表。如果我要逐点写出论点,那么论点可能类似于:

  • 正确的评分规则比不正确的评分规则更受欢迎,因为根据定义,正确的评分规则通过真实分布最大化

  • LHRCS 源自对数似然,在概率预测中是二项似然,因此是适当的评分规则。

  • 准确性不是一个正确的评分规则(+ 反对准确性的额外论据,就像它可以通过一直猜测最流行的类别来最大化,这似乎不是一个好的属性,并且通过给一个 100% 的概率给出一个错误地夸大了信心结果)。

  • 鉴于我们对正确评分规则的理解,该示例表明,使用不正确的评分规则(如准确性)将导致对重要事项做出错误决定(我在这里假设我们先验地知道性别是可预测的)。

这种推理不需要假设 LHRCS 是一个优越的指标,因为我们用来自正确评分规则的知识来证明它是正确的。

编辑:如果您的目标是让其他人相信 LHRCS 更出色,那么模拟就是您的朋友。在这里,我模拟了弗兰克的例子 1000 次。

library(tidyverse)
library(rms)

r = rerun(1000,{
  
  N = 400
  age = round(rnorm(N))
  sex = rbinom(N, 1, 0.5)
  noise = rnorm(N)
  p = plogis(1.6*age + 0.5*sex)
  y = rbinom(N, 1, p)
  
  
  model_1 = lrm(y~age)
  model_2 = lrm(y~sex)
  model_3 = lrm(y~sex + age)
  model_4 = lrm(y~sex + age + noise)
  models = list(model_1, model_2, model_3, model_4)
  
  accs = map_dbl(models, ~{
    preds = as.integer(predict(.x)>0.5)
    Metrics::accuracy(y, preds)
  })
  
  aics = map_dbl(models, AIC)
  
  X1 = anova(model_1)['TOTAL','Chi-Square'] - anova(model_1)['TOTAL','d.f.']
  X2 = anova(model_2)['TOTAL','Chi-Square'] - anova(model_2)['TOTAL','d.f.']
  X3 = anova(model_3)['TOTAL','Chi-Square'] - anova(model_3)['TOTAL','d.f.']
  X4 = anova(model_4)['TOTAL','Chi-Square'] - anova(model_4)['TOTAL','d.f.']
  X = c(X1,X2,X3,X4)
  
  tibble(
    right_accs = which.max(accs)==3,
    right_xs = which.max(X)==3,
    right_aics = which.min(aics)==3
  )
  
}) %>% 
  map_dfr(~.x)


r %>% 
  summarise_all(mean)


我相当有信心在这个例子中弗兰克的卡方是一个部分卡方,所以我试图在这个例子中使用它。真实模型的最大精度不到一半的时间,最大的部分卡方略多于一半的时间。显然更好,尽管仍然不是防弹的。随着数据的增加,结果会发生很大变化。即使有 4000 次观察(一个数量级以上),正确的模型在大约一半的时间内具有最大的准确度,但在 10 次中具有 8 次最大的卡方!