Como a regressão logística usa a distribuição binomial?

19

Estou tentando entender como a regressão logística usa a distribuição binomial.

Digamos que estou estudando o sucesso do ninho em pássaros. A probabilidade de um ninho ter sucesso é de 0,6. Usando a distribuição binomial, posso calcular a probabilidade de r sucessos dados em n tentativas (número de ninhos estudados).

Mas como a distribuição binomial é usada em um contexto de modelagem? Digamos que eu queira saber como a temperatura média diária afeta o sucesso do ninho e uso a regressão logística para explorar esta questão.

Dentro do contexto que descrevi, como a regressão logística usa a distribuição binomial?

Estou procurando uma resposta intuitiva, portanto uma resposta sem equações! Penso que as equações só são úteis quando o entendimento é alcançado em um nível intuitivo.

luciano
fonte
possível duplicata da Ajuda para traduzir o comando R GLM em notação matemática
Sycorax diz Restabelecer Monica
2
Esse é um bom tópico para referência, @ user777, mas acho que pode não funcionar como duplicado se o OP solicitar especificamente uma explicação sem equações. Uma boa pergunta, porém, é se o papel da distribuição binomial pode ser bem explicado sem quaisquer equações. Certamente LR pode receber uma explicação intuitiva, mas o papel do binômio com LR é inerentemente um tanto matemático.
gung - Restabelece Monica
Desculpas para luciano. Ver "distribuição binomial" substituiu "sem equações" quando considerei possíveis respostas. Claramente, isso era inconsistente com a solicitação do OP.
Sycorax diz Restabelecer Monica
Sinto que compreendi a ideia de usar a escala de chances de log para a regressão e depois converter da escala de logit para a escala de 0-1. Mas continuo lendo coisas como 'os erros são distribuídos binomialmente'. Como os erros podem ser distribuídos binomialmente?
luciano 26/03
5
Seja qual for o livro em que você lê isso, jogue-o fora.
Scortchi - Restabelece Monica

Respostas:

7

Suponha que você observe vários ninhos em diferentes temperaturas médias diárias . Como a probabilidade π ( t ) de sucesso do ninho depende da temperatura t ? (Se os ninhos são independentes, o número de ninhos com sucesso na temperatura t é então distribuído binomialmente com n igual ao número de ninhos observados e à probabilidade de sucesso π ( t ) .)tπ(t)ttnπ(t)

A regressão logística é uma abordagem (usando a função logística) de especificar a probabilidade de sucesso como uma função da temperatura via alongamento e deslocamento da curva logística, com a quantidade de alongamento e deslocamento necessária para ser estimada a partir dos dados.

cavalo preto
fonte
15

Sem equações? Caramba. Vamos ver:

O modelo de regressão logística é literalmente um modelo para o parâmetro p de uma distribuição binomial; com um preditor contínuo, cada ponto pode ter sua própria distribuição. (Nos casos em que as observações são de 0 a 1, lidamos com o caso especial de Bernoulli; essa é uma situação comum.)

O n é dado, não modelado. Assim, o resultado é, com um modelo que relaciona o pEu 's e um conhecido nEu , podemos modelar dados binomial em termos de um indicador que descreve a média (e variância) através do seu modelo para p . O modelo pode ser adequado através da estimativa de máxima verossimilhança, mas devido à sua forma especial (família exponencial), o ML é relativamente "agradável".

Como o vínculo logístico é canônico para a família binomial, é ainda mais agradável, pois as estatísticas suficientes são de forma muito simples - o que o torna conveniente para lidar com amostras grandes ou mesmo para desenvolver algoritmos 'online'.

p

Com a regressão logística, essa curva (a função de link) é uma função logística. Outras funções são possíveis, e muitos pacotes implementam várias (o R possui três glmfunções adequadas, se bem me lembro).


Nenhum símbolo de igualdade foi prejudicado na elaboração deste post.

Glen_b -Reinstate Monica
fonte
2

Seu modelo assume que o sucesso de um ninho pode ser visto como uma aposta: Deus joga uma moeda carregada com os lados rotulados como "sucesso" e "fracasso". O resultado do flip para um ninho é independente do resultado do flip para qualquer outro ninho.

Os pássaros têm algo a seu favor: a moeda pode favorecer muito o sucesso em algumas temperaturas em comparação com outras. Assim, quando você tem a chance de observar ninhos em uma determinada temperatura, o número de sucessos é igual ao número de lançamentos bem-sucedidos da mesma moeda - aquele para essa temperatura. A distribuição binomial correspondente descreve as chances de sucesso. Ou seja, estabelece a probabilidade de zero sucesso, de um, de dois, ... e assim por diante, através do número de ninhos.

Uma estimativa razoável da relação entre a temperatura e como Deus carrega as moedas é dada pela proporção de sucessos observados nessa temperatura. Esta é a estimativa de máxima verossimilhança (MLE).

71033/7)3/73

5,10,15,200 0,3,2,32,7,5,3

A linha superior da figura mostra os MLEs em cada uma das quatro temperaturas observadas. A curva vermelha no painel "Ajustar" mostra como a moeda é carregada, dependendo da temperatura. Por construção, esse rastreamento passa por cada um dos pontos de dados. (O que faz em temperaturas intermediárias é desconhecido; conectei os valores bruscamente para enfatizar esse ponto.)

Esse modelo "saturado" não é muito útil, precisamente porque não nos dá base para estimar como Deus carregará as moedas em temperaturas intermediárias. Para fazer isso, precisamos supor que exista algum tipo de curva de "tendência" que relacione o carregamento de moedas com a temperatura.

Figura

A linha inferior da figura se encaixa nessa tendência. A tendência é limitada no que pode ser feito: quando plotada nas coordenadas apropriadas ("probabilidades de log"), conforme mostrado nos painéis "Logit Response" à esquerda, ela pode seguir apenas uma linha reta. Qualquer linha reta determina o carregamento da moeda em todas as temperaturas, como mostra a linha curva correspondente nos painéis "Ajustar". Esse carregamento, por sua vez, determina as distribuições binomiais em todas as temperaturas. A linha inferior representa essas distribuições para as temperaturas em que os ninhos foram observados. (As linhas pretas tracejadas marcam os valores esperados das distribuições, ajudando a identificá-las com bastante precisão. Você não vê essas linhas na linha superior da figura porque coincidem com os segmentos vermelhos.)

Agora é preciso fazer uma troca: a linha pode passar de perto para alguns pontos de dados, apenas para se afastar de outros. Isso faz com que a distribuição binomial correspondente atribua probabilidades mais baixas à maioria dos valores observados do que antes. Você pode ver isso claramente em 10 e 15 graus: a probabilidade dos valores observados não é a maior probabilidade possível, nem se aproxima dos valores atribuídos na linha superior.

A regressão logística desliza e move as possíveis linhas ao redor (no sistema de coordenadas usado pelos painéis "Logit Response"), converte suas alturas em probabilidades binomiais (os painéis "Ajustar"), avalia as chances atribuídas às observações (os quatro painéis à direita) ) e escolhe a linha que oferece a melhor combinação dessas chances.

O que e melhor"? Simplesmente que a probabilidade combinada de todos os dados é a maior possível. Dessa maneira, nenhuma probabilidade única (os segmentos vermelhos) pode ser verdadeiramente minúscula, mas geralmente a maioria das probabilidades não será tão alta quanto no modelo saturado.

Aqui está uma iteração da pesquisa de regressão logística em que a linha foi girada para baixo:

Figura 2

1015graus, mas um trabalho terrível de ajustar os outros dados. (A 5 e 20 graus, as probabilidades binomiais atribuídas aos dados são tão pequenas que você nem consegue ver os segmentos vermelhos.) No geral, esse ajuste é muito pior do que o mostrado na primeira figura.


Espero que esta discussão tenha ajudado a desenvolver uma imagem mental das probabilidades binomiais mudando conforme a linha varia, mantendo o mesmo tempo os dados. O ajuste da linha pela regressão logística tenta tornar essas barras vermelhas o mais alto possível. Assim, a relação entre regressão logística e a família de distribuições binomiais é profunda e íntima.


Apêndice: Rcódigo para produzir as figuras

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)
whuber
fonte
haveria o código r divulgado? Muito Obrigado.
Maximilian
1
@ Maximilian eu adicionei o código.
whuber