Analyse ROC et multiROC: comment calculer le point de coupure optimal?

14

J'essaie de comprendre comment calculer le point de coupure optimal pour une courbe ROC (la valeur à laquelle la sensibilité et la spécificité sont maximisées). J'utilise l'ensemble aSAHde données du package pROC.

La outcomevariable pourrait s'expliquer par deux variables indépendantes: s100bet ndka. En utilisant la syntaxe du Epipackage, j'ai créé deux modèles:

library(pROC)
library(Epi)
ROC(form=outcome~s100b, data=aSAH)
ROC(form=outcome~ndka, data=aSAH)

La sortie est illustrée dans les deux graphiques suivants:

entrez la description de l'image ici entrez la description de l'image ici

Dans le premier graphique ( s100b), la fonction indique que le point de coupure optimal est localisé à la valeur correspondant à lr.eta=0.304. Dans le deuxième graphique ( ndka), le point de coupure optimal est localisé à la valeur correspondante à lr.eta=0.335(quelle est la signification de lr.eta). Ma première question est:

  • quelles sont les valeurs correspondantes s100bet ndkales lr.etavaleurs indiquées (quel est le seuil optimal en termes de s100bet ndka)?

DEUXIÈME QUESTION:

Supposons maintenant que je crée un modèle prenant en compte les deux variables:

ROC(form=outcome~ndka+s100b, data=aSAH)

Le graphique obtenu est:

entrez la description de l'image ici

Je veux savoir quelles sont les valeurs de ndkaET s100bauxquelles la sensibilité et la spécificité sont maximisées par la fonction. En d'autres termes: quelles sont les valeurs de ndkaet s100bpour lesquelles nous avons Se = 68,3% et Sp = 76,4% (valeurs dérivées du graphique)?

Je suppose que cette deuxième question est liée à l'analyse multiROC, mais la documentation du Epipackage n'explique pas comment calculer le point de coupure optimal pour les deux variables utilisées dans le modèle.

Ma question semble très similaire à cette question de reasearchGate , qui dit en bref:

La détermination du score seuil qui représente un meilleur compromis entre la sensibilité et la spécificité d'une mesure est simple. Cependant, pour l'analyse de la courbe ROC multivariée, j'ai noté que la plupart des chercheurs se sont concentrés sur des algorithmes pour déterminer la précision globale d'une combinaison linéaire de plusieurs indicateurs (variables) en termes d'AUC. [...]

Cependant, ces méthodes ne mentionnent pas comment décider d'une combinaison de scores de coupure associés aux multiples indicateurs qui donne la meilleure précision diagnostique.

Une solution possible est celle proposée par Shultz dans son article , mais à partir de cet article, je ne suis pas en mesure de comprendre comment calculer le point de coupure optimal pour une courbe ROC multivariée.

Peut-être que la solution du Epipackage n'est pas idéale, donc tout autre lien utile sera apprécié.

Tommaso
la source

Réponses:

9

Pour développer la réponse de Frank Harrell, ce que le Epipaquet a fait était d'ajuster une régression logistique et de faire une courbe ROC avec des prédictions de résultats de la forme suivante:

outcome=11+e(β0+β1s100b+β2ndka)

Dans votre cas, les valeurs ajustées sont (interception) = -2,379, (s100b) = 5,334 et (ndka) = 0,031. Comme vous voulez que votre résultat prévu soit de 0,312 (le seuil "optimal"), vous pouvez alors le remplacer par (j'espère que je n'ai pas introduit d'erreurs ici):β0β1β2

1,588214=5,334s100b

0.312=11+e(2.379+5.334s100b+0.031ndka)
1.588214=5.334s100b+0.031ndka
ou:
s100b=1.5882140.031ndka5.334

Toute paire de valeurs (s100b, ndka) qui satisfont cette égalité est "optimale". Pas de chance pour vous, il y a une infinité de ces paires. Par exemple, (0,29, 1), (0, 51,2), etc. Pire encore, la plupart d'entre eux n'ont aucun sens. Que signifie la paire (-580, 10000)? Rien!

En d'autres termes, vous ne pouvez pas établir de coupures sur les entrées - vous devez le faire sur les sorties, et c'est tout l'intérêt du modèle.

Calimo
la source
8

Il n'est pas approprié de rechercher des seuils sur les variables d'entrée, mais uniquement sur la sortie (par exemple, le risque prévu d'un modèle multivariable). En effet, la coupure pour x1 dépendrait de la valeur continue de x2. Et la recherche d'un point de coupure sur , pour obtenir des décisions optimales, nécessite une fonction d'utilité / perte / coût et cela n'a rien à voir avec les courbes ROC.Y^

Frank Harrell
la source
Je comprends le problème que vous avez expliqué. Je me demande, en passant, s'il existe une méthode pour calculer les points de coupure pour deux (ou plus) tests en parallèle, afin d'augmenter la sensibilité et la spécification de l'identification d'un statut spécifique (maladie / résultat / etc. ). Merci d'avance.
Tommaso
1
Étant donné que le point de coupure «optimal» pour x1 dépendrait de la valeur continue de x2, et le point de coupure «optimal» pour x2 dépendrait de la valeur continue de x1, il n'y a aucun moyen de le faire et de conserver suffisamment d'informations pour ne pas en faire un catastrophe.
Frank Harrell
Il n'y a donc aucun moyen de trouver des points de coupure pour deux tests ou plus, afin de maximiser la sensibilité et la spécificité? Bien sûr, une méthode qui n'est pas une analyse multiROC. Merci encore.
Tommaso
2
Il n'est tout simplement pas approprié de rechercher des coupures sur les entrées. Les décisions optimales sont prises sans aucune coupure ou, si nécessaire avant l'heure de décision, en faisant des coupures sur les probabilités prédites. Des services publics (perte / coût) sont nécessaires pour résoudre la coupure optimale du risque prévu.
Frank Harrell
1
Les courbes ROC n'ont rien à voir avec la réalisation de cet objectif. Pour ce faire, vous devez relier le SCr au résultat ou simplement calculer la probabilité d'obtenir un SCr plus extrême que celui d'une population normale.
Frank Harrell
3

Je suppose que lr.etac'est le prédicteur linéaire - le logit - du modèle ajusté, car est un symbole couramment utilisé pour lui; ou, sinon, la probabilité du modèle ajusté. (Il s'avère que c'est le dernier: voir /programming//a/38532555/1864816 .) Vous pouvez archiver le code . Dans tous les cas, vous pourrez le calculer à partir des coefficients du modèle pour n'importe quel nombre de prédicteurs. (Notez que ce ne sera pas un seuil pour chaque prédicteur séparément, mais une fonction de tous les prédicteurs.)ηROC

Votre première phrase devrait dire (comme en témoignent les graphiques) que vous cherchez où la somme de sensibilité et de spécificité est maximisée. Mais pourquoi est-ce "optimal"? Un résultat faux positif a-t-il la même importance qu'un résultat faux négatif? Voyez ici .

Scortchi - Réintégrer Monica
la source
C'était correct, je peux calculer le point de coupure à partir du modèle ajusté (pour une variable indépendante), ou en utilisant la coordsfonction du pROCpackage, comme je l'ai trouvé plus tard. Le point de coupure optimal était, dans mon cas, la meilleure combinaison de Sens et Spec; J'ai lu la réponse liée, mais je ne me soucie pas (au moins pour l'instant) des résultats faux positifs et faux négatifs, car (si j'ai bien compris) j'analyse un groupe de données collectées pour la recherche.
Tommaso
De quoi vous souciez-vous alors? Que faites-vous avec la coupure qui ne nécessite aucune considération de conséquences? Et puis quel est - il « optimal » ou « meilleur » pour ?
Scortchi - Réintégrer Monica
Tommaso a défini «optimal» comme «la valeur à laquelle la sensibilité et la spécificité sont maximisées» (en citant la première phrase de la question), signifiant implicitement max (sensibilité + spécificité). Que cela ait un sens ou non (et quand je lis qu'il s'en fiche, je suis enclin à penser que cela ne l'est pas) est une autre question.
Calimo
1
Cette approche est en contradiction avec la prise de décision.
Frank Harrell
1
Je pense que si je lis correctement votre article, lr.etac'est exactement la deuxième option que vous mentionnez: la probabilité du modèle ajusté: . Vérifiez ceci si vous avez une minute. E[Yi|Xi]=11+e(β0+β1×s100b)
Antoni Parellada du
0

Vous pouvez trouver le seuil auquel le vrai taux positif (tpr) coupe le vrai taux négatif (tnr), ce sera le point auquel la somme des faux positifs et des faux négatifs est un minimum.

user69641
la source
Une réponse d'une phrase est généralement considérée comme un peu courte pour notre format. Pouvez-vous développer votre réponse pour inclure une brève explication de la façon dont vous savez que c'est là que le minimum doit être?
Glen_b -Reinstate Monica
1
Une telle stratégie va à l'encontre d'une prise de décision optimale.
Frank Harrell