Cette question est en quelque sorte générale et de longue haleine, mais veuillez me supporter.
Dans mon application, j'ai de nombreux jeux de données, chacun composé de ~ 20 000 points de données avec ~ 50 fonctionnalités et d'une seule variable binaire dépendante. J'essaie de modéliser les ensembles de données en utilisant une régression logistique régularisée (package R glmnet )
Dans le cadre de mon analyse, j'ai créé des graphiques résiduels comme suit. Pour chaque fonctionnalité, je trie les points de données en fonction de la valeur de cette fonctionnalité, divise les points de données en 100 compartiments, puis calcule la valeur de sortie moyenne et la valeur de prédiction moyenne dans chaque compartiment. Je trace ces différences.
Voici un exemple de tracé résiduel:
Dans le graphique ci-dessus, l'entité a une plage de [0,1] (avec une forte concentration à 1). Comme vous pouvez le voir, lorsque la valeur de la fonction est faible, le modèle semble être biaisé pour surestimer la probabilité d'une sortie 1. Par exemple, dans le compartiment le plus à gauche, le modèle surestime la probabilité d'environ 9%.
Armé de ces informations, je voudrais modifier la définition de la fonction d'une manière simple pour corriger à peu près ce biais. Des modifications comme le remplacement
ou
Comment puis-je faire ceci? Je recherche une méthodologie générale pour qu'un humain puisse rapidement parcourir les ~ 50 tracés et apporter des modifications, et cela pour tous les ensembles de données et répéter souvent pour garder les modèles à jour au fur et à mesure que les données évoluent.
En tant que question générale, est-ce même la bonne approche? Les recherches Google pour "analyse résiduelle de régression logistique" ne renvoient pas beaucoup de résultats avec de bons conseils pratiques. Ils semblent être obsédés par la réponse à la question: "Ce modèle est-il un bon ajustement?" et proposer divers tests comme Hosmer-Lemeshow pour répondre. Mais peu m'importe si mon modèle est bon, je veux savoir comment l'améliorer!
il est peu probable qu'il existe un logiciel général pour ce faire. très probablement parce qu'il n'y a pas de théorie générale pour résoudre les problèmes de régression. par conséquent, il s'agit davantage d'un type de réponse «ce que je ferais» plutôt que d'une procédure théoriquement fondée.
l'intrigue que vous produisez est fondamentalement un test HL visuel avec 100 cases, mais en utilisant un seul prédicteur au lieu de la probabilité prévue de faire le binning. cela signifie que votre procédure est susceptible d'hériter de certaines des propriétés du test HL.
votre procédure semble raisonnable, même si vous devez être conscient de «sur-adapter» vos critères. vos critères sont également moins utiles comme diagnostic car ils font désormais partie du processus d'estimation. aussi, chaque fois que vous faites quelque chose par intuition, vous devez noter votre processus de prise de décision avec autant de détails que possible. c'est parce que vous pouvez découvrir les germes d'un processus général ou d'une théorie qui, une fois développé, conduit à une meilleure procédure (plus automatique et optimale par rapport à certaines théories).
Je pense qu'une façon de procéder consiste à réduire d'abord le nombre de parcelles à étudier. une façon de procéder consiste à ajuster chaque variable sous la forme d'une spline cubique, puis à étudier les tracés qui ont des estimations non nulles non linéaires. étant donné le nombre de points de données, c'est aussi une solution automatique facile pour les non linéarités. cela étendra votre modèle de 50 à 200 + 50k où k est le nombre de nœuds. on pourrait penser à cela comme appliquant une "expansion statistique de la série Taylor" de la "vraie" transformation.
si votre diagnostic semble mauvais après cela, j'essaierais d'ajouter des termes d'interaction.
certaines parties de votre question semblent plus sur l'écriture d'un programme interactif, qui est plus le domaine du stackoverflow qu'ici. il peut également être utile de rechercher des outils d'analyse de données exploratoires car ils sont plus susceptibles d'avoir des fonctionnalités que vous pouvez "superposer".
la source