Est-ce que le sous-échantillonnage change les coefficients de régression logistique?

34

Si j'ai un ensemble de données avec une classe positive très rare et que je sous-échantillonne la classe négative, puis effectuer une régression logistique, dois-je ajuster les coefficients de régression pour refléter le fait que j'ai modifié la prévalence de la classe positive?

Par exemple, supposons que j'ai un jeu de données avec 4 variables: Y, A, B et C. Y, A et B sont binaires, C est continu. Pour 11 100 observations, Y = 0 et pour 900, Y = 1:

set.seed(42)
n <- 12000
r <- 1/12
A <- sample(0:1, n, replace=TRUE)
B <- sample(0:1, n, replace=TRUE)
C <- rnorm(n)
Y <- ifelse(10 * A + 0.5 * B + 5 * C + rnorm(n)/10 > -5, 0, 1)

J'adapte une régression logistique pour prédire Y, étant donné A, B et C.

dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)

Cependant, pour gagner du temps, je pourrais supprimer 10 200 observations non-Y, soit 900 Y = 0 et 900 Y = 1:

require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)

Les coefficients de régression des 2 modèles sont très similaires:

> coef(summary(mod1))
              Estimate Std. Error   z value     Pr(>|z|)
(Intercept) -127.67782  20.619858 -6.191983 5.941186e-10
A           -257.20668  41.650386 -6.175373 6.600728e-10
B            -13.20966   2.231606 -5.919353 3.232109e-09
C           -127.73597  20.630541 -6.191596 5.955818e-10
> coef(summary(mod2))
              Estimate  Std. Error     z value    Pr(>|z|)
(Intercept) -167.90178   59.126511 -2.83970391 0.004515542
A           -246.59975 4059.733845 -0.06074284 0.951564016
B            -16.93093    5.861286 -2.88860377 0.003869563
C           -170.18735   59.516021 -2.85952165 0.004242805

Ce qui m'amène à penser que le sous-échantillonnage n'a pas affecté les coefficients. Cependant, il s’agit d’un exemple unique et artificiel, et je préférerais le savoir avec certitude.

Zach
la source
8
En tenant compte de l'interception, vous estimez les mêmes paramètres de population lorsque vous sous-échantillonnez, mais avec moins de précision - à l'exception de l'interception, que vous pouvez estimer lorsque vous connaissez la prévalence de la réponse dans la population. Voir Hosmer & Lemeshow (2000), Régression logistique appliquée , chapitre 6.3 pour une preuve. Parfois, vous pouvez introduire la séparation, bien que cela ne soit pas courant, car vous sous-échantillonnez la réponse majoritaire.
Scortchi - Réintégrer Monica
@Scortchi Postez votre commentaire comme réponse - cela semble suffisant pour ma question. Merci pour la référence.
Zach
@Scortchi et Zach: Selon le modèle sous-échantillonné ( mod2), Pr(>|z|)car Aest presque 1. Nous ne pouvons pas rejeter l'hypothèse nulle selon laquelle le coefficient Aest égal à 0, nous avons donc perdu une covariable qui est utilisée dans mod1. N'est-ce pas une différence substantielle?
Zhubarb
@Zhubarb: Comme je l'ai indiqué, vous pouvez introduire la séparation, ce qui rend les estimations d'erreur type de Wald totalement douteuses.
Scortchi - Réintégrer Monica
Voir aussi Scott 2006
StasK le

Réponses:

29

Un sous-échantillonnage équivaut à la conception de cas-témoins dans les statistiques médicales: vous fixez le nombre de réponses et observez les modèles de covariables (prédicteurs). Prentice et Pyke (1979), "Modèles logistiques d'incidence des maladies et études cas-témoins", constituent probablement la référence clé, Biometrika , 66 , 3.

Ils ont utilisé le théorème de Bayes pour réécrire chaque terme de la probabilité pour qu'un modèle de covariable donné soit conditionnel à la présence d'un cas ou d'un contrôle à deux facteurs; l'un représentant une régression logistique ordinaire (probabilité d'être un cas ou un contrôle conditionnel à un modèle de covariable), l'autre représentant la probabilité marginale du modèle de covariable. Ils ont montré que maximiser la probabilité globale sous la contrainte que les probabilités marginales d’être un cas ou un contrôle soient fixés par le schéma d’échantillonnage donne les mêmes estimations de rapport de cotes que la maximisation du premier facteur sans contrainte (c’est-à-dire une régression logistique ordinaire). .

β0β^0π

β^0=β^0log(1ππn1n0)

n0n1

Bien sûr, en jetant les données que vous avez eu la peine de collecter, bien que ce soit la partie la moins utile, vous réduisez la précision de vos estimations. Les contraintes sur les ressources informatiques sont la seule bonne raison que je connaisse, mais je le mentionne car certaines personnes semblent penser qu’un "ensemble de données équilibré" est important pour une autre raison que je n’ai jamais pu déterminer.

Scortchi - Rétablir Monica
la source
Merci pour la réponse détaillée. Et oui, la raison pour laquelle je fais fonctionner le modèle complet (sans sous-échantillonnage) est prohibitive du point de vue du calcul.
Zach
Cher @Scortchi, merci pour l'explication, mais dans le cas où je souhaite utiliser la régression logistique, l'ensemble de données équilibré semble nécessaire quelles que soient les ressources de calcul. J'ai essayé d'utiliser "logit biaisé à probabilité réduite et biaisée" de Firth, sans succès. Donc, apparemment, le sous-échantillonnage est la seule alternative pour moi, non?
Shahin
@Shahin Eh bien, (1) pourquoi êtes-vous mécontent d'une régression logistique ajustée au maximum de vraisemblance? & (2) Qu'est-ce qui ne va pas exactement avec la méthode de Firth?
Scortchi - Réintégrer Monica
@Scortchi, le problème est que le modèle est très mauvais pour la détection d' successinstances. En d'autres termes, TPR très bas. En modifiant le seuil, la TPR augmente, mais la précision est très mauvaise, ce qui signifie que plus de 70% des occurrences qualifiées de positives sont des négatives. J'ai lu que dans les rares événements, la régression logistique ne fonctionne pas bien, c'est là que la méthode de Firth vient à jouer, ou du moins un des rôles qu'elle peut assumer. Mais les résultats de la méthode de Firth se sont avérés très similaires à ceux de logit habituel. Je pensais que je pouvais avoir tort de faire Firth, mais apparemment tout va bien
Shahin
4
@Shahin: Vous semblez aboyer le mauvais arbre: un sous-échantillonnage ne va pas améliorer la discrimination de votre modèle. Une correction de biais ou une régularisation pourrait (sur de nouvelles données - évaluez-vous ses performances sur un ensemble de tests?), Mais une spécification plus complexe pourrait peut-être vous aider, ou simplement vous avez besoin de prédicteurs plus informatifs. Vous devriez probablement poser une nouvelle question, donnant des détails sur les données, le contexte de la matière, le modèle, les diagnostics et vos objectifs.
Scortchi - Réintégrer Monica