Estoy buscando varias medidas de rendimiento para modelos predictivos. Se escribió mucho sobre problemas de uso de precisión, en lugar de algo más continuo para evaluar el rendimiento del modelo. Frank Harrell http://www.fharrell.com/post/class-damage/ proporciona un ejemplo cuando agregar una variable informativa a un modelo conducirá a una caída en la precisión, claramente contraintuitiva y una conclusión errónea.
Sin embargo, en este caso, esto parece ser causado por tener clases desequilibradas y, por lo tanto, puede resolverse simplemente usando precisión equilibrada ((sens + spec) / 2). ¿Hay algún ejemplo en el que el uso de la precisión en un conjunto de datos equilibrado conduzca a conclusiones claramente erróneas o contradictorias?
Editar
Estoy buscando algo donde la precisión disminuirá incluso cuando el modelo sea claramente mejor, o que el uso de la precisión conduzca a una selección falsa positiva de algunas características. Es fácil hacer ejemplos falsos negativos, donde la precisión es la misma para dos modelos donde uno es claramente mejor usando otros criterios.
Respuestas:
Voy a engañar
Específicamente, he argumentado a menudo (por ejemplo, aquí ) que la parte estadística del modelado y la predicción se extiende solo a hacer predicciones probabilísticas para los miembros de la clase (o dar densidades predictivas, en el caso del pronóstico numérico). Tratar una instancia específica como si perteneciera a una clase específica (o predicciones puntuales en el caso numérico), ya no es una estadística adecuada. Es parte del aspecto teórico de la decisión .
Y las decisiones no solo deben basarse en la predicción probabilística, sino también en los costos de las clasificaciones erróneas y en una serie de otras posibles acciones . Por ejemplo, incluso si solo tiene dos clases posibles, "enfermo" versus "saludable", podría tener una amplia gama de acciones posibles dependiendo de la probabilidad de que un paciente sufra la enfermedad, de enviarlo a casa porque es casi seguro que es saludable, darle dos aspirinas, realizar pruebas adicionales, llamar inmediatamente a una ambulancia y ponerlo en soporte vital.
Evaluar la precisión presupone tal decisión. La precisión como medida de evaluación para la clasificación es un error de categoría .
Entonces, para responder a su pregunta, caminaré por el camino de ese error de categoría. Consideraremos un escenario simple con clases equilibradas donde la clasificación sin tener en cuenta los costos de clasificación errónea nos inducirá a error.
Supongamos que una epidemia de Gutrot maligno corre desenfrenada en la población. Afortunadamente, podemos examinar a todos fácilmente por algún rasgot (0≤t≤1 ), y sabemos que la probabilidad de desarrollar MG depende linealmente de t , p=γt para algún parámetro γ (0≤γ≤1 ) El rasgot se distribuye uniformemente en la población.
Afortunadamente, hay una vacuna. Desafortunadamente, es costoso y los efectos secundarios son muy incómodos. (Dejaré que tu imaginación proporcione los detalles). Sin embargo, son mejores que sufrir de MG.
En aras de la abstracción, considero que en realidad solo hay dos posibles cursos de acción para un paciente dado, dado su valor de rasgot : vacunar o no vacunar.
Por lo tanto, la pregunta es: ¿cómo debemos decidir a quién vacunar y a quién no?t ? Seremos utilitarios al respecto y aspiraremos a tener los costos totales esperados más bajos. Es obvio que esto se reduce a elegir un umbralθ y vacunar a todos con t≥θ .
El modelo y la decisión 1 dependen de la precisión. Montar un modelo. Afortunadamente, ya conocemos el modelo. Elige el umbralθ que maximiza la precisión al clasificar pacientes y vacunar a todos cont≥θ . Fácilmente vemos esoθ=12γ es el número mágico, todos con t≥θ tiene una mayor probabilidad de contraer MG que no, y viceversa, por lo que este umbral de probabilidad de clasificación maximizará la precisión. Asumiendo clases balanceadas,γ=1 , vamos a vacunar a la mitad de la población. Curiosamente, siγ<12 , no vamos a vacunar a nadie . (Nos interesan principalmente las clases equilibradas, por lo que debemos dejar de lado que solo dejamos que una parte de la población muera como una muerte dolorosa horrible).
Huelga decir que esto no tiene en cuenta los costos diferenciales de la clasificación errónea.
El modelo y la decisión 2 aprovechan nuestra predicción probabilística ("dado su rasgot , su probabilidad de contraer MG es γt ") y la estructura de costos.
Primero, aquí hay un pequeño gráfico. El eje horizontal da el rasgo, el eje vertical la probabilidad de MG. El triángulo sombreado da la proporción de la población que contraerá MG. La línea vertical da algo de particularθ . La línea discontinua horizontal enγθ hará que los cálculos a continuación sean un poco más fáciles de seguir. Asumimosγ>12 , solo para hacer la vida más fácil.
Démosle nombres a nuestros costos y calculemos sus contribuciones al costo total esperado, dadoθ y γ (y el hecho de que el rasgo se distribuye uniformemente en la población).
(En cada trapecio, primero calculo el área del rectángulo, luego agrego el área del triángulo).
Los costos totales esperados sonc++((1−θ)γθ+12(1−θ)(γ−γθ))+c−+((1−θ)(1−γ)+12(1−θ)(γ−γθ))+c−−(θ(1−γθ)+12θγθ)+c+−12θγθ.
Al diferenciar y establecer la derivada en cero, obtenemos que los costos esperados se minimizan alθ∗=c−+−c−−γ(c+−+c−+−c++−c−−).
Esto es solo igual al valor de maximización de precisión deθ para una estructura de costos muy específica, es decir, si y solo si
12γ=c−+−c−−γ(c+−+c−+−c++−c−−),
o
12=c−+−c−−c+−+c−+−c++−c−−.
Como ejemplo, supongamos queγ=1 para clases equilibradas y que los costos son
c++=1,c−+=2,c+−=10,c−−=0.
Entonces la precisión maximizando θ=12 rendirá los costos esperados de 1.875 , mientras que el costo minimiza θ=211 rendirá los costos esperados de 1.318 .
En este ejemplo, basar nuestras decisiones en clasificaciones no probabilísticas que maximizan la precisión condujo a más vacunas y costos más altos que usar una regla de decisión que usara explícitamente las estructuras de costos diferenciales en el contexto de una predicción probabilística.
En pocas palabras: la precisión es solo un criterio de decisión válido si
En el caso general, evaluar la precisión hace una pregunta incorrecta, y maximizar la precisión es un error llamado tipo III: proporcionar la respuesta correcta a la pregunta incorrecta.
Código R:
fuente
levelplot( thetastar ~ cdminus + cdplus, data = data.table( expand.grid( cdminus = seq( 0, 10, 0.01 ), cdplus = seq( 0, 10, 0.01 ) ) )[ , .( cdminus, cdplus, thetastar = cdminus/(cdminus + cdplus) ) ] )
Podría valer la pena agregar otro ejemplo, quizás más directo, a la excelente respuesta de Stephen.
Consideremos una prueba médica, cuyo resultado se distribuye normalmente, tanto en personas enfermas como en personas sanas, con diferentes parámetros, por supuesto (pero por simplicidad, supongamos homoscedasticidad, es decir, que la varianza es la misma):T∣D⊖∼N(μ−,σ2)T∣D⊕∼N(μ+,σ2). Denotemos la prevalencia de la enfermedad con p (es decir D⊕∼Bern(p) ), por lo que esto, junto con lo anterior, que son distribuciones esencialmente condicionales, especifica completamente la distribución conjunta.
Así, la matriz de confusión con umbralb (es decir, aquellos con resultados de pruebas anteriores b están clasificados como enfermos) es ⎛⎝⎜T⊕T⊖D⊕p(1−Φ+(b))pΦ+(b)D⊖(1−p)(1−Φ−(b))(1−p)Φ−(b)⎞⎠⎟.
Enfoque basado en la precisión
La precisión esp(1−Φ+(b))+(1−p)Φ−(b),
tomamos su derivada wrtb , póngalo igual a 0, multiplique con 1πσ2−−−−√ y reorganizar un poco: −pφ+(b)+φ−(b)−pφ−(b)=0e−(b−μ−)22σ2[(1−p)−pe−2b(μ−−μ+)+(μ2+−μ2−)2σ2]=0 El primer término no puede ser cero, por lo que la única forma en que el producto puede ser cero es si el segundo término es cero: (1−p)−pe−2b(μ−−μ+)+(μ2+−μ2−)2σ2=0−2b(μ−−μ+)+(μ2+−μ2−)2σ2=log1−pp2b(μ+−μ−)+(μ2−−μ2+)=2σ2log1−pp So the solution is b∗=(μ2+−μ2−)+2σ2log1−pp2(μ+−μ−)=μ++μ−2+σ2μ+−μ−log1−pp.
Note that this - of course - doesn't depend on the costs.
If the classes are balanced, the optimum is the average of the mean test values in sick and healthy people, otherwise it is displaced based on the imbalance.
Cost-based approach
Using Stephen's notation, the expected overall cost isc++p(1−Φ+(b))+c−+(1−p)(1−Φ−(b))+c+−pΦ+(b)+c−−(1−p)Φ−(b). Take its derivate w.r.t b and set it equal to zero: −c++pφ+(b)−c−+(1−p)φ−(b)+c+−pφ+(b)+c−−(1−p)φ−(b)==φ+(b)p(c+−−c++)+φ−(b)(1−p)(c−−−c−+)==φ+(b)pc+d−φ−(b)(1−p)c−d=0, using the notation I introduced in my comments below Stephen's answer, i.e., c+d=c+−−c++ and c−d=c−+−c−− .
The optimal threshold is therefore given by the solution of the equationφ+(b)φ−(b)=(1−p)c−dpc+d. Two things should be noted here:
I'd be really interested to see if this equation has a generic solution forb (parametrized by the φ s), but I would be surprised.
Nevertheless, we can work it out for normal!2πσ2−−−−√ s cancel on the left hand side, so we have e−12((b−μ+)2σ2−(b−μ−)2σ2)=(1−p)c−dpc+d(b−μ−)2−(b−μ+)2=2σ2log(1−p)c−dpc+d2b(μ+−μ−)+(μ2−−μ2+)=2σ2log(1−p)c−dpc+d therefore the solution is b∗=(μ2+−μ2−)+2σ2log(1−p)c−dpc+d2(μ+−μ−)=μ++μ−2+σ2μ+−μ−log(1−p)c−dpc+d.
(Compare it the the previous result! We see that they are equal if and only ifc−d=c+d , i.e. the differences in misclassification cost compared to the cost of correct classification is the same in sick and healthy people.)
A short demonstration
Let's sayc−−=0 (it is quite natural medically), and that c++=1 (we can always obtain it by dividing the costs with c++ , i.e., by measuring every cost in c++ units). Let's say that the prevalence is p=0.2 . Also, let's say that μ−=9.5 , μ+=10.5 and σ=1 .
In this case:
The result is (points depict the minimum cost, and the vertical line shows the optimal threshold with the accuracy-based approach):
We can very nicely see how cost-based optimum can be different than the accuracy-based optimum. It is instructive to think over why: if it is more costly to classify a sick people erroneously healthy than the other way around (c+− is high, c−+ is low) than the threshold goes down, as we prefer to classify more easily into the category sick, on the other hand, if it is more costly to classify a healthy people erroneously sick than the other way around (c+− is low, c−+ is high) than the threshold goes up, as we prefer to classify more easily into the category healthy. (Check these on the figure!)
A real-life example
Let's have a look at an empirical example, instead of a theoretical derivation. This example will be different basically from two aspects:
The dataset (
acath
from the packageHmisc
) is from the Duke University Cardiovascular Disease Databank, and contains whether the patient had significant coronary disease, as assessed by cardiac catheterization, this will be our gold standard, i.e., the true disease status, and the "test" will be the combination of the subject's age, sex, cholesterol level and duration of symptoms:It worth plotting the predicted risks on logit-scale, to see how normal they are (essentially, that was what we assumed previously, with one single test!):
Well, they're hardly normal...
Let's go on and calculate the expected overall cost:
And let's plot it for all possible costs (a computational note: we don't need to mindlessly iterate through numbers from 0 to 1, we can perfectly reconstruct the curve by calculating it for all unique values of predicted probabilities):
We can very well see where we should put the threshold to optimize the expected overall cost (without using sensitivity, specificity or predictive values anywhere!). This is the correct approach.
It is especially instructive to contrast these metrics:
We can now analyze those metrics that are sometimes specifically advertised as being able to come up with an optimal cutoff without costs, and contrast it with our cost-based approach! Let's use the three most often used metrics:
(For simplicity, we will subtract the above values from 1 for the Youden and the Accuracy rule so that we have a minimization problem everywhere.)
Let's see the results:
This of course pertains to one specific cost structure,c−−=0 , c++=1 , c−+=2 , c+−=4 (this obviously matters only for the optimal cost decision). To investigate the effect of cost structure, let's pick just the optimal threshold (instead of tracing the whole curve), but plot it as a function of costs. More specifically, as we have already seen, the optimal threshold depends on the four costs only through the c−d/c+d ratio, so let's plot the optimal cutoff as a function of this, along with the typically used metrics that don't use costs:
Horizontal lines indicate the approaches that don't use costs (and are therefore constant).
Again, we nicely see that as the additional cost of misclassification in the healthy group rises compared to that of the diseased group, the optimal threshold increases: if we really don't want healthy people to be classified as sick, we will use higher cutoff (and the other way around, of course!).
And, finally, we yet again see why those methods that don't use costs are not (and can't!) be always optimal.
fuente