Бінарні дані та логістична регресія

Узагальнені лінійні моделі в Python

Ita Cirovic Donev

Data Science Consultant

Бінарні дані відповіді

  • Двокласна відповідь $\rightarrow \large{\texttt{\color{#079EA1}{0},\color{#ED715F}{1}}}$

Приклади:

  • Кредитний скоринг $\rightarrow \texttt{\color{#ED715F}{"Default"}/\color{#079EA1}{"Non-Default"}}$
  • Складання іспиту $\rightarrow \texttt{\color{#079EA1}{"Pass"}/\color{#ED715F}{"Fail"}}$
  • Виявлення шахрайства $\rightarrow \texttt{\color{#ED715F}{"Fraud"}/\color{#079EA1}{"No-Fraud"}}$
  • Вибір продукту $\rightarrow \texttt{\color{#2485F2}{"Product ABC"}/\color{#F2AC30}{"Product XYZ"}}$
Узагальнені лінійні моделі в Python

Бінарні дані

НЕЗГРУПОВАНІ

  • Одна подія
  • Один підкид монети
  • Два можливі результати: 0/1
  • $Bernoulli(p)$ або
  • $Binomial(n=1,p)$

ЗГРУПОВАНІ

  • Кілька подій
  • Кілька підкидів монети
  • Кількість успіхів у $n$ випробуваннях
  • $Binomial(n,p)$
Узагальнені лінійні моделі в Python

Логістична функція

Точкова діаграма: години підготовки та результат складання іспиту (0/1)

Узагальнені лінійні моделі в Python

Логістична функція

Точкова діаграма: години підготовки та результат складання іспиту (0/1)

  • Результат тесту: $PASS=1$ або $FAIL=0$

  • Хочемо змоделювати

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

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

Узагальнені лінійні моделі в Python

Логістична функція

Логістична крива для даних: години підготовки та результат складання іспиту (0/1)

  • Результат тесту: $PASS=1$ або $FAIL=0$

  • Хочемо змоделювати

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

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

  • Використаємо логістичну функцію

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

Узагальнені лінійні моделі в Python

Шанси та відношення шансів

       

$$ ODDS = \frac{\text{подія відбулася}}{\text{подія НЕ відбулася}} $$

       

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

Узагальнені лінійні моделі в Python

Приклад шансів

  • 4 гри 3 перемоги і 1 поразка послідовно

  • Шанси 3 до 1 Візуальне обчислення шансів: 3 блоки «перемога» в чисельнику і 1 блок «поразка» у знаменнику.

Узагальнені лінійні моделі в Python

Шанси та ймовірності

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

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

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

Узагальнені лінійні моделі в Python

Від ймовірнісної моделі до логістичної регресії

 

Крок 1. Ймовірнісна модель

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

 

Крок 2. Логістична функція

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

 

Крок 3. Застосувати логістичну функцію $\rightarrow$ INVERSE-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)}}$

Узагальнені лінійні моделі в Python

Від ймовірнісної моделі до логістичної регресії

 

  • Ймовірність $\rightarrow$ шанси $$ ODDS=\frac{\mu}{1-\mu} = exp{(\beta_0+\beta_1x_1)} $$  
  • Лог-перетворення $\rightarrow \color{#CF5383}{\text{LOGISTIC REGRESSION}}$

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

Узагальнені лінійні моделі в Python

Логістична регресія в Python

Функція — glm()

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

Вхідні дані

y = [0,1,1,0,...]
y = ['No','Yes','Yes',...]
y = ['Fail','Pass','Pass',...]
Узагальнені лінійні моделі в Python

Давайте потренуємось!

Узагальнені лінійні моделі в Python

Preparing Video For Download...