Quand les coefficients estimés par régression logistique et logit-linéaire diffèrent-ils?

11

Lors de la modélisation de proportions continues (par exemple, couverture végétale proportionnelle aux quadrats d'enquête, ou proportion de temps consacré à une activité), la régression logistique est considérée comme inappropriée (par exemple Warton et Hui (2011) L'arc sinus est asinin: l'analyse des proportions en écologie ). Plutôt, une régression OLS après transformation logitique des proportions, ou peut-être une régression bêta, est plus appropriée.

Dans quelles conditions les estimations des coefficients de régression logit-linéaire et de régression logistique diffèrent-elles lors de l'utilisation des R lmet glm?

Prenez l'ensemble de données simulé suivant, où nous pouvons supposer qu'il ps'agit de nos données brutes (c'est-à-dire des proportions continues, plutôt que de représenter ):nsuccessesntrials

set.seed(1)
x <- rnorm(1000)
a <- runif(1)
b <- runif(1)
logit.p <- a + b*x + rnorm(1000, 0, 0.2)
p <- plogis(logit.p)

plot(p ~ x, ylim=c(0, 1))

entrez la description de l'image ici

Sur un modèle logit-linéaire, on obtient:

summary(lm(logit.p ~ x))
## 
## Call:
## lm(formula = logit.p ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.64702 -0.13747 -0.00345  0.15077  0.73148 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.868148   0.006579   131.9   <2e-16 ***
## x           0.967129   0.006360   152.1   <2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## Residual standard error: 0.208 on 998 degrees of freedom
## Multiple R-squared:  0.9586, Adjusted R-squared:  0.9586 
## F-statistic: 2.312e+04 on 1 and 998 DF,  p-value: < 2.2e-16

La régression logistique donne:

summary(glm(p ~ x, family=binomial))
## 
## Call:
## glm(formula = p ~ x, family = binomial)
## 
## Deviance Residuals: 
##      Min        1Q    Median        3Q       Max  
## -0.32099  -0.05475   0.00066   0.05948   0.36307  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  0.86242    0.07684   11.22   <2e-16 ***
## x            0.96128    0.08395   11.45   <2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 176.1082  on 999  degrees of freedom
## Residual deviance:   7.9899  on 998  degrees of freedom
## AIC: 701.71
## 
## Number of Fisher Scoring iterations: 5
## 
## Warning message:
## In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

Les estimations du coefficient de régression logistique seront-elles toujours sans biais par rapport aux estimations du modèle logit-linéaire?

jbaums
la source
1
Notez une distinction théorique: avec un modèle binomial appliqué aux proportions, vous supposez que les essais derrière chaque proportion sont indépendants, c'est-à-dire que derrière la proportion 0.1il y avait "disons" 10 essais indépendants donnant un succès. Pour le modèle linéaire, 0.1est simplement une valeur, une mesure arbitraire.
ttnphns
1
Je doute un peu de la mesure dans laquelle il est même logique d'appliquer un modèle binomial à des proportions comme le fait l'OP. Après tout, cela family=binomialimplique que la variable dépendante représente les nombres binomiaux - pas les proportions. Et comment glmsavoir que 0.1c'est comme "un sur dix" et non "dix sur cent"? Bien que la proportion elle-même ne diffère pas, cela a des implications majeures sur la façon dont l'erreur standard est calculée.
Wolfgang
1
@ Wolfgang - Je me rends compte (et mentionne dans mon article) qu'il est inapproprié de modéliser des proportions continues de ce type avec une régression logistique. Je m'intéressais davantage à savoir si / quand / comment les estimations ponctuelles des coefficients diffèrent.
jbaums
2
@Wolfgang, vous avez raison, mais cela dépend de la mise en œuvre. Certains programmes permettront de saisir des proportions comme le DV et 1 à la place des bases, tandis que l'ensemble de données est pondéré par les bases réelles. On dirait que vous analysez les proportions, pas les chiffres.
ttnphns
1
@ttnphns De même, dans R, on peut entrer des proportions comme DV et fournir un vecteur contenant un nombre d'essais à l' weightsargument (bien que ce ne soit pas ce que j'essayais dans mon article, où j'ai intentionnellement mal analysé les données).
jbaums

Réponses:

5

Peut-être que cela peut être répondu de la manière "inverse" - c'est-à-dire quand sont-ils les mêmes?

Maintenant, l'algorithme IRLS utilisé dans la régression logistique fournit un aperçu ici. À la convergence, vous pouvez exprimer les coefficients du modèle comme suit:

β^logistic=(XTWX)1XTWz

où est une matrice de poids diagonale avec le ième terme et est une pseudo-réponse qui a le ième élément . Notez que ce qui fait que la régression logistique semble très similaire aux moindres carrés pondérés sur un "type logit" de quantité. Notez que toutes les relations sont implicites dans la régression logistique (par exemple dépend de qui dépend de ).WWii=nipi(1pi)z var(zi-x T i β )=W - 1 i i zβzzi=xiTβ^logistic+yinipinipi(1pi)var(zixiTβ^)=Wii1zβz

Je dirais donc que la différence réside principalement dans l'utilisation des moindres carrés pondérés (logistique) par rapport aux moindres carrés non pondérés (ols sur les logits). Si vous pondériez les logits par (où est le nombre "d'événements" et le nombre "d'essais") dans l' appel que vous obtiendriez des résultats plus similaires.y ( 1 - y / n ) y nlog(y)log(ny)y(1y/n)ynlm ()

probabilitéislogique
la source
Impressionnant. Pourriez-vous s'il vous plaît montrer votre dernière phrase par code R en utilisant les données simulées données? Merci!
JellicleCat
2

N'hésitez pas à le signaler si je me trompe.

Tout d'abord, je dois dire ainsi, dans le deuxième ajustement, vous appelez glmdans le mauvais sens! Pour ajuster une régression logistique glm, la réponse doit être une variable catégorielle (binaire), mais vous utilisez pune variable numérique! Je dois dire que warningc'est tout simplement trop doux pour faire savoir aux utilisateurs leurs erreurs ...

Et, comme vous pouvez vous y attendre, vous obtenez des estimations similaires des coefficients par les deux ajustements juste par COINCIDENCE. Si vous remplacez logit.p <- a + b*x + rnorm(1000, 0, 0.2)par logit.p <- a + b*x + rnorm(1000, 0, 0.7), c'est-à-dire en changeant la variance du terme d'erreur de 0.2à 0.7, alors les résultats des deux ajustements seront très différents, bien que le second ajustement ( glm) n'a aucun sens ...

La régression logistique est utilisée pour la classification (binaire), vous devez donc avoir une réponse catégorique, comme indiqué ci-dessus. Par exemple, les observations de la réponse devraient être une série de «succès» ou d '«échec», plutôt qu'une série de «probabilité (fréquence)» comme dans vos données. Pour un ensemble de données catégorielles donné, vous ne pouvez calculer qu'une seule fréquence globale pour "réponse = succès" ou "réponse = échec", plutôt qu'une série. Dans les données que vous générez, il n'y a aucune variable catégorielle, il est donc impossible d'appliquer une régression logistique. Maintenant, vous pouvez voir, bien qu'ils aient une apparence similaire, la régression logit-linéaire (comme vous l'appelez) n'est qu'un problème de REGRESSION linéaire ordinaire (c'est-à-dire que la réponse est une variable numérique) en utilisant une réponse transformée (tout comme la transformation sqr ou sqrt),

En règle générale, la régression linéaire est ajustée via les moindres carrés ordinaires (OLS), ce qui minimise la perte carrée pour le problème de régression; la régression logistique est ajustée par le biais de l'estimation du maximum de vraisemblance (MLE), qui minimise la perte de log pour les problèmes de classification. Voici une référence sur les fonctions de perte de fonction de perte, Deva Ramanan. Dans le premier exemple, vous considérez pcomme la réponse et ajustez un modèle de régression linéaire ordinaire via OLS; dans le deuxième exemple, vous dites Rque vous ajustez un modèle de régression logistique par family=binomial, Rajustez donc le modèle par MLE. Comme vous pouvez le voir, dans le premier modèle, vous obtenez le test t et le test F, qui sont des sorties classiques d'OLS adaptées à la régression linéaire. Dans le deuxième modèle, le test de signification du coefficient est basé sur zau lieu det, qui est la sortie classique de l'ajustement MLE de la régression logistique.

JellicleCat
la source
Belle question (+1) et belle réponse (+1). J'ai appris quelque chose de nouveau.
Aleksandr Blekh
1
Je serais d'accord. Cependant, cela logistic regression is a CLASSIFICATION problempourrait être mal interprété en ce sens qu'il ne vaut que tant qu'il peut être classé. Ce qui aurait tort de penser, parce qu'un modèle « optimal » théoriquement et par la façon dont il probabilités modèles peuvent parfois classer pire qu'un pas si bon modèle.
ttnphns
@ttnphns Merci pour votre commentaire! Je pense que c'est une convention de l'appeler un problème de classification si la réponse est catégorique. Il est important que le modèle fonctionne bien ou non, mais cela n'affecte peut-être pas la dénomination.
JellicleCat
Merci @JellicleCat - Je suis conscient que les données de proportion de ce type ne sont pas adaptées à la régression logistique, mais j'étais curieux de savoir dans quelles circonstances les estimations de coefficient différeraient de celles de l'OLS avec des proportions transformées en logit. Merci pour votre exemple - il est clair qu'avec une variance accrue, les estimations des coefficients divergent.
jbaums