Qual é a fórmula para calcular a área sob a curva ROC de uma tabela de contingência?

Por exemplo, se minha tabela for:

 True Value (gold standard) Positive | Negative | | | | | Test | Pos | A | B | Result | | | | | Neg | C | D | | | | | 

Comentários

  • ' não está claro para mim se pode haver uma resposta útil para essa pergunta. A curva de característica de operação do receptor (ROC) representa a gama de compensações entre as classificações verdadeiro-positivo e falso-positivo, já que se altera o limite para fazer essa escolha no modelo. Uma tabela de contingência representa os resultados da classificação em uma escolha particular desse limite. Alguém pode ser capaz de calcular algo como uma área (como uma resposta proposta aqui faz), mas ' não está claro se representaria verdadeiramente a área sob a curva ROC para o modelo completo .
  • Se o seu preditor for dicotômico e, portanto, houver apenas um limite, acho que a AUC ainda fornece (algumas) informações úteis.
  • @JeremyMiles, forneça um exemplo não trivial de o preditor onde existe apenas um limite.
  • @PavelTyshevskyi – com certeza. (Esqueci qual era o contexto para esta questão). Trabalho com avaliadores que classificam os anúncios. Um exemplo é a pornografia (o que é ruim). Perguntamos aos avaliadores " Este anúncio é para pornografia? " Eles dizem sim ou não.

Resposta

No caso geral: você não pode “t

A curva ROC mostra como a sensibilidade e a especificidade variam em cada limite possível . Uma tabela de contingência foi calculada em um único limite e as informações sobre outros limites foram perdidas. Portanto, você não pode calcular a curva ROC a partir desses dados resumidos.

Mas meu Deus classificador é binário, então eu tenho um único limite

Classificadores binários não são realmente binários. Embora eles possam expor apenas uma decisão binária final, todos os classificadores que eu conheço contam com alguma estimativa quantitativa subjacente.

  • Uma árvore de decisão binária? Tente construir uma árvore de regressão.
  • Um classificador SVM? Faça uma regressão vetorial de suporte.
  • Regressão logística? acesso às probabilidades brutas.
  • Rede neural? Use a saída numérica de t a última camada, em vez disso.

Isso lhe dará mais liberdade para escolher o limite ideal para obter a melhor classificação possível para suas necessidades.

Mas eu realmente quero

Você realmente não deveria. As curvas ROC com poucos limiares subestimam significativamente a área real sob a curva (1). Uma curva ROC com um único ponto é o pior cenário, e qualquer comparação com um classificador contínuo será imprecisa e enganosa.

Apenas me dê a resposta!

Ok, ok , você ganha. Com um único ponto, podemos considerar o AUC como a soma de dois triângulos T e U:

Uma curva ROC com um único par (SP, SE) e dois triângulos

Podemos obter suas áreas com base na tabela de contingência (A, B, C e D conforme você definiu):

$$ \ begin {align *} T = \ frac {1 \ times SE} {2} & = \ frac {SE} {2} = \ frac {A} {2 (A + C)} \\ U = \ frac {SP \ vezes 1} {2} & = \ frac {SP} {2} = \ frac {D} {2 (B + D)} \ end {align *} $$

Obtendo a AUC: $$ \ begin {align *} AUC & = T + U \\ & = \ frac {A} {2 (A + C)} + \ frac {D} {2 (B + D)} \\ & = \ frac {SE + SP} {2} \ end { alinhar *} $$

Para concluir

Você pode calcular tecnicamente um ROC AUC para um classificador binário a partir da matriz de confusão. Mas, para o caso de não ter sido claro, deixe-me repetir uma última vez: NÃO “T FAÇA!

Referências

(1) DeLong ER, DeLong DM, Clarke-Pearson DL: Comparando as áreas sob duas ou mais curvas de características operacionais de receptor correlacionadas: uma abordagem não paramétrica. Biometrics 1988, 44: 837-845. https://www.jstor.org/stable/2531595

Comentários

  • Este exemplo com um único ponto pode ser realmente enganoso. Por exemplo, tendo o ponto em (1, 0) resultará em AUC = 1 de acordo com seus cálculos. A área sob o ponto é sempre zero. Se você realmente precisa resumir a tabela de contingência, use pontuação f1 ou conhecimento.
  • @PavelTyshevskyi A curva ROC é sempre uma curva, nunca um único ponto. Lembre-se de que mostra especificidade 1, que é provavelmente o que o confunde.
  • @PavelTyshevskyi Quero dizer (1, 0) é na verdade especificidade 0 sensibilidade 0, então a AUC será 0 conforme o esperado.
  • Você ' está certo, eu ' me confundi com o eixo. Ainda não ' soa bem com (0, 0) e (1, 1) sendo usado para construir uma área junto com se, sp da matriz de contingência, de alguma forma. Obrigado pelo esclarecimento.
  • @PavelTyshevskyi você pode ser um pouco mais específico, talvez? A resposta está correta e acho que mostro claramente por que você não deve ' não fazer isso em primeiro lugar. Mas eu garanto a você, está absolutamente correto.

Resposta

Quando eu afirmo que todos eles são negativos, então, sensibilidade (y) = 0, 1 – especificidade (x) = 0. Se eu reivindicar o positivo / negativo de acordo com os resultados do teste, então y = A / (A + C), x = B / (B + D). Quando digo que todos eles são positivos, então y = 1 ex = 1.

Com base em três pontos com coordenada (0,0) (A / (A + C), B / (B + D)) (1,1), (na ordem (y, x)), é fácil calcular a área sob a curva usando a fórmula para a área do triângulo.

Resultado final: Area = $ \ frac {AB + 2AD + 2CD} {(A + C) (B + D)} $ ? Precisa ser verificado.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *