Binära data och logistisk regression

Generaliserade linjära modeller i Python

Ita Cirovic Donev

Data Science Consultant

Binära utfallsdata

  • Tvåklassigt utfall $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

Exempel:

  • Kreditbedömning $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • Godkänt prov $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • Bedrägeridetektering $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • Val av produkt $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Generaliserade linjära modeller i Python

Binära data

OGRUPPAD

  • Enstaka händelse
  • Kasta ett mynt
  • Två möjliga utfall: 0/1
  • $Bernoulli(p)$ eller
  • $Binomial(n=1,p)$

GRUPPERAD

  • Flera händelser
  • Kasta flera mynt
  • Antal lyckade utfall av $n$ försök
  • $Binomial(n,p)$
Generaliserade linjära modeller i Python

Den logistiska funktionen

Spridningsdiagram över studietimmar och utfallet godkänt eller underkänt (0/1)

Generaliserade linjära modeller i Python

Den logistiska funktionen

Spridningsdiagram över studietimmar och utfallet godkänt eller underkänt (0/1)

  • Provresultat: $PASS=1$ eller $FAIL=0$

  • Vi vill modellera

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

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

Generaliserade linjära modeller i Python

Den logistiska funktionen

Logistisk anpassning till data för studietimmar och utfallet godkänt eller underkänt (0/1)

  • Provresultat: $PASS=1$ eller $FAIL=0$

  • Vi vill modellera

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

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

  • Använd den logistiska funktionen

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

Generaliserade linjära modeller i Python

Odds och oddskvot

       

$$ ODDS = \frac{\text{event occuring}}{\text{event NOT occuring}} $$

       

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

Generaliserade linjära modeller i Python

Oddsexempel

  • 4 matcher 3 vinster och 1 förlust som en sekvens

  • Odds är 3 till 1 Visuell beräkning av odds med 3 vinstrutor i täljaren och 1 förlustruta i nämnaren.

Generaliserade linjära modeller i Python

Odds och sannolikheter

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

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

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

Generaliserade linjära modeller i Python

Från sannolikhetsmodell till logistisk regression

 

Steg 1. Sannolikhetsmodell

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

 

Steg 2. Logistisk funktion

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

 

Steg 3. Tillämpa logistisk funktion $\rightarrow$ INVERS-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)}}$

Generaliserade linjära modeller i Python

Från sannolikhetsmodell till logistisk regression

 

  • Sannolikhet $\rightarrow$ odds $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • Logaritmtransformation $\rightarrow \color{#CF5383}{\text{LOGISTISK REGRESSION}}$

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

Generaliserade linjära modeller i Python

Logistisk regression i Python

Funktion – glm()

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

Indata

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Generaliserade linjära modeller i Python

Nu kör vi en övning!

Generaliserade linjära modeller i Python

Preparing Video For Download...