Dados binários e regressão logística

Modelos Lineares Generalizados em Python

Ita Cirovic Donev

Data Science Consultant

Dados de resposta binária

  • Resposta com duas classes $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

Exemplos:

  • Score de crédito $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • Aprovação em prova $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • Detecção de fraude $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • Escolha de produto $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Modelos Lineares Generalizados em Python

Dados binários

DESAGRUPADOS

  • Evento único
  • Lançar uma moeda
  • Dois resultados possíveis: 0/1
  • $Bernoulli(p)$ ou
  • $Binomial(n=1,p)$

AGRUPADOS

  • Vários eventos
  • Lançar várias moedas
  • Número de sucessos em $n$ tentativas
  • $Binomial(n,p)$
Modelos Lineares Generalizados em Python

Função logística

Dispersão de horas de estudo e resposta de passar ou reprovar (0/1)

Modelos Lineares Generalizados em Python

Função logística

Dispersão de horas de estudo e resposta de passar ou reprovar (0/1)

  • Resultado: $PASS=1$ ou $FAIL=0$

  • Queremos modelar

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

Modelos Lineares Generalizados em Python

Função logística

Ajuste logístico aos dados de horas de estudo e resposta de passar ou reprovar (0/1)

  • Resultado: $PASS=1$ ou $FAIL=0$

  • Queremos modelar

$P(y=1)=\beta_0 + \beta_1x_1$

$P(\text{Pass})=\beta_0 + \beta_1 \times \text{Hours of study}$

  • Usar a função logística

$f(z) = \frac{1}{(1+\exp(-z))}$

Modelos Lineares Generalizados em Python

Odds e razão de chances

       

$$ ODDS = \frac{\text{evento ocorrendo}}{\text{evento NÃO ocorrendo}} $$

       

$$ \text{ODDS RATIO} = \frac{odds 1}{odds 2} $$

Modelos Lineares Generalizados em Python

Exemplo de odds

  • 4 jogos 3 vitórias e 1 derrota em sequência

  • Odds são 3 para 1 Cálculo visual das odds com 3 vitórias no numerador e 1 derrota no denominador.

Modelos Lineares Generalizados em Python

Odds e probabilidades

  $$ \text{odds} \neq \text{probability} $$

  $$ \text{odds} = \frac{\text{probability}}{1-\text{probability}} $$

  $$ \text{probability} = \frac{\text{odds}}{1+\text{odds}} $$

Modelos Lineares Generalizados em Python

Do modelo de probabilidade à regressão logística

 

Passo 1. Modelo de probabilidade

$E(y)=\mu=P(y=1)=\beta_0 + \beta_1x_1$

 

Passo 2. Função logística

$f(z) = \large{\frac{1}{(1+\exp(-z))}}$

 

Passo 3. Aplicar a função logística $\rightarrow$ INVERSA-LOGIT

$\mu = \large{\frac{1}{1+\exp(-(\beta_0+\beta_1x_1))}} = \large{\frac{\exp(\beta_0+\beta_1x_1)}{1+\exp(\beta_0+\beta_1x_1)}}$

$1-\mu = \large{\frac{1}{1+\exp(\beta_0+\beta_1x_1)}}$

Modelos Lineares Generalizados em Python

Do modelo de probabilidade à regressão logística

 

  • Probabilidade $\rightarrow$ odds $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • Transformação log $\rightarrow \color{#CF5383}{\text{REGRESSÃO LOGÍSTICA}}$

  $$ LOGIT(\mu)=log(\frac{\mu}{1-\mu}) = \beta_0+\beta_1x_1 $$

Modelos Lineares Generalizados em Python

Regressão logística em Python

Função - glm()

model_GLM = glm(formula = 'y ~ x',                        
                data = my_data, 
                family = sm.families.Binomial()).fit

Entrada

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Modelos Lineares Generalizados em Python

Vamos praticar!

Modelos Lineares Generalizados em Python

Preparing Video For Download...