Analyse résiduelle de régression logistique


12

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

XX

ou

XFune(X)={une si X<une X autre

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!

Réponses:


4

Vous ne pouvez pas vraiment évaluer le biais de cette façon dans la régression logistique. La régression logisitique ne devrait être impartiale que sur les cotes de log ou les scores de logit, log (p / (1-p)). Les proportions seront asymétriques et par conséquent semblent biaisées. Vous devez tracer les résidus en termes de cotes de journal.


Comment puis-je combiner les résidus log-impairs dans un seau? Moyenne arithmétique? C'est un peu troublant pour moi. Intuitivement, si une analyse résiduelle ne montre aucun biais, alors je m'attends à ce que lorsque le modèle prédit Pr [y = 1] <0,2, alors y devrait être égal à 1 avec une probabilité inférieure à 0,2. Mais votre réponse semble suggérer que ce n'est pas le cas. Suis-je bien compris?
dshin

c'est probablement mieux affiché comme commentaire.
probabilités

Non David, cela n'implique rien d'autre que la probabilité de 0,2, peut-être que mes modifications le rendent plus clair.
John

Désolé, je suis toujours un peu confus. Ma compréhension intuitive d'un modèle non biaisé est que si le modèle prédit p = 0,2 sur chacun d'un grand nombre de points de données, alors 20% de ces points de données devraient avoir y = 1. Cette compréhension est-elle correcte? Si c'est le cas, il semble que ma méthodologie de traçage devrait afficher correctement le biais. Sinon ... alors je ne suis pas très content de ce concept de "biais"! Si une lecture de modèle non biaisé de 0,2 ne me dit rien sur la probabilité que y = 1, à quoi sert le caractère non biaisé?
dshin

Oui, 20% devraient avoir y = 1. Mais ça ne va pas être mort, ça va être éteint d'un certain montant. Dans l'espace des probabilités, dans quelle direction pensez-vous qu'il sera éloigné et de combien? S'il n'est pas biaisé, il se situera également quelque part dans le .2: 1 ou le 0: .2. Cependant, comme vous pouvez le voir par la taille de ces espaces, ils auront tendance à être plus éloignés dans la plus grande zone simplement parce qu'ils le peuvent. Dans l'espace logit, la distance doit être égale à + ou -.
John

2

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".


Merci pour cette réponse. Je vais examiner l'idée de spline cubique. J'avais utilisé cette approche «examiner les tracés et ajuster les caractéristiques» dans un cadre de régression linéaire, où il semblait plus évident de réaliser de meilleurs ajustements. Par exemple, si vous voyez un bâton de hockey, il est évident que l'application d'une correction f_a (x) conduit à un meilleur ajustement. Souvent, la connaissance du domaine problématique coïncide avec cette décision: si vous prédisez le bonheur à partir du revenu, par exemple, il serait logique de plafonner le revenu, sauf si vous pensez que les milliardaires sont 1000 fois plus heureux que les millionnaires.
dshin

Mais lorsque je suis passé à un paramètre de régression logistique, j'ai réalisé que je ne savais pas vraiment comment transférer ma méthodologie. D'où cette soumission.
dshin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.