Regressão Logística em R: Derivação de Equação [Com Exemplo]

Publicados: 2020-07-28

Neste artigo, discutiremos um dos conceitos mais comuns e desafiadores em aprendizado de máquina, a regressão logística. Você encontrará o que é regressão logística e a derivação da equação de regressão logística neste artigo detalhado.

Também compartilhamos um exemplo de regressão logística em R para entender o conceito com muita facilidade. No entanto, certifique-se de conhecer todas as ideias razoavelmente bem antes de trabalhar no exemplo. Seria útil se você estivesse familiarizado com a regressão linear porque ambos os conceitos estão interligados.

Índice

O que é regressão logística?

A regressão logística prevê um resultado binário de acordo com um conjunto de variáveis ​​independentes. É um algoritmo de classificação que prevê a probabilidade de ocorrência de um evento usando uma função logit e ajustando os dados a ela. A regressão logística é diferente da regressão linear, pois pode prever a probabilidade de um resultado que pode ter apenas dois valores. Usar a regressão linear não é adequado quando você tem uma variável binária porque:

  • A regressão linear prevê valores fora do intervalo necessário
  • A regressão pode não distribuir os dois benefícios em uma linha prevista

A regressão logística não produz uma linha como uma regressão linear. Ele fornece uma curva logística que varia entre 0 e valor superior a 1.

Aprenda cursos online de ciência de dados das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Confira: R Project Ideas

Derivação da equação de regressão logística

Podemos derivar a equação de regressão logística da equação de regressão linear. A regressão logística se enquadra na classe de algoritmos glm (Modelo Linear Generalizado). Nelder e Wedderburn introduziram esse modelo em 1972 como um método de usar a regressão linear para resolver problemas que não podiam ser resolvidos antes. Eles propuseram uma classe de modelos separados e acrescentaram a regressão logística como um modelo especial.

Sabemos que a equação de um modelo linear generalizado é a seguinte:

g(e<y) = a + bx1

g() representa a função de ligação, E(y) representa a expectativa da variável de destino e o RHS (lado direito) é o preditor linear. A função de ligação 'vincula' a expectativa de y com o preditor linear.

Suponha que temos dados de 100 clientes e precisamos prever se um cliente comprará um produto específico ou não. Como temos uma variável de resultado categórica, devemos usar a regressão logística.

Vamos começar com uma equação de regressão linear:

g(y) = o+(renda) — (1)

Aqui, mantivemos a variável independente como 'renda' para facilitar o entendimento.

Nosso foco está na probabilidade da variável dependente resultante (o cliente comprará ou não?). Como já discutimos, g() é nossa função de link e é baseada na Probabilidade de Sucesso (p) e na Probabilidade de Falha (1-p). p deve ter as seguintes qualidades:

  • p deve ser sempre positivo
  • p deve ser sempre menor ou igual a 1

Agora, vamos denotar g() com 'p' e derivar nossa equação de regressão logística.

Como a probabilidade é sempre positiva, cobriremos a equação linear em sua forma exponencial e obteremos o seguinte resultado:

p = exp(0+(renda)) = e((0+(renda)) — (2)

Teremos que dividir p por um número maior que p para tornar a probabilidade menor que 1:

p = exp(0+(renda)) / (0+(renda)) + 1 = e(0+(renda)) / (0+(renda)) + 1 — (3)

Usando a eq. (1), (2) e (3), podemos definir p como:

p = ey /1 + ey — (4)

Aqui, p é a probabilidade de sucesso, então 1-p deve ser a probabilidade de falha:

q = 1 – p = 1 -(ey /1 + ey) — (5)

Vamos agora dividir (4) por (5):

p/1 – p = ei

Se tomarmos log em ambos os lados, obtemos o seguinte:

logaritmo (p/1 – p) = y

Esta é a função de ligação. Quando substituímos o valor de y estabelecido anteriormente, obtemos:

log(p/1 – p) = o + (renda)

E aí temos, a equação de regressão logística. Como fornece a probabilidade de um resultado, seu valor permanece sempre entre 0 e acima de 1.

Leia sobre: ​​9 ideias e tópicos interessantes de projetos de regressão linear para iniciantes

Exemplo de regressão logística em R

No nosso caso de regressão logística em R, estamos usando dados da UCLA (Universidade da Califórnia, Los Angeles). Aqui, temos que criar um modelo que preveja as chances de admissão de acordo com os dados que temos. Temos quatro variáveis, incluindo GPA, pontuação GRE, classificação da faculdade de graduação do aluno e confissão.

df <- read.csv(“https://stats.idre.ucla.edu/stat/data/binary.csv”)

str(df)

## 'data.frame': 400 obs. de 4 variáveis:

## $ admit: int 0 1 1 1 0 1 1 0 1 0 …

## $ gre : int 380 660 800 640 520 760 560 400 540 700 …

## $ gpa : num 3,61 3,67 4 3,19 2,93 3 2,98 3,08 3,39 3,92 …

## $ rank : int 3 3 1 4 4 2 1 2 3 2 …

As variáveis ​​são numéricas ou inteiras:

soma(é.na(df))

## [1] 0

Também verificamos que não há valores nulos, e há mais eventos de rejeições do que de aceitação porque a média do limite variável é menor que 0,5.

Você deve certificar-se de que o sistema distribui as admissões adequadamente em todas as categorias de classificação. Suponha que uma classificação tenha apenas 5 rejeições (ou admita informações), então você não precisa necessariamente usar essa classificação em sua análise.

xtabs(~ admitir +rank ,data=df)

## classificação

## admitir 1 2 3 4

## 0 28 97 93 55

## 1 33 54 28 12

Vamos executar nossa função agora:

df$rank <- as.factor(df$rank)

logit <- glm(admitir ~ gre+gpa+rank,data=df,family=”binomial”)

resumo(log)

##

## Chamar:

## glm(formula = admitir ~ gre + gpa + rank, family = “binomial”,

## dados = df)

##

## Resíduos de Desvio:

## Mín 1T Mediana 3T Máx

## -1,6268 -0,8662 -0,6388 1,1490 2,0790

##

## Coeficientes:

## Estimativa padrão Valor z do erro Pr(>|z|)

## (Interceptar) -3.989979 1.139951 -3.500 0.000465 ***

## gre 0,002264 0,001094 2,070 0,038465 *

## gpa 0,804038 0,331819 2,423 0,015388 *

## classificação2 -0,675443 0,316490 -2,134 0,032829 *

## classificação3 -1,340204 0,345306 -3,881 0,000104 ***

## classificação4 -1,551464 0,417832 -3,713 0,000205 ***

## —

## Signif. códigos: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1'' 1

##

## (parâmetro de dispersão para família binomial tomado como 1)

##

## Desvio nulo: 499,98 em 399 graus de liberdade

## Desvio residual: 458,52 em 394 graus de liberdade

## AIC: 470,52

##

## Número de iterações de Fisher Scoring: 4

Você deve ter notado que convertemos a variável rank para fatorar de inteiro antes de executar a função. Certifique-se de fazer o mesmo.

Resultado final:

Suponha que o GPA de um aluno seja 3,8, uma pontuação GRE de 790 e ele estudou em uma faculdade de nível 1. Vamos encontrar as chances dele de ser admitido no futuro usando nosso modelo:

x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))

p<- predizer(logit,x)

p

## 1

## 0,85426

Nosso modelo prevê que o menino tem 85% de chance de ser admitido no futuro.

Leia também: Ideias de projetos de aprendizado de máquina

Pensamentos finais

É isso para este artigo. Estamos confiantes de que você teria achado bastante útil. Se você tiver dúvidas ou pensamentos sobre regressão logística e seus tópicos relacionados, compartilhe-os na seção de comentários abaixo.

Se você está curioso para aprender sobre R, tudo sobre ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1-on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

Como a regressão logística e a regressão linear são diferentes uma da outra?

O objetivo da regressão linear é identificar a linha de melhor ajuste, mas a regressão logística vai um passo além e ajusta os valores da linha à curva sigmóide. A principal diferença entre esses dois métodos é que a regressão logística é aplicada quando a variável dependente é binária. Quando a variável dependente é contínua e a linha de regressão é linear, a regressão linear é usada. Enquanto a técnica de mínimos quadrados ordinários é usada para estimar a regressão linear, o método de estimativa de máxima verossimilhança é usado para estimar a regressão logística. A saída da regressão linear é contínua, mas a da regressão logística tem apenas um número restrito de valores potenciais discretos.

Quando o uso da regressão logística é útil?

A variável dependente categórica é prevista por meio de regressão logística. Quando os dados que temos podem ser medidos em escala infinita, podemos aplicar a regressão logística. Para estimar a probabilidade de uma ocorrência, a análise de regressão logística é útil. Ele ajuda a determinar a probabilidade de quaisquer duas classes. Somente os resultados de classificação e probabilidade podem ser previstos usando regressão logística. Ele pode ser usado para resolver uma variedade de problemas de classificação, como detecção de spam, previsão de diabetes, diagnóstico de câncer e assim por diante.

Quais são as limitações do uso da regressão logística?

1. Como a regressão logística tem uma superfície de decisão linear, ela não pode abordar questões não lineares.

2. O algoritmo de regressão logística é sensível a valores discrepantes.

3. Como o dimensionamento e a normalização são critérios-chave da regressão logística, a preparação de dados pode ser demorada.

4. Se existir um recurso que separe completamente duas classes, o modelo não poderá mais ser treinado. Isso é denominado como 'separação completa'.

5. Se o número de observações for menor que o número de características, a regressão logística não deve ser aplicada, pois pode resultar em overfitting.

6. Outra desvantagem é que cada ponto de dados na regressão logística precisa ser independente de todos os outros pontos de dados. Quando as observações estão conectadas, o modelo tende a superestimar a relevância dessas observações.