Bonjour la communauté JMP,
Je dispose d'un vaste ensemble de données contenant environ 4 000 mesures de biomarqueurs au départ chez des patients participant à un essai clinique. Je dois identifier parmi ces données quelle combinaison de biomarqueurs peut prédire le résultat clinique 12 semaines plus tard.
J'ai utilisé une approche plutôt naïve qui semble produire des résultats largement surajustés :
- Exécutez les 4 000 biomarqueurs via le dépistage > Dépistage de réponse, où la réponse est le résultat clinique binaire à la semaine 12
- Sélectionnez les 10 à 20 meilleurs biomarqueurs (selon FDR)
- Utiliser les biomarqueurs sélectionnés (en tant qu'effets du modèle) sur la plateforme Fit Model > Stepwise où Y est le résultat clinique binaire à la semaine 12 ; critères = minimiser le BIC
- Générer le modèle
Bien que cette approche ait produit d'excellents « prédicteurs » de la réponse clinique à la semaine 12 (ROC AUC > 0,940), elle a également produit une ROC AUC élevée lorsqu'elle a été testée avec une variable « factice » générée aléatoirement (ROC AUC ~ 0,870). Ce dernier point m'indique que ma méthode est totalement inappropriée en raison d'un surajustement.
J'ai exploré la faisabilité de travailler avec des sous-groupes de patients de découverte et de validation (50 % de la population entière), mais cela n'a pas résolu mon problème de surajustement.
Outre l’utilisation des plateformes de modélisation avancées fournies par JMP Pro, existe-t-il de meilleures techniques dans JMP pour aborder une telle question ?
Merci pour votre aide.
Meilleur,
TS
Merci pour l'exemple. Regardons de près, sous plusieurs angles. Et ils devraient conduire à la même conclusion : il n'y a pas d'or dans les données.
Première perspective, divisez les données en formation et validation, il ne faut pas tenter d'utiliser le modèle ajusté en fonction du résultat de votre script.
Deuxième perspective, ajustez simplement la bonne et l'ancienne régression logistique sans fractionnement train / val, et voyez s'il y a des signes avant-coureurs.
Premier signe d'avertissement : test du modèle entier, qui indique qu'il y a de grandes chances que le modèle ne soit pas meilleur qu'une estimation aléatoire.

Deuxième signe d'avertissement : Tests d'effet et importance des paramètres. Voici les tests d'effet. Seulement deux rouges. Si ces deux-là sont l'or, le reste sont des décombres. Les décombres nous font penser qu'ils sont de l'or. Enlevez-les, voulez-vous ?

Ok, maintenant, ce qui sort de l'autre bout de la boîte à écluse, ce sont les tests complets et les tests d'effet suivants. Et faites attention à ces valeurs p. Ils sont autour de 0,05 et 0,10. Sur la clôture, par les moyens habituels. Doit-on les garder ? Si nous les supprimons, nous obtenons une estimation aléatoire. Imaginons que nous voulons vraiment les garder, et voyons comment ça se passe.


Qu'en est-il du ROC et de l'AUC ?

L'AUC est donc de 0,59. Or? Je suppose qu'il est également sur la clôture par les moyens habituels, car l'ajustement du modèle indique que le modèle est sur la clôture, donc tout devrait en être dérivé. Besoin d'une preuve ? Oui, nous pouvons avoir une preuve. Nous pouvons amorcer la valeur AUC, si vous avez JMP Pro. Faites un clic droit sur la valeur AUC et sélectionnez Bootstrap. Je lui ai donné 10000 tirages. Et 0,5 se situe dans la plage des échantillons bootstrap. Donc, cela dépend vraiment de combien on veut croire que ces deux facteurs restants sont de l'or.

Ce que j'ai fait, c'est mettre un intervalle de confiance bootstrap autour de l'AUC. Nous pouvons également créer des intervalles de confiance autour du ROC, de sorte que nous pouvons voir que la belle demi-coque n'est pas du tout impressionnante. Il faudrait cependant beaucoup d'efforts pour le faire. Regardons plutôt un point ROC : le point correspondant au seuil de coupure de 0,5. Voici les étapes.
Tout d'abord, activez Confusion Matrix.

Regardez les chiffres en surbrillance, il s'agit du taux de vrais positifs et du taux de faux positifs correspondant au seuil de coupure de 0,5.
Et nous pouvons trouver ce point sur ROC comme dans la capture d'écran suivante à la croix.

Amorcez maintenant ces nombres en surbrillance. Et j'obtiens ce tableau, dans lequel la colonne "0" est le taux de faux positifs amorcé, et la colonne "1" est le taux de vrais positifs amorcé.

Tracez la colonne "1" par rapport à la colonne "0", et superposez sur le ROC. Et voici ce que j'obtiens. J'ai également mis une ligne diagonale comme référence.

Ce que dit l'échantillon bootstrap, c'est que le point de seuil de probabilité 0,5 sur ROC avait une grande chance sur la ligne diagonale, mais il y a une chance non négligeable en dessous de la diagonale. C'est sur la clôture, si nous aurions déjà dû conclure du modèle.
Donc, ce que je veux conclure de cet exemple, c'est que nous devrions vraiment clouer le modèle avant de conclure les surajustements du modèle. Y compris le bruit aléatoire car les effets seront surajustés dans ce cas.
Pour ajouter au mystère, j'ai joint la simulation que j'ai faite.Cette fois, j'ai utilisé une colonne de validation.A noter : la régression logistique (script enregistré dans le fichier) montre une AUC autour de 0,71 pour les données d'entraînement et beaucoup plus faible (moins de 0,5) pour les données de validation.C'est une preuve évidente de surajustement.Cependant, j'ai également exécuté le criblage du modèle - toutes les méthodes (y compris la régression logistique) montrent une AUC autour de 0,5 pour les données d'entraînement et inférieure pour les données de validation - cela me semble raisonnable.De plus, le modèle de régression logistique n'est pas significatif (et seuls 1 ou 2 facteurs sont significatifs, à propos de ce que vous attendez pour 20 facteurs aléatoires).Parmi les choses que je ne comprends pas, il y a pourquoi la plate-forme de régression logistique et la régression logistique au sein de la plate-forme de sélection de modèles donnent des résultats si différents.Je sais (ou crois) que le criblage de modèles ne trouve pas autant d'hyperparamètres de réglage que les plates-formes de modélisation individuelles, mais la différence entre 0,7 et 0,5 sur les données d'entraînement me semble trop grande.
Je ne connais pas la réponse, mais je peux confirmer ce que vous avez trouvé.J'ai créé une variable de réponse binaire (aléatoire) et 20 facteurs normaux aléatoires avec 200 observations.J'ai AUC=.71 !Je trouve ça vraiment très surprenant.Je soupçonne que cela a quelque chose à voir avec une limitation de l'AUC en tant que mesure de performance, mais comme je l'ai dit, je ne comprends pas vraiment ce comportement.Dans mon cas, il ne devrait certainement pas être trop adapté.J'ai hâte de voir ce que les autres peuvent en dire.
Salut Dale,
Merci pour le suivi de cette question relativement ouverte. J'ai créé la variable aléatoire en utilisant la formule suivante :
random uniform (0,1) > 0.5;
Il convient de noter que j'ai exécuté ma "méthode" décrite ci-dessus sur huit versions différentes de la variable fictive (c'est-à-dire la formule de recalcul), donnant des valeurs ROC AUC allant de 0,770 à 0,870.
Je n'ai jamais rencontré un tel comportement, mais je n'ai jamais travaillé avec plus de 1 200 variables de biomarqueurs.
Merci de votre aide.
Meilleur,
TS
Pouvez-vous fournir plus de détails sur votre variable de réponse générée aléatoirement ?Comment l'avez-vous créé exactement ?