Date binare și regresie logistică

Modele Liniare Generalizate în Python

Ita Cirovic Donev

Data Science Consultant

Date cu răspuns binar

  • Răspuns binar $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

Exemple:

  • Scoring de credit $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • Promovarea unui test $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • Detectarea fraudelor $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • Alegerea unui produs $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Modele Liniare Generalizate în Python

Date binare

NEGRUPAT

  • Eveniment unic
  • Aruncarea unei monede
  • Două rezultate posibile: 0/1
  • $Bernoulli(p)$ sau
  • $Binomial(n=1,p)$

GRUPAT

  • Evenimente multiple
  • Aruncarea mai multor monede
  • Numărul de succese dintr-un număr $n$ de încercări
  • $Binomial(n,p)$
Modele Liniare Generalizate în Python

Funcția logistică

Diagramă de dispersie a orelor de studiu și rezultatul unui test (0/1)

Modele Liniare Generalizate în Python

Funcția logistică

Diagramă de dispersie a orelor de studiu și rezultatul unui test (0/1)

  • Rezultatul testului: $PASS=1$ sau $FAIL=0$

  • Dorim să modelăm

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

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

Modele Liniare Generalizate în Python

Funcția logistică

Ajustare logistică pe datele privind orele de studiu și rezultatul unui test (0/1)

  • Rezultatul testului: $PASS=1$ sau $FAIL=0$

  • Dorim să modelăm

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

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

  • Se folosește funcția logistică

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

Modele Liniare Generalizate în Python

Cote și raport de cote

       

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

       

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

Modele Liniare Generalizate în Python

Exemplu de cote

  • 4 meciuri 3 victorii și 1 înfrângere ca secvență

  • Cotele sunt 3 la 1 Calculul vizual al cotelor cu 3 casete victorie la numărător și 1 casetă înfrângere la numitor.

Modele Liniare Generalizate în Python

Cote și probabilități

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

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

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

Modele Liniare Generalizate în Python

De la modelul de probabilitate la regresia logistică

 

Pasul 1. Model de probabilitate

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

 

Pasul 2. Funcția logistică

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

 

Pasul 3. Aplicarea funcției logistice $\rightarrow$ LOGIT INVERS

$\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)}}$

Modele Liniare Generalizate în Python

De la modelul de probabilitate la regresia logistică

 

  • Probabilitate $\rightarrow$ cote $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • Transformare logaritmică $\rightarrow \color{#CF5383}{\text{REGRESIE LOGISTICĂ}}$

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

Modele Liniare Generalizate în Python

Regresie logistică în Python

Funcție - glm()

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

Date de intrare

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Modele Liniare Generalizate în Python

Să exersăm!

Modele Liniare Generalizate în Python

Preparing Video For Download...