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 lm
et glm
?
Prenez l'ensemble de données simulé suivant, où nous pouvons supposer qu'il p
s'agit de nos données brutes (c'est-à-dire des proportions continues, plutôt que de représenter ):
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))
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?
la source
0.1
il y avait "disons" 10 essais indépendants donnant un succès. Pour le modèle linéaire,0.1
est simplement une valeur, une mesure arbitraire.family=binomial
implique que la variable dépendante représente les nombres binomiaux - pas les proportions. Et commentglm
savoir que0.1
c'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.weights
argument (bien que ce ne soit pas ce que j'essayais dans mon article, où j'ai intentionnellement mal analysé les données).Réponses:
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:
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 ).W Wje je= njepje( 1 - pje) z var(zi-x T i β )=W - 1 i i zβzzje= xTjeβ^l o gi s t i c+ yje- njepjenjepje( 1 - pje) v a r ( zje- xTjeβ^) = W- 1je je z β 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 nJournal( y) - journal( n - y) y( 1 - y/ n) y n
lm ()
la source
N'hésitez pas à le signaler si je me trompe.
Tout d'abord, je dois dire ainsi, dans le deuxième ajustement, vous appelez
glm
dans le mauvais sens! Pour ajuster une régression logistiqueglm
, la réponse doit être une variable catégorielle (binaire), mais vous utilisezp
une variable numérique! Je dois dire quewarning
c'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)
parlogit.p <- a + b*x + rnorm(1000, 0, 0.7)
, c'est-à-dire en changeant la variance du terme d'erreur de0.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
p
comme la réponse et ajustez un modèle de régression linéaire ordinaire via OLS; dans le deuxième exemple, vous ditesR
que vous ajustez un modèle de régression logistique parfamily=binomial
,R
ajustez 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é surz
au lieu det
, qui est la sortie classique de l'ajustement MLE de la régression logistique.la source
logistic regression is a CLASSIFICATION problem
pourrait ê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.