Statistische Signifikanz (p-Wert) für den Vergleich zweier Klassifikatoren hinsichtlich (mittlerer) ROC AUC, Sensitivität und Spezifität

13

Ich habe einen Testsatz von 100 Fällen und zwei Klassifikatoren.

Ich erstellte Vorhersagen und berechnete die ROC AUC, Sensitivität und Spezifität für beide Klassifikatoren.

Frage 1: Wie kann ich den p-Wert berechnen, um zu überprüfen, ob einer in Bezug auf alle Scores (ROC AUC, Sensitivität, Spezifität) signifikant besser als der andere ist?


Jetzt habe ich für den gleichen Testsatz von 100 Fällen unterschiedliche und unabhängige Funktionszuweisungen für jeden Fall. Dies liegt daran, dass meine Funktionen festgelegt, aber subjektiv sind und von mehreren (5) Personen bereitgestellt werden.

Also habe ich meine beiden Klassifikatoren erneut für 5 "Versionen" meines Testsatzes bewertet und 5 ROC AUCs, 5 Sensitivitäten und 5 Spezifitäten für beide Klassifikatoren erhalten. Dann berechnete ich den Mittelwert jeder Leistungsmessung für 5 Probanden (mittlere ROC AUC, mittlere Sensitivität und mittlere Spezifität) für beide Klassifikatoren.

Frage 2: Wie kann ich den p-Wert berechnen, um zu überprüfen, ob einer in Bezug auf die Durchschnittswerte (durchschnittliche ROC AUC, durchschnittliche Sensitivität, durchschnittliche Spezifität) signifikant besser als der andere ist?


Antworten mit einem Beispiel für Python (vorzugsweise) oder MatLab-Code sind mehr als willkommen.

kostek
quelle
Vergleichen Sie Präzision, Genauigkeit und AuC direkt, um den besten Klassifikator unter den beiden zu erhalten. P-Wert macht hier keinen Sinn. Der p-Wert wird im Zusammenhang mit der Bewertung verwendet, ob das Modell besser
abschneidet
2
Erstens stimme ich nicht zu, dass der Vergleich zweier Leistungskennzahlen mit p-Wert hier keinen Sinn ergibt. Ich sehe, dass ein Klassifikator AUC 0,80 und der andere 0,85 hat. Meine Nullhypothese wäre, dass es keinen Unterschied in der Leistung beider Kleinanzeigen gibt. Ich möchte wissen, ob der Unterschied statistisch signifikant ist.
Kostek
2
Zweitens mache ich keine 5 Versionen meines Modells. Ich habe zwei Modelle in einem separaten Trainingssatz trainiert und bewerte sie nun anhand von 5 verschiedenen „Versionen“ meines Testsatzes. Ich habe eine mittlere Leistung für beide Klassifikatoren (z. B. 0,81 AUC und 0,84 AUC) und möchte prüfen, ob der Unterschied statistisch signifikant ist.
Kostek
1
Ich würde nicht sagen, dass das, was ich tue, der Quervalidierung nahe kommt. In meinem Fall hängen die Werte von Features von dem Thema ab, das sie bereitstellt. Ich weiß, dass AUC zum Vergleichen von Modellen verwendet werden kann, aber ich möchte wissen, ob das Ergebnis meines Vergleichs in meiner Umgebung statistisch signifikant ist. Ich bin mir sicher, dass dies möglich und sinnvoll ist. Meine Frage ist, wie es geht.
Kostek
3
Ich bin mir nicht sicher, worauf @Nishad abzielt. Sie können und sollten einen Hypothesentest verwenden, um festzustellen, ob sich Ihre Modelle erheblich voneinander unterscheiden. Die Standardabweichungen Ihrer Metriken sind vorhanden und werden mit zunehmender Stichprobengröße kleiner (alle anderen Faktoren sind gleich). Ein AUC-Unterschied zwischen 0,8 und 0,9 ist möglicherweise nicht signifikant, wenn Sie nur 10 Proben haben, aber möglicherweise sehr signifikant, wenn Sie 10 Millionen Proben haben. Ich sehe auch keine Beziehung zur Kreuzvalidierung. Würde die Kommentare runterstimmen, wenn ich könnte.
Nuclear Wang

Antworten:

11

Wojtek J. Krzanowski und David J. Hand ROC-Kurven für kontinuierliche Daten (2009) sind eine großartige Referenz für alle Dinge, die mit ROC-Kurven zu tun haben. Es sammelt eine Reihe von Ergebnissen in einer frustrierend breiten Literaturbasis, in der häufig unterschiedliche Begriffe verwendet werden, um dasselbe Thema zu diskutieren.

Darüber hinaus bietet dieses Buch Kommentare und Vergleiche zu alternativen Methoden, die zur Schätzung derselben Größen hergeleitet wurden, und weist darauf hin, dass einige Methoden Annahmen treffen, die in bestimmten Zusammenhängen möglicherweise unhaltbar sind. Dies ist ein solcher Kontext; Andere Antworten geben die Hanley & McNeil-Methode an, bei der das Binormalmodell für die Verteilung von Punktzahlen zugrunde gelegt wird. Dies kann in Fällen ungeeignet sein, in denen die Verteilung von Klassenpunktzahlen nicht (nahezu) normal ist. Die Annahme normalverteilter Punktzahlen scheint in modernen besonders ungeeignet zu sein. Typische gängige Modelle wie tendieren dazu, Punktzahlen mit einer "Badewanne" -Verteilung für Klassifizierungsaufgaben zu erzeugen ( Verteilungen mit hohen Dichten in den Extremen nahe 0 und 1) ).

Frage 1 - AUC

In Abschnitt 6.3 werden Vergleiche der ROC-AUC für zwei ROC-Kurven erörtert (S. 113-114). Insbesondere ist mein Verständnis , dass diese beiden Modelle sind korreliert, so dass die Informationen darüber , wie zu berechnen von entscheidender Bedeutung ist hier; Andernfalls wird Ihre Teststatistik verzerrt, da der Korrelationsbeitrag nicht berücksichtigt wird.r

Für den Fall von nicht korrelierten ROC-Kurven, die nicht auf parametrischen Verteilungsannahmen basieren, können Statistiken für Tets und Konfidenzintervalle, die AUCs vergleichen, direkt auf Schätzungen und ^ AUC 2 der AUC-Werte und Schätzungen ihrer Standardabweichungen S 1 und S 2 basieren S 2 gemäß Nummer 3.5.1:AUC^1AUC^2S1S2

Z=AUC^1AUC^2S12+S22

Um solche Tests auf den Fall auszudehnen, dass für beide Klassifikatoren dieselben Daten verwendet werden, müssen wir die Korrelation zwischen den AUC-Schätzungen berücksichtigen:

z=AUC^1AUC^2S12+S22rS1S2

wobei die Schätzung dieser Korrelation ist. Hanley und McNeil (1983) haben eine solche Erweiterung vorgenommen, wobei sie ihre Analyse auf den binormalen Fall gestützt haben. Sie haben jedoch nur eine Tabelle angegeben, aus der hervorgeht, wie der geschätzte Korrelationskoeffizient r aus der Korrelation r P der beiden Klassifikatoren innerhalb der Klasse P und der Korrelation von berechnet wird r n der beiden Klassifikatoren innerhalb der Klasse N, wobei angegeben wird, dass die mathematische Ableitung auf Anfrage verfügbar war. Verschiedene andere Autoren (z. B. Zou, 2001) haben Tests basierend auf dem binormalen Modell entwickelt, unter der Annahme, dass eine geeignete Transformation gefunden werden kann, die gleichzeitig die Punkteverteilungen der Klassen P und N in normal transformiert.rrrPrn

DeLong et al. (1988) nutzten die Identität zwischen AUC und der Mann-Whitney-Teststatistik zusammen mit Ergebnissen aus der Theorie der verallgemeinerten Statistik von Sen (1960), um einen Schätzwert für die Korrelation zwischen den AUCs abzuleiten verlässt sich nicht auf die binormale Annahme. DeLong et al. (1988) präsentierten die folgenden Ergebnisse für Vergleiche zwischen k 2 Klassifikatoren.Uk2

In Abschnitt 3.5.1 haben wir gezeigt, dass die Fläche unter der empirischen ROC-Kurve der Mann-Whitney- Statistik entspricht und von gegeben wurdeU

wobeisPi,i=1,...,nPdie Punktzahl für dieObjekteder KlassePundsNj,j=1,...,nNdie Punktzahl für sind die Klasse-N-Objekte in der Stichprobe. Angenommen, wir habenkKlassifikatoren, die die Punktes r N j ergeben ,

AUC^=1nNnPi=1nNj=1nP[I(sPj>sNi)+12I(sPj=sNi)]
sPi,i=1,,nPPsNj,j=1,,nNNk und s r P i , j = 1 , , n P [Ich habe einen Indexierungsfehler in diesem Teil korrigiert - Sycorax] und ^ A U C r , r = 1 , , k . DefinierensNjr,j=1nNsPir,j=1,,nPAUC^r,r=1,,k

und V r 01 =1

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

next, define the k×k matrix W10 with (r,s)th element

w10r,s=1nP1i=1nP[V10r(sPi)AUC^r][V10s(sPi)AUC^s]
and the k×k matrix W01 with (r,s)th element
w01r,s=1nN1i=1nN[V01r(sNi)AUC^r][V01s(sNi)AUC^s]
Then the estiamted covariance matrix for the vector (AUC^1,,AUC^k) of the estimated areas under the curves is
W=1nPW10+1nNW01
with elements wr,s. This is a generalization of the result for the estimated variance of a single estiamted AUC, also given in section 3.5.1. In the case of two classifiers, the estiamted correlation r between the estimated AUCs is thus given by w1,2w1,1w2,2 which can be used in z above.

Since another answers gives the Hanley and McNeil expressions for estimators of AUC variance, here I'll reproduce the DeLong estimator from p. 68:

The alternative approach due to DeLong et al (1988) and exemplified by Pepe (2003) gives perhaps a simpler estimate, and one that introduces the extra useful concept of a placement value. The placement value of a score s with reference to a specified population is that population's survivor function at s. This the placement value for s in population N is 1F(s) and for s in population P it is 1G(s). Empirical estimates of placement values are given by the obvious proportions. Thus the placement value of observation sNi in population P denoted sNiP, is the proportion of sample values from P that exceed sNi, and var(sPiN) is the variance of the placement values of each observation from N with respect to population P...

The DeLong et al (1988) estimate of variance of AUC^ is given in terms of these variances:

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

Note that F is the cumulative distribution function of the scores in population N and G is the cumulative distribution function of the scores in population P. A standard way to estimate F and G is to use the . The book also provides some alternative methods to the ecdf estimates, such as kernel density estimation, but that is outside the scope of this answer.

The statistics Z and z may be assumed to be standard normal deviates, and statistical tests of the null hypothesis proceed in the usual way. (See also: )

This is a simplified, high-level outline of how hypothesis testing works:

  • Testing, in your words, "whether one classifier is significantly better than the other" can be rephrased as testing the null hypothesis that the two models have statistically equal AUCs against the alternative hypothesis that the statistics are unequal.

  • This is a two-tailed test.

  • We reject the null hypothesis if the test statistic is in the critical region of the reference distribution, which is a standard normal distribution in this case.

  • The size of the critical region depends on the level α of the test. For a significance level of 95%, the test statistic falls in the critical region if z>1.96 or z<1.96. (These are the α/2 and 1α/2 quantiles of the standard normal distribution.) Otherwise, you fail to reject the null hypothesis and the two models are statistically tied.

Question 1 - Sensitivity and Specificity

The general strategy for comparing sensitivity and specificity is to observe that both of these statistics amount to performing statistical inference on proportions, and this is a standard, well-studied problem. Specifically, sensitivity is the proportion of population P that has a score greater than some threshold t, and likewise for specificity wrt population N:

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

The main sticking point is developing the appropriate test given that the two sample proportions will be correlated (as you've applied two models to the same test data). This is addressed on p. 111.

Turning to particular tests, several summary statistics reduce to proportions for each curve, so that standard methods for comparing proportions can be used. For example, the value of tp for fixed fp is a proportion, as is the misclassification rate for fixed threshold t. We can thus compare curves, using these measures, by means of standard tests to compare proportions. For example, in the unpaired case, we can use the test statistic (tp1tp2)/s12, where tpi is the true positive rate for curve i as the point in question, and s122 is the sum of the variances of tp1 and tp2...

For the paired case, however, one can derive an adjustment that allows for the covariance between tp1 and tp2, but an alternative is to use McNemar's test for correlated proportions (Marascuilo and McSweeney, 1977).

The is appropriate when you have N subjects, and each subject is tested twice, once for each of two dichotomous outcomes. Given the definitions of sensitivity and specificity, it should be obvious that this is exactly the test that we seek, since you've applied two models to the same test data and computed sensitivity and specificity at some threshold.

The McNemar test uses a different statistic, but a similar null and alternative hypothesis. For example, considering sensitivity, the null hypothesis is that the proportion tp1=tp2, and the alternative is tp1tp2. Re-arranging the proportions to instead be raw counts, we can write a contingency table

Model 1 Positive at tModel 1 Negative at tModel 2 Positive at tabModel 2 Negative at tcd
where cell counts are given by counting the true positives and false negatives according to each model

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)

and we have the test statistic

M=(bc)2b+c
which is distributed as χ12 a chi-squared distribution with 1 degree of freedom. With a level α=95%, the null hypothesis is rejected for M>3.841459.

For the specificity, you can use the same procedure, except that you replace the sPir with the sNjr.

Question 2

It seems that it is sufficient to merge the results by averaging the prediction values for each respondent, so that for each model you have 1 vector of 100 averaged predicted values. Then compute the ROC AUC, sensitivty and specificity statistics as usual, as if the original models didn't exist. This reflects a modeling strategy that treats each of the 5 respondents' models as one of a "committee" of models, sort of like an ensemble.

Sycorax says Reinstate Monica
quelle
Thanks for your answer and provided references. What about p-values for sensitivity and specificity?
kostek
For Q1, does it mean that there is no difference between computing p-value for sensitivity and specificity and that they both always have the same p-value and I simply make a contingency table and run McNemar test on it?
kostek
No, you’d do one test for each.
Sycorax says Reinstate Monica
That is a very detailed answer, thank you. About McNemar-test; what are exactly a,b,c,d? What proportions are these?
Drey
@Drey They're not proportions; they're counts. I make this explicit in a revision.
Sycorax says Reinstate Monica
2

Let me keep the answer short, because this guide does explain a lot more and better.

Basically, you have your number of True Postives (nTP) and number of True Negatives (nTN). Also you have your AUC, A. The standard error of this A is:

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

with Q1=A/(2A) and Q2=2A2/(1+A).

To compare two AUCs you need to compute the SE of them both using:

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

where r is a quantity that represents the correlation induced between the two areas by the study of the same set of cases. If your cases are different, then r=0; otherwise you need to look it up (Table 1, page 3 in freely available article).

Given that you compute the z-Score by

z=(A1A2)/SEA1A2

From there you can compute p-value using probability density of a standard normal distribution. Or simply use this calculator.

This hopefully answers Question 1. - at least the part comparing AUCs. Sens/Spec is already covered by the ROC/AUC in some way. Otherwise, the answer I think lies in the Question 2.

As for Question 2, Central Limit Theorem tells us that your summary statistic would follow a normal distribution. Hence, I would think a simple t-test would suffice (5 measures of one classifier against 5 measures of the second classifier where measures could be AUC, sens, spec)

Edit: corrected formula for SE (2r)

Drey
quelle
Thanks for provided links. For Question 1, If I set A to be sensitivity or specificity, would the equations for SE and z-Score hold?
kostek
No, because sens only handles TPs and spec handles TNs. It is possible to compute confidence intervals for sens/spec with Binomial proportion CI, but be vigilant (small sample size?). Your p^ would be sens or spec. If CIs overlap in your comparison, then the difference would be not statistically significant under the alpha-level.
Drey
0

For Question 1, @Sycorax provided a comprehensive answer.

For Question 2, to the best of my knowledge, averaging predictions from subjects is incorrect. I decided to use bootstrapping to compute p-values and compare models.

In this case, the procedure is as follows:

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

This procedure performs one-tailed test and assumes that M1 mean performance > M2 mean performance.

A Python implementation of bootstrapping for computing p-values comparing multiple readers can be found in this GitHub repo: https://github.com/mateuszbuda/ml-stat-util

kostek
quelle