Comment faire les corrections d'événements rares décrites dans King et Zeng (2001)?


8

J'ai un ensemble de données avec une variable de réponse binaire (survie) et 3 variables explicatives ( A= 3 niveaux, B= 3 niveaux, C= 6 niveaux). Dans cet ensemble de données, les données sont bien équilibrées, avec 100 individus par ABCcatégorie. J'ai déjà étudié l'effet de ceux A- ci Bet des Cvariables avec cet ensemble de données; leurs effets sont importants.

J'ai un sous-ensemble. Dans chaque ABCcatégorie, 25 des 100 individus, dont environ la moitié sont vivants et la moitié sont morts (quand moins de 12 sont vivants ou morts, le nombre a été complété avec l'autre catégorie), ont été examinés plus en détail pour une 4ème variable ( D). Je vois trois problèmes ici:

  1. J'ai besoin de pondérer les données des corrections d'événements rares décrites dans King et Zeng (2001) pour prendre en compte la proportion approximative de 50% - 50% n'est pas égale à 0/1 dans le plus grand échantillon.
  2. Cet échantillonnage non aléatoire de 0 et 1 conduit à une probabilité différente pour les individus d'être échantillonnés dans chacune des ABCcatégories, donc je pense que je dois utiliser les vraies proportions de chaque catégorie plutôt que la proportion globale de 0/1 dans le grand échantillon .
  3. Cette 4e variable a 4 niveaux, et les données ne sont vraiment pas équilibrées dans ces 4 niveaux (90% des données se trouvent dans 1 de ces niveaux, disons niveau D2).

J'ai lu attentivement l'article de King et Zeng (2001), ainsi que cette question de CV qui m'a conduit à l'article de King et Zeng (2001), et plus tard cet autre qui m'a amené à essayer le logistfpackage (j'utilise R). J'ai essayé d'appliquer ce que j'ai compris de King et Zheng (2001), mais je ne suis pas sûr que ce que j'ai fait soit juste. J'ai compris qu'il y a deux méthodes:

  • Pour la méthode de correction précédente, j'ai cru comprendre que vous ne corrigiez que l'interception. Dans mon cas, l'ordonnée à l'origine est la A1B1C1catégorie, et dans cette catégorie, la survie est de 100%, donc la survie dans le grand ensemble de données et le sous-ensemble est la même, et donc la correction ne change rien. Je soupçonne que cette méthode ne devrait pas s'appliquer à moi de toute façon, parce que je n'ai pas une vraie proportion globale, mais une proportion pour chaque catégorie, et cette méthode l'ignore.
  • Pour la méthode de pondération: j'ai calculé w i , et d'après ce que j'ai compris dans l'article: "Tous les chercheurs doivent faire est de calculer w i dans l'équation (8), le choisir comme poids dans leur programme informatique, puis exécuter un modèle logit ". J'ai donc d'abord exécuté mon glmas:

    glm(R~ A+B+C+D, weights=wi, data=subdata, family=binomial)
    

    Je ne suis pas sûr que je devrais inclure A, Bet Ccomme variables explicatives, car je m'attends normalement à ce qu'elles n'aient aucun effet sur la survie dans ce sous-échantillon (chaque catégorie contient environ 50% de morts et de vivants). Quoi qu'il en soit, cela ne devrait pas beaucoup changer la sortie si elles ne sont pas significatives. Avec cette correction, j'obtiens un bon ajustement pour le niveau D2(le niveau avec la plupart des individus), mais pas du tout pour les autres niveaux de D( D2prépondérants). Voir le graphique en haut à droite:

S'adapte Convient à un glmmodèle non pondéré et à un glmmodèle pondéré avec w i . Chaque point représente une catégorie. Proportion in the big datasetest la vraie proportion de 1 dans la ABCcatégorie dans le grand ensemble de données, Proportion in the sub datasetest la vraie proportion de 1 dans la ABCcatégorie dans le sous-ensemble de données et Model predictionssont les prédictions des glmmodèles équipés du sous-ensemble de données. Chaque pchsymbole représente un niveau donné de D. Les triangles sont de niveau D2.

Ce n'est que plus tard en voyant qu'il y a un logistf, je pense que ce n'est peut-être pas si simple. Je ne suis plus sûr maintenant. Ce faisant logistf(R~ A+B+C+D, weights=wi, data=subdata, family=binomial), j'obtiens des estimations, mais la fonction de prédiction ne fonctionne pas, et le test de modèle par défaut renvoie des valeurs chi au carré infinies (sauf une) et toutes les valeurs p = 0 (sauf 1).

Des questions:

  • Ai-je bien compris King et Zeng (2001)? (Dans quelle mesure suis-je loin de le comprendre?)
  • Dans mes glmcrises, A, Bet Cont des effets importants. Tout cela signifie que j'écarte beaucoup les proportions moitié / moitié de 0 et 1 dans mon sous-ensemble et différemment dans les différentes ABCcatégories - n'est-ce pas?
  • Puis-je appliquer la correction de pondération de King et Zeng (2001) malgré le fait que j'ai une valeur de tau et une valeur de y¯pour chaque ABCcatégorie au lieu de valeurs globales?
  • Est-ce un problème que ma Dvariable soit si déséquilibrée, et si c'est le cas, comment puis-je la gérer? (Compte tenu du fait que je devrai déjà peser pour la correction d'événement rare ... La "double pondération", c'est-à-dire la pondération des poids, est-elle possible?) Merci!

Edit : voyez ce qui se passe si je supprime A, B et C des modèles. Je ne comprends pas pourquoi il y a de telles différences.

Pour 2 Convient sans A, B et C comme variables explicatives dans les modèles

Réponses:


2

La logistf() fonction n'implémente pas de régression logistique d'événements rares, ce qui est fait par la relogit() fonction dans le package Zelig, sur CRAN. Vous devriez tester celui-là!


Ok, j'ai jeté un œil, et je ne peux pas utiliser relogit (), car comme je l'ai dit, j'ai une valeur de tau pour chaque catégorie ABC, au lieu d'une valeur globale, et cette fonction ne me permet pas d'entrer un vecteur de la même longueur que mon jeu de données que tau. D'après ce que j'ai compris sur la façon dont la fonction est écrite, je pense que ce qui est fait est juste (sauf que je n'ai pas fait la partie de correction de biais la plus avancée ...).
Aurelie

2

J'ai réalisé que mes comparaisons de proportions ajustées et réelles dans le premier graphique, en haut à droite, ne sont pas la meilleure façon d'évaluer l'ajustement du modèle, car dans les mégadonnées, je peux calculer les proportions pour les catégories ABC, mais avec l'ajustement du modèle où les quatre variables sont incluses, des proportions sont prévues pour chaque catégorie ABCD.

J'ai ajusté un nouveau modèle sur les sous-données, où j'ai supprimé D:

glm(R~A+B+C, family=binomial, data=subdata)

Pour que je puisse comparer les prédictions de ce modèle équipé du sous-ensemble de données et les proportions réelles dans l'ensemble de données volumineuses, et évaluer si ma pondération fait ce que je m'attends à ce qu'elle fasse.

Le résultat est:

convient3 Prédictions du nouveau modèle par rapport aux proportions dans l'ensemble de données volumineuses.

Maintenant, je pense que la réponse est: oui, certainement.

Par conséquent, cela a répondu à mes questions 1 (je comprends bien King et Zheng (2001), au moins la méthode de pondération) et 3 (je peux appliquer la correction de pondération de King et Zheng (2001) malgré le fait que j'ai une valeur de τ et une valeur de y¯ pour chaque catégorie ABC au lieu des valeurs globales).

Les deux autres questions étaient:

  • Pourquoi est-il si important d'inclure A, B et C dans le modèle pour obtenir un bon ajustement et pourquoi leur effet est significatif. Est-ce dû, comme je l'ai suggéré, au fait que j'écarte beaucoup les proportions moitié / moitié de 0 et 1 dans mon sous-ensemble et différemment dans les différentes catégories ABC?

    -> Je pense que mon attente que l'inclusion de A + B + C dans le modèle ne devrait pas avoir d'effet car toutes les catégories ABC devraient contenir environ la moitié de 0 et 1 observation serait vraie avec un modèle linéaire non pondéré (en fait, lorsque vous comparez mes deux graphiques en haut à gauche, il n'y a pas beaucoup de différence entre eux ... mais quand même, B et C ont un effet significatif dans ce modèle linéaire non pondéré .. Je considérerai cela parce que le départ du 50 / 50), mais pas nécessairement avec un modèle linéaire pondéré.

  • Est-ce un problème que ma variable D soit si déséquilibrée, et si c'est le cas, comment puis-je la gérer? (La "double pondération", c'est-à-dire la pondération des poids, est-elle possible?).

    -> Je pense à utiliser la fonction Anova de la 'car'bibliothèque pour une régression logistique (en précisant 'test.statistic="LR"'). Dans ce cas, la fonction pondère les cellules directement pour fabriquer des SS de type II, donc je peux garder l' 'weight'option pour la correction des événements rares.


Je viens de voir cette question CV qui suggère que l'utilisation de la fonction Anova de la bibliothèque de voitures avec le test LR n'est pas adaptée. Je vais lire attentivement ce lien CV pour trouver des réponses.
Aurelie

J'ai approfondi la fonction «logistf», car il semble qu'elle contient la méthode que les modèles pondérés par les tests signifient la signification. Les coefficients que j'obtiens avec la fonction 'logistf' sont très proches des coefficients que j'obtiens avec le 'glm' (lorsque je retourne à des rapports impairs et que je trace, j'obtiens la ligne ax = y).
Aurelie

Ainsi, même s'il n'y a pas de méthode pour obtenir les prédictions et les valeurs ajustées de `` logistf '', le tracé des valeurs ajustées de `` logistf '' ressemblerait beaucoup au dernier tracé que j'ai fourni (l'ajustement est bon).
Aurelie
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.