Importance statistique (valeur p) pour comparer deux classificateurs en ce qui concerne l'ASC ROC (moyenne), la sensibilité et la spécificité

14

J'ai un ensemble de tests de 100 cas et deux classificateurs.

J'ai généré des prédictions et calculé l'ASC ROC, la sensibilité et la spécificité pour les deux classificateurs.

Question 1: Comment puis-je calculer la valeur de p pour vérifier si l'un est significativement meilleur que l'autre en ce qui concerne tous les scores (ROC AUC, sensibilité, spécificité)?


Maintenant, pour le même ensemble de tests de 100 cas, j'ai des affectations de fonctionnalités différentes et indépendantes pour chaque cas. En effet, mes fonctionnalités sont fixes mais subjectives et fournies par plusieurs (5) sujets.

J'ai donc évalué à nouveau mes deux classificateurs pour 5 "versions" de mon jeu de test et obtenu 5 AUC ROC, 5 sensibilités et 5 spécificités pour les deux classificateurs. Ensuite, j'ai calculé la moyenne de chaque mesure de performance pour 5 sujets (moyenne ROC AUC, sensibilité moyenne et spécificité moyenne) pour les deux classificateurs.

Question 2: Comment puis-je calculer la valeur de p pour vérifier si l'un est significativement meilleur que l'autre en ce qui concerne les scores moyens (ASC ROC moyen, sensibilité moyenne, spécificité moyenne)?


Les réponses avec un exemple de python (de préférence) ou de code MatLab sont plus que bienvenues.

kostek
la source
Faites une comparaison directe de la précision, de l'exactitude et de l'AuC pour obtenir le meilleur classificateur parmi les deux. La valeur P n'a pas de sens ici. La valeur de p est utilisée dans le contexte de l'évaluation si le modèle se porte mieux que les affectations aléatoires / 50-50 (comme test d'hypothèse nulle / alternative)
Nishad
2
Tout d'abord, je ne suis pas d'accord pour dire que la comparaison de deux mesures de performance utilisant la valeur de p n'a pas de sens ici. Je vois qu'un classificateur a AUC 0,80 et l'autre 0,85. Mon hypothèse nulle serait qu'il n'y a pas de différence de performance entre les deux petites annonces. Je veux savoir si la différence est statistiquement significative.
kostek
2
Deuxièmement, je ne fais pas 5 versions de mon modèle. J'ai deux modèles formés sur un ensemble de formation distinct et maintenant je les évalue sur 5 «versions» différentes de mon ensemble de test. J'ai une performance moyenne pour les deux classificateurs (par exemple 0,81 AUC et 0,84 AUC) et je veux vérifier si la différence est statistiquement significative.
kostek
1
Je ne dirais pas que ce que je fais est proche de la validation croisée. Dans mon cas, les valeurs des fonctionnalités dépendent du sujet qui les fournit. Je sais que l'ASC peut être utilisée pour comparer des modèles, mais je veux savoir si, dans mon contexte, le résultat de ma comparaison est statistiquement significatif. Je suis sûr que cela peut être fait et que cela a beaucoup de sens de le faire. Ma question est de savoir comment le faire.
kostek
3
Je ne suis pas sûr de ce que @Nishad veut dire, vous pouvez et devez utiliser un test d'hypothèse pour déterminer si vos modèles sont significativement différents les uns des autres. Les écarts-types de vos mesures existent et diminuent à mesure que la taille de l'échantillon augmente (toutes choses étant égales par ailleurs). Une différence AUC entre 0,8 et 0,9 peut ne pas être significative si vous n'avez que 10 échantillons, mais peut être très significative si vous avez 10M d'échantillons. Je ne vois pas non plus de relation avec la validation croisée. Je voterais contre les commentaires si je le pouvais.
Nuclear Wang

Réponses:

11

Wojtek J. Krzanowski et David J. Hand ROC Curves for Continuous Data (2009) est une excellente référence pour tout ce qui concerne les courbes ROC. Il recueille un certain nombre de résultats dans ce qui est une base de littérature frustrante, qui utilise souvent une terminologie différente pour discuter du même sujet.

En outre, ce livre propose des commentaires et des comparaisons de méthodes alternatives qui ont été dérivées pour estimer les mêmes quantités, et souligne que certaines méthodes émettent des hypothèses qui peuvent être intenables dans des contextes particuliers. C'est un de ces contextes; d'autres réponses font état de la méthode Hanley & McNeil, qui suppose le modèle binormal pour les distributions de scores, ce qui peut être inapproprié dans les cas où la distribution des scores de classe n'est pas (proche) de la normale. L'hypothèse de scores normalement distribués semble particulièrement inappropriée dans les contextes d' modernes , les modèles communs typiques tels que ont tendance à produire des scores avec une distribution "en baignoire" pour les tâches de classification (c'est-à-dire, les distributions avec des densités élevées dans les extrêmes proches de 0 et 1 ).

Question 1 - AUC

La section 6.3 discute des comparaisons de l'AUC ROC pour deux courbes ROC (pp 113-114). En particulier, je crois comprendre que ces deux modèles sont corrélés, donc les informations sur la façon de calculer sont d'une importance cruciale ici; sinon, votre statistique de test sera biaisée car elle ne tient pas compte de la contribution de la corrélation.r

Dans le cas des courbes ROC non corrélées qui ne sont basées sur aucune hypothèse de distribution paramétrique, les statistiques pour les tets et les intervalles de confiance comparant les ASC peuvent être directement basées sur des estimations et des valeurs de l'ASC et des estimations de leurs écarts types et , comme indiqué dans la section 3.5.1: ^ AUC 2S1S2AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Pour étendre ces tests au cas où les mêmes données sont utilisées pour les deux classificateurs, nous devons tenir compte de la corrélation entre les estimations de l'ASC:

z=AUC^1AUC^2S12+S22rS1S2

où est l'estimation de cette corrélation. Hanley et McNeil (1983) ont fait une telle extension, basant leur analyse sur le cas binormal, mais n'ont donné qu'un tableau montrant comment calculer le coefficient de corrélation estimé partir de la corrélation des deux classificateurs de la classe P, et la corrélation de des deux classificateurs de la classe N, en disant que la dérivation mathématique était disponible sur demande. Divers autres auteurs (par exemple Zou, 2001) ont développé des tests basés sur le modèle binormal, en supposant qu'une transformation appropriée peut être trouvée qui transformera simultanément les distributions des scores des classes P et N en normales.r r P r nrrrPrn

DeLong et al (1988) ont profité de l'identité entre l'ASC et la statistique du test de Mann-Whitney, ainsi que des résultats de la théorie des statistiques généralisées dues à Sen (1960), pour dériver une estimation de la corrélation entre les AUC qui ne repose pas sur l'hypothèse binormale. En fait, DeLong et al (1988) ont présenté les résultats suivants pour les comparaisons entre les classificateurs .k 2Uk2

Dans la section 3.5.1, nous avons montré que l'aire sous la courbe empirique ROC était égale à la statistique Mann-Whitney et était donnée parU

sPi,i=1,,nPPsNj,j=1,,nNNks r N j ,j=1nNs r P i ,j=1,,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
où sont le score des objets de classe et sont les scores des objets de classe dans l'échantillon. Supposons que nous ayons classificateurs, produisant des scores et [J'ai corrigé une erreur d'indexation dans cette partie - Sycorax] et . DéfinirsPi,i=1,,nPPsNj,j=1,,nNNksNjr,j=1nN^ A U C r , r = 1 , , ksPir,j=1,,nPAUC^r,r=1,,k

V r 01 =1

V10r=1nNj=1nN[I(sPir>sNjr)+12I(sPir=sNjr)],i=1,,nP
et
V01r=1nPi=1nP[I(sPir>sNjr)+12I(sPir=sNjr)],j=1,,nN

ensuite, définissez la matrice avec e élément et la matrice avec e élément Alors la matrice de covariance estimée pour le vecteur des aires estimées sous les courbes est W 10 ( r , s ) w r , s 10 = 1k×kW10(r,s)k×kW01(r,s)w r , s 01 =1

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
k×kW01(r,s)( ^ A U C 1,, ^ A U C k)W=1
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
(AUC^1,,AUC^k)
W=1nPW10+1nNW01
avec les éléments . Il s'agit d'une généralisation du résultat de la variance estimée d'une AUC estimée unique, également donnée dans la section 3.5.1. Dans le cas de deux classificateurs, la corrélation estimée entre les ASC estimées est donc donnée par qui peut être utilisé dans ci-dessus.wr,srw1,2w1,1w2,2z

Puisqu'une autre réponse donne les expressions de Hanley et McNeil pour les estimateurs de la variance AUC, je reproduis ici l'estimateur DeLong à partir de p. 68:

L'approche alternative due à DeLong et al (1988) et illustrée par Pepe (2003) donne peut-être une estimation plus simple, et qui introduit le concept supplémentaire utile d'une valeur de placement. La valeur de placement d'un score par rapport à une population spécifiée est la fonction de survivant de cette population à . Cette valeur de placement pour dans la population N est et pour dans la population P est . Les estimations empiriques des valeurs de placement sont données par les proportions évidentes. Ainsi, la valeur de placement de l'observation dans la population P notée , est la proportion de valeurs d'échantillon de P qui dépassentsss1F(s)s1G(s)sNisNiPsNi , et est la variance des valeurs de placement de chaque observation de N par rapport à la population P ...var(sPiN)

L'estimation de DeLong et al (1988) de la variance de est donnée en fonction de ces variances: AUC^

s2(AUC^)=1nPvar(sPiN)+1nNvar(sNiP)

Notez que est la fonction de distribution cumulative des scores dans la population N et est la fonction de distribution cumulative des scores dans la population P. Une façon standard d'estimer et est d'utiliser l' . Le livre fournit également quelques méthodes alternatives aux estimations ecdf, telles que l'estimation de la densité du noyau, mais cela n'entre pas dans le cadre de cette réponse.FGFG

Les statistiques et peuvent être supposées être des écarts normaux normaux, et les tests statistiques de l'hypothèse nulle se déroulent de la manière habituelle. (Voir aussi: )Zz

Voici un aperçu simplifié de haut niveau du fonctionnement du test d'hypothèse:

  • Tester, selon vos mots, "si un classificateur est significativement meilleur que l'autre" peut être reformulé comme testant l'hypothèse nulle selon laquelle les deux modèles ont des AUC statistiquement égales par rapport à l'hypothèse alternative selon laquelle les statistiques sont inégales.

  • Il s'agit d'un test bilatéral.

  • Nous rejetons l'hypothèse nulle si la statistique de test se trouve dans la région critique de la distribution de référence, qui est une distribution normale standard dans ce cas.

  • La taille de la région critique dépend du niveau du test. Pour un niveau de signification de 95%, la statistique de test tombe dans la région critique si ou . (Ce sont les quantiles et de la distribution normale standard.) Sinon, vous ne parvenez pas à rejeter l'hypothèse nulle et les deux modèles sont statistiquement liés.αz>1.96z<1.96α/21α/2

Question 1 - Sensibilité et spécificité

La stratégie générale pour comparer la sensibilité et la spécificité consiste à observer que ces deux statistiques équivalent à effectuer une inférence statistique sur les proportions, et c'est un problème standard et bien étudié. Plus précisément, la sensibilité est la proportion de la population P qui a un score supérieur à un certain seuil , et de même pour la spécificité par rapport à la population N: t

sensitivity=tp=P(sP>t)1specificity=fp=P(sN>t)

Le principal point d'achoppement est de développer le test approprié étant donné que les deux proportions d'échantillon seront corrélées (car vous avez appliqué deux modèles aux mêmes données de test). Cette question est abordée à la p. 111.

En ce qui concerne des tests particuliers, plusieurs statistiques récapitulatives se réduisent à des proportions pour chaque courbe, de sorte que des méthodes standard de comparaison des proportions peuvent être utilisées. Par exemple, la valeur de pour fixe est une proportion, tout comme le taux de classification erronée pour le seuil fixe . On peut ainsi comparer des courbes, à l'aide de ces mesures, au moyen de tests standards pour comparer des proportions. Par exemple, dans le cas non apparié, nous pouvons utiliser la statistique de test , où est le véritable taux positif pour la courbe comme point en question, et est le somme des variances de et ...tpfpt(tp1tp2)/s12tpiis122tp1tp2

Pour le cas apparié, cependant, on peut dériver un ajustement qui permet la covariance entre et , mais une alternative est d'utiliser le test de McNemar pour les proportions corrélées (Marascuilo et McSweeney, 1977).tp1tp2

Le est approprié lorsque vous avez sujets, et chaque sujet est testé deux fois, une fois pour chacun des deux résultats dichotomiques. Compte tenu des définitions de la sensibilité et de la spécificité, il devrait être évident que c'est exactement le test que nous recherchons, puisque vous avez appliqué deux modèles aux mêmes données de test et calculé la sensibilité et la spécificité à un certain seuil.N

Le test de McNemar utilise une statistique différente, mais une hypothèse nulle et alternative similaire. Par exemple, compte tenu de la sensibilité , l'hypothèse nulle est que la proportion , et l'alternative est . En réorganisant les proportions pour en faire des nombres bruts , nous pouvons écrire une table de contingence où le nombre de cellules est donné par comptage les vrais positifs et faux négatifs selon chaque modèletp1=tp2tp1tp2

Model 1 Positive at tModel 1 Negative at tModel 2 Positive at tabModel 2 Negative at tcd

a=i=1nPI(sPi1>t)I(sPi2>t)b=i=1nPI(sPi1t)I(sPi2>t)c=i=1nPI(sPi1>t)I(sPi2t)d=i=1nPI(sPi1t)I(sPi2t)

et nous avons la statistique de test qui est distribuée comme une distribution chi carré avec 1 degré de liberté. Avec un niveau , l'hypothèse nulle est rejetée pour .

M=(bc)2b+c
χ12α=95%M>3.841459

Pour la spécificité , vous pouvez utiliser la même procédure, sauf que vous remplacez le par le .sPirsNjr

question 2

Il semble qu'il suffit de fusionner les résultats en faisant la moyenne des valeurs de prédiction pour chaque répondant, de sorte que pour chaque modèle, vous avez 1 vecteur de 100 valeurs prédites moyennes. Calculez ensuite l'AUC ROC, les statistiques de sensibilité et de spécificité comme d'habitude, comme si les modèles originaux n'existaient pas. Cela reflète une stratégie de modélisation qui traite chacun des modèles des 5 répondants comme faisant partie d'un «comité» de modèles, un peu comme un ensemble.

Sycorax dit de réintégrer Monica
la source
Merci pour votre réponse et les références fournies. Qu'en est-il des valeurs de p pour la sensibilité et la spécificité?
kostek
Pour Q1, cela signifie-t-il qu'il n'y a pas de différence entre le calcul de la valeur de p pour la sensibilité et la spécificité et qu'ils ont tous les deux toujours la même valeur de p et que je crée simplement un tableau de contingence et exécute le test McNemar dessus?
kostek
Non, vous feriez un test pour chacun.
Sycorax dit Réintégrer Monica le
C'est une réponse très détaillée, merci. À propos de McNemar-test; quels sont exactement ? Quelles sont ces proportions? a,b,c,d
Drey
@Drey Ce ne sont pas des proportions; ce sont des comptes. Je le fais explicitement dans une révision.
Sycorax dit Réintégrer Monica le
2

Permettez-moi de garder la réponse courte, car ce guide explique beaucoup plus et mieux .

Fondamentalement, vous avez votre nombre de vrais postifs ( ) et le nombre de vrais négatifs ( ). Vous avez également votre AUC, A. L'erreur standard de ce A est:nTPnTN

SEA=A(1A)+(nTP1)(Q1A2)+(nTN1)(Q2A2)nTPnTN

avec et .Q1=A/(2A)Q2=2A2/(1+A)

Pour comparer deux AUC, vous devez calculer le SE des deux en utilisant:

SEA1A2=(SEA1)2+(SEA2)22r(SEA1)(SEA2)

où est une quantité qui représente la corrélation induite entre les deux zones par l'étude du même ensemble de cas. Si vos cas sont différents, alors ; sinon, vous devez le rechercher (tableau 1, page 3 de l'article disponible gratuitement).rr=0

Étant donné que vous calculez le Score parz

z=(A1A2)/SEA1A2

De là, vous pouvez calculer la valeur de p en utilisant la densité de probabilité d'une distribution normale standard. Ou utilisez simplement cette calculatrice.

J'espère que cela répond à la question 1 . - au moins la partie comparant les ASC. Sens / Spec est déjà couvert par le ROC / AUC d'une manière ou d'une autre. Sinon, la réponse, je pense, réside dans la question 2.

Quant à la question 2 , le théorème de limite centrale nous dit que votre statistique récapitulative suivrait une distribution normale. Par conséquent, je pense qu'un simple test t suffirait (5 mesures d'un classificateur contre 5 mesures du deuxième classificateur où les mesures pourraient être AUC, sens, spec)

Edit: formule corrigée pour ( )- 2 r SE2r

Drey
la source
Merci pour les liens fournis. Pour la question 1, si je définissais A comme sensibilité ou spécificité, les équations pour SE et z-Score seraient-elles valables?
kostek
Non, car sens ne gère que les TP et spec gère les TN. Il est possible de calculer des intervalles de confiance pour sens / spec avec une proportion binomiale CI , mais soyez vigilant (petite taille d'échantillon?). Votre serait sens ou spec. Si les IC se chevauchent dans votre comparaison, alors la différence ne serait pas statistiquement significative sous le niveau alpha. p^
Drey
0

Pour la question 1, @Sycorax a fourni une réponse complète.

Pour la question 2, à ma connaissance, la moyenne des prévisions des sujets est incorrecte. J'ai décidé d'utiliser le bootstrap pour calculer les valeurs de p et comparer les modèles.

Dans ce cas, la procédure est la suivante:

For N iterations:
  sample 5 subjects with replacement
  sample 100 test cases with replacement
  compute mean performance of sampled subjects on sampled cases for model M1
  compute mean performance of sampled subjects on sampled cases for model M2
  take the difference of mean performance between M1 and M2
p-value equals to the proportion of differences smaller or equal than 0

Cette procédure effectue un test unilatéral et suppose que M1 performances moyennes> M2 performances moyennes.

Une implémentation Python du bootstrap pour calculer les valeurs de p comparant plusieurs lecteurs peut être trouvée dans ce dépôt GitHub: https://github.com/mateuszbuda/ml-stat-util

kostek
la source