这个论点对我来说似乎是循环的。我们必须假设 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 次最大的卡方!