Expliquer une étape dans le calcul du ratio de coût dans la courbe ROC en fonction de l'AUC
Sur cet article de David Hand, les coûts de classification erronée sont$c_0$ et $c_1$ avec le ratio $c$ défini comme $c=c_0/(c_0+c_1).$ Le seuil considéré comme optimal est
$$T(c)=\underset{t}{\text{arg min}}\left\{ c\pi_0(1-F_0(t)) + (1-c) \pi_1 F_1(t) \right\}$$
avec $t$ étant n'importe quel seuil dans les scores, et $1=\pi_0+\pi_1$ les fractions d'individus malades et en bonne santé dans la population. $F_0$ est la répartition des malades, et $F_1$la répartition des individus en bonne santé. Les cas sont considérés comme de classe$0.$
En supposant une relation univoque de $c$ avec $T$ et en se différenciant, il obtient le résultat suivant (équation (5)):
$$c= \color{red}{\Pr(1\vert T)} = \pi_1 f_1(T) / \left\{ \pi_0f_0(T) + \pi_1f_1(T)\right\}$$
où $\Pr(1\vert T)$ est la probabilité conditionnelle d'appartenir à la classe $1,$ étant donné le score $T.$
Je suis tout ici, sauf pour la partie en rouge. C'est peut-être un malentendu très basique, mais la probabilité conditionnelle ne devrait-elle pas être calculée à partir d'un ratio de cdf, par opposition à pdf ?
Je suppose que la réponse est en considérant les scores $s(x)$ dans la régression logistique comme une transformation monotone croissante de $\Pr(1 \vert x).$
Voici une tentative infructueuse de piratage:
install.packages('pROC')
install.packages('ROCR')
install.packages('Epi')
library(pROC)
library(ROCR)
library(Epi)
set.seed(561)
cost0 = 1 # Cost of mis-classifying a normal as having cancer in million $ cost1 = 10 # Cost of mis-classifying a cancer patient as normal (death?) b = cost0 + cost1 c = cost0/(b) n = 7000 # Total cases pi0 =.8 # Percentage of normal pi1 =.2 # Percentage of disease # Actual values of the test for normals and disease (D higher test values) testA_Normals = rnorm(n*pi0, mean=3, sd=1) testA_Sick = rnorm(n*pi1, 6, 1) # Determining a threshold based on cost # arg t min {Loss = cost0 * (1 - pnorm(t,3,1)) * pi0 + # cost1 * pnorm(t,6,1) * pi1} t = seq(0,10,0.0001) loss <- cost0 * (1 - pnorm(t,3,1)) * pi0 + cost1 * pnorm(t,6,1) * pi1 Threshold = data.frame(t,loss)[which(loss==min(loss)),]$t
hist(testA_Normals,border=F, xlim=c(0,10))
hist(testA_Sick,col=2,border=F, add=T)
abline(v=Threshold)

Comparaison des 3 égalités de l'équation:
c
pi1 * dnorm(Threshold,6,1) / (pi0 * dnorm(Threshold,3,1) + pi1 * dnorm(Threshold,6,1))
#P(1|T) = P(T|1) * P(1) / [P(T|0) * P(0) + P(T|1) * P(1)]
(pnorm(Threshold,6,1,F)*pi1)/(pnorm(Threshold,6,1,F)*pi1+
pnorm(Threshold,3,1,F)*pi0)
0.0909090909090909
0.0909165896894187
0.6749524!!!!!(***)
$(***) \text{Edit}:$ Après avoir obtenu de l'aide d'une source très fiable (sans nom de peur de mal citer), la réflexion derrière $\Pr(1\vert T)$ n'est pas $\Pr(1\vert s \geq T),$ ce qui serait ce que mon code suggérerait, mais plutôt $\Pr(1\vert s=T),$ ou alors $$\Tiny\lim_{d \to 0}\frac{d \pi_1 f_1(T)}{ d \pi_1 f_1(T) + d \pi_0 f_0(T) }= \lim_{d \to 0} \Pr\left(1\Big\vert -\frac d 2 +T +\frac d 2\right). $$
Réponses
Règle de décision donnée
Quand hypothèse $\mathsf H_0$ est vrai (un événement qui se produit avec une probabilité $\pi_0$), la variable de décision $X$ dépasse le seuil $t$ avec probabilité $(1-F_0(t))$ (et donc une fausse alarme se produit) et le coût encouru est $c_0$.
Quand hypothèse $\mathsf H_1$ est vrai (un événement qui se produit avec une probabilité $\pi_1$), la variable de décision $X$ est plus petit que le seuil $t$ avec probabilité $F_1(t)$ (et donc une détection manquée se produit) et le coût encouru est $c_1$.
Ainsi, le coût moyen ou le coût attendu de chaque décision est\begin{align} \text{average cost} &= c_0\pi_0(1-F_0(t)) + c_1\pi_1F_1(t)\\\ &= (c_0 + c_1)\left[\frac{c_0}{c_0 + c_1}\pi_0(1-F_0(t)) + \frac{c_1}{c_0 + c_1}\pi_1F_1(t)\right]\\ &= (c_0 + c_1)\big[c\pi_0(1-F_0(t)) + (1-c)\pi_1F_1(t)\big]. \end{align} La valeur de $t$ qui minimise le coût moyen est donc $$T = \underset{t}{\arg \min}\big[c\pi_0(1-F_0(t)) + (1-c)\pi_1F_1(t)\big],\tag{1}$$ et le coût moyen minimum que cette règle de décision peut atteindre est $$\text{minimum average cost}=(c_0 + c_1)\big[c\pi_0(1-F_0(T)) + (1-c)\pi_1F_1(T)\big]. \tag{2}$$
Notez cependant que cette minimalité du coût moyen n'est que parmi toutes les règles de décision du formulaire
Si $X > t$, la décision est que$\mathsf H_1$eu lieu.
Si$X \leq t$, la décision est que$\mathsf H_0$ eu lieu.
D'autres règles de décision peuvent bien entraîner des coûts moyens inférieurs à ceux $(2)$, et nous en discutons ci-dessous.
Règle de décision optimale au coût moyen minimum
La règle de décision optimale du coût minimum attendu est celle qui compare le rapport de vraisemblance$\displaystyle\Lambda(X) = \frac{f_1(X)}{f_0(X)}$ au seuil $\displaystyle\frac{c_0\pi_0}{c_1\pi_1}$ et décide que $\mathsf H_0$ ou alors $\mathsf H_1$ eu lieu selon que $\Lambda(X)$est inférieur ou égal au seuil ou est supérieur au seuil. Ainsi, la ligne réelle peut être partitionnée en ensembles$\Gamma_0$ et $\Gamma_1$ défini comme \begin{align} \Gamma_0 &= \big\{X \in \Gamma_0 \implies \textit{decision }\text{is that } \mathsf H_0~\text{occurred}\big\}\\ &= \left\{x\in \mathbb R\colon \Lambda(x) \leq \frac{c_0\pi_0}{c_1\pi_1}\right\}\\ \Gamma_1 &= \big\{X \in \Gamma_1 \implies \textit{decision }\text{is that } \mathsf H_1~\text{occurred}\big\}\\ &= \left\{x\in \mathbb R\colon \Lambda(x) > \frac{c_0\pi_0}{c_1\pi_1}\right\} \end{align} où $\Gamma_0$ et $\Gamma_1$ ne sont pas forcément les ensembles $\left\{x \leq T\right\}$ et $\left\{x > T\right\}$discuté précédemment. La décision optimale au coût moyen minimum a un coût de$$\text{minimum average cost}=(c_0 + c_1)\big[c\pi_0\Pr\{X \in \Gamma_1\mid \mathsf H_0\} + (1-c)\pi_1\Pr\{X \in \Gamma_0\mid \mathsf H_1\}\big]. \tag{3}$$
Si le rapport de vraisemblance est une fonction croissante monotone de son argument,
ensuite $\Gamma_0$ et $\Gamma_1$ se révèlent être de la forme $\left\{x \leq T^*\right\}$ et $\left\{x > T^*\right\}$ et $(3)$ simplifie à \begin{align} \text{minimum average cost}&=(c_0 + c_1)\big[c\pi_0\Pr\{X > T^*\mid \mathsf H_0\} + (1-c)\pi_1\Pr\{X \leq T^*\mid \mathsf H_1\}\big]\\ &= (c_0 + c_1)\big[c\pi_0(1-F_0(T^*)) + (1-c)\pi_1F_1(T^*)\big]. \tag{4} \end{align} Un peu de réflexion montre que $T^*$ doit nécessairement être identique à $T$ dans $(1)$. Mais il y a plus d'informations à obtenir de$(4)$ car maintenant nous avons une description différente de la valeur de $T^*$.
$T^*$ est le nombre tel que $\Lambda(T^*)$ équivaut à $\displaystyle\frac{c_0\pi_0}{c_1\pi_1}$.
De $\displaystyle\Lambda(T^*) = \frac{f_1(T^*)}{f_0(T^*)} = \frac{c_0\pi_0}{c_1\pi_1}$, nous obtenons (avec une algèbre simple et l'affirmation que $T^*$ équivaut à $T$) cette $$c =\frac{c_0}{c_0+c_1} = \frac{\pi_1f_1(T^*)}{\pi_0f_0(T^*)+\pi_1f_1(T^*)} = \frac{\pi_1f_1(T)}{\pi_0f_0(T)+\pi_1f_1(T)}$$ dont la dérivation est ce qui a intrigué le PO.
Enfin, passons à l'affirmation selon laquelle $c$ égale aussi $\Pr(1\mid T)$. Laisser$Y$ être une variable aléatoire de Bernoulli telle que $Y=1$ n'importe quand $\mathsf H_1$ se produit pendant que $Y=0$ lorsque $\mathsf H_0$se produit. Ainsi nous avons cela pour$i=0,1$, $f_{X\mid Y=i}(x) := f_i(x)$. À présent,$X$ et $Y$ne peut pas profiter d'une fonction de densité articulaire car$Y$ n'est pas une variable aléatoire continue, et si nous voulons visualiser le $x$-$y$plan, alors nous avons deux densités de lignes (pondérées) $\pi_0f_0(x)$ et $\pi_1f_1(x)$ le long des lignes $y=0$ et $y=1$ dans le $x$-$y$avion. Quelle est la densité inconditionnelle de$X$? Eh bien, à$X=x$, la densité inconditionnelle de $X$ a de la valeur $$f_X(x) = \pi_0f_0(x)+\pi_1f_1(x).\tag{5}$$ En retournant les choses, quelle est la distribution de la variable aléatoire de Bernoulli $Y$ conditionné sur $X=x$? Bien quand$X=x$, $Y$ prend des valeurs $0$ et $1$ avec des probabilités respectives \begin{align}\Pr(Y=0\mid X=x) &= \frac{\pi_0f_0(x)}{\pi_0f_0(x)+\pi_1f_1(x)}\tag{6}\\ \Pr(Y=1\mid X=x) &= \frac{\pi_1f_1(x)}{\pi_0f_0(x)+\pi_1f_1(x)}\tag{7} \end{align} ce qui montre que $c$ équivaut à $\Pr(Y=1\mid X=T)$ que le papier que l'OP est en train de lire écrit comme $\Pr(1|T)$. C'est le jargon de l'apprentissage automatique pour vous ...$(6)$ et $(7)$ valeurs plausibles pour le pdf conditionnel de $Y$? Eh bien, pour$i=0,1$, nous pouvons trouver la probabilité inconditionnelle que$Y=i$ en multipliant la probabilité conditionnelle $\Pr(Y=i\mid X=x)$ par le pdf de $X$ et intégrant ce qui nous donne \begin{align} \Pr(Y=i) &= \int_{-\infty}^\infty \Pr(Y=i\mid X=x)\cdot f_X(x) \,\mathrm dx\\ &= \int_{-\infty}^\infty \left.\left.\frac{\pi_if_i(x)}{\pi_0f_0(x)+\pi_1f_1(x)} \cdot \right(\pi_0f_0(x)+\pi_1f_1(x)\right) \,\mathrm dx\\ &= \int_{-\infty}^\infty \pi_if_i(x) \,\mathrm dx\\ &= \pi_i \end{align} qui, je l'espère, ajoute une touche de vraisemblance artistique à un récit par ailleurs chauve et peu convaincant.