Ao modelar proporções contínuas (por exemplo, cobertura proporcional da vegetação em quadrats da pesquisa ou proporção de tempo envolvido em uma atividade), a regressão logística é considerada inadequada (por exemplo, Warton & Hui (2011 ). Em vez disso, a regressão OLS após transformar as proporções em logit, ou talvez a regressão beta, é mais apropriada.
Sob quais condições as estimativas do coeficiente de regressão logit-linear e regressão logística diferem ao usar R lm
e glm
?
Pegue o seguinte conjunto de dados simulado, onde podemos assumir que p
são nossos dados brutos (ou seja, proporções contínuas, em vez de representar ):
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))
Ajustando um modelo logit-linear, obtemos:
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
A regressão logística produz:
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!
As estimativas do coeficiente de regressão logística sempre serão imparciais em relação às estimativas do modelo logit-linear?
fonte
0.1
"havia", digamos, 10 tentativas independentes que produzem um sucesso. Para o modelo linear,0.1
é simplesmente um valor, alguma medida arbitrária.family=binomial
implica que a variável dependente representa contagens binomiais - não proporções. E comoglm
saberia isso0.1
como "um em cada dez" e não "dez em cem"? Embora a proporção em si não seja diferente, isso tem implicações importantes na maneira como o erro padrão é calculado.weights
argumento (embora não seja isso que eu estava tentando no meu post, onde analisei intencionalmente os dados).Respostas:
Talvez isso possa ser respondido da maneira "inversa" - isto é, quando são iguais?
Agora, o algoritmo IRLS usado na regressão logística fornece algumas dicas aqui. Na convergência, você pode expressar os coeficientes do modelo como:
onde é uma matriz de pesos diagonal com o i-ésimo termo e é uma pseudo resposta que possui o i-ésimo elemento . Observe que que faz com que a regressão logística pareça muito semelhante aos mínimos quadrados ponderados em um "tipo de logit" de quantidade. Observe que todos os relacionamentos estão implícitos na regressão logística (por exemplo, depende de que depende de ).W Wii=nipi(1−pi) z vumr(Zi-x t i β )=W - 1 i i zβzzi=xTiβ^logistic+yi−nipinipi(1−pi) var(zi−xTiβ^)=W−1ii z β z
Então, eu sugeriria que a diferença está principalmente no uso de mínimos quadrados ponderados (logísticos) versus mínimos quadrados não ponderados (ols em logits). Se você ponderasse os logits por (onde é o número de "eventos" e o número de "tentativas") na chamada, você receberá resultados mais semelhantes.y ( 1 - y / n ) y nlog(y)−log(n−y) y(1−y/n) y n
lm ()
fonte
Por favor, não hesite em apontar se estou errado.
Primeiro, eu tenho que dizer, no segundo ataque, você liga de
glm
maneira errada! Para ajustar uma regressão logísticaglm
, a resposta deve ser uma variável categórica (binária), mas você usap
uma variável numérica! Devo dizer quewarning
é gentil demais para que os usuários saibam seus erros ...E, como você poderia esperar, você obtém estimativas semelhantes de coeficientes pelos dois ajustes apenas pela COINCIDÊNCIA. Se você substituir
logit.p <- a + b*x + rnorm(1000, 0, 0.2)
porlogit.p <- a + b*x + rnorm(1000, 0, 0.7)
, ou seja, alterar a variação do termo de erro de0.2
para0.7
, então os resultados dos dois ajustes serão muito diferentes, embora o segundo ajuste (glm
) não tenha sentido algum ...A regressão logística é usada para a classificação (binária), portanto, você deve ter uma resposta categórica, como afirmado acima. Por exemplo, as observações da resposta devem ser uma série de "sucesso" ou "falha", em vez de uma série de "probabilidade (frequência)", como nos seus dados. Para um determinado conjunto de dados categóricos, você pode calcular apenas uma frequência geral para "resposta = sucesso" ou "resposta = falha", em vez de uma série. Nos dados que você gera, não há variável categórica, portanto, é impossível aplicar a regressão logística. Agora você pode ver, embora eles tenham aparência semelhante, a regressão logit-linear (como você chama) é apenas um problema REGRESSION linear comum (ou seja, a resposta é uma variável numérica) usando a resposta transformada (assim como a transformação sqr ou sqrt),
Normalmente, a regressão linear é ajustada através dos mínimos quadrados ordinários (OLS), o que minimiza a perda quadrada para o problema de regressão; a regressão logística é ajustada através da estimativa máxima de verossimilhança (MLE), que minimiza a perda de log para o problema de classificação. Aqui está uma referência sobre as funções de perda Loss Function, Deva Ramanan. No primeiro exemplo, você considera
p
a resposta e ajusta um modelo de regressão linear comum através do OLS; no segundo exemplo, você dizR
que está ajustando um modelo de regressão logísticafamily=binomial
, portanto,R
ajuste-o pelo MLE. Como você pode ver, no primeiro modelo, você obtém o teste t e o teste F, que são saídas clássicas do OLS adequadas para regressão linear. No segundo modelo, o teste de significância do coeficiente é baseado emz
vez det
, que é o resultado clássico do ajuste MLE da regressão logística.fonte
logistic regression is a CLASSIFICATION problem
pode ser mal interpretado no sentido de que vale a pena apenas enquanto puder ser classificado. O que seria errado pensar, porque um modelo "ideal" teoricamente e pela maneira como modela as probabilidades às vezes podem classificar pior do que um modelo não tão bom.