Поза межі лінійної регресії

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

Ita Cirovic Donev

Data Science Consultant

Мета курсу

  • Вивчіть складові GLM
  • Навчіть GLM
  • Тлумачте результати моделі
  • Оцініть продуктивність моделі
  • Обчисліть прогнози
  • Розділ 1: Як GLM розширюють лінійні моделі
  • Розділ 2: Біноміальна (логістична) регресія
  • Розділ 3: Регресія Пуассона
  • Розділ 4: Багатозмінна логістична регресія
Узагальнені лінійні моделі в Python

Огляд лінійних моделей

Точкова діаграма: роки досвіду та зарплата.

$\color{#00A388}{\text{salary}} \sim \color{#FF6138}{\text{experience}}$

$\normalsize{\color{#00A388}{\text{salary}} = \beta_0 + \beta_1\times\color{#FF6138}{\text{experience}} + \epsilon}$

$\normalsize{\color{#00A388}y = \beta_0 + \beta_1x_1 + \epsilon}$

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

Огляд лінійних моделей

Точкова діаграма: роки досвіду та зарплата.

$\color{#00A388}{\text{salary}} \sim \color{#FF6138}{\text{experience}}$

$\color{#00A388}{\text{salary}} = \beta_0 + \beta_1\times{\text{experience}} + \epsilon$

$\color{#00A388}y = \beta_0 + \beta_1x_1 + \epsilon$

де:
$\color{#00A388}y$ — залежна змінна (вихід)

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

Огляд лінійних моделей

Точкова діаграма: роки досвіду та зарплата.

$\color{#00A388}{\text{salary}} \sim \color{#FF6138}{\text{experience}}$

$\normalsize{\color{#00A388}{\text{salary}} = \beta_0 + \beta_1\times\color{#FF6138}{\text{experience}} + \epsilon}$

$\normalsize{\color{#00A388}y = \beta_0 + \beta_1\color{#FF6138}{x_1} + \epsilon}$

де:
$y$ — залежна змінна (вихід)
$\color{#FF6138}x$ — пояснювальна змінна (вхід)

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

Огляд лінійних моделей

Точкова діаграма: роки досвіду та зарплата.

$\color{#00A388}{\text{salary}} \sim \color{#FF6138}{\text{experience}}$

$\normalsize{\color{#00A388}{\text{salary}} = \color{#007AFF}{\beta_0} + \color{#007AFF}{\beta_1}\times\color{#FF6138}{\text{experience}} + \epsilon}$

$\normalsize{\color{#00A388}y = \color{#007AFF}{\beta_0} + \color{#007AFF}{\beta_1}\color{#FF6138}{x_1} + \epsilon}$

де:
$y$ — залежна змінна (вихід)
$x$ — пояснювальна змінна (вхід)
$\color{#007AFF}{\beta}$ — параметри моделі
$\color{#007AFF}{\beta_0}$ — вільний член
$\color{#007AFF}{\beta_1}$ — кутовий коефіцієнт

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

Огляд лінійних моделей

Точкова діаграма: роки досвіду та зарплата.

$\color{#00A388}{\text{salary}} \sim \color{#FF6138}{\text{experience}}$

$\normalsize{\color{#00A388}{\text{salary}} = \color{#007AFF}{\beta_0} + \color{#007AFF}{\beta_1}\times\color{#FF6138}{\text{experience}} + \color{#B12BFF}\epsilon}$

$\normalsize{\color{#00A388}y = \color{#007AFF}{\beta_0} + \color{#007AFF}{\beta_1}\color{#FF6138}{x_1} + \color{#B12BFF}\epsilon}$

де:
$y$ — залежна змінна (вихід)
$x$ — пояснювальна змінна (вхід)
$\color{#007AFF}{\beta}$ — параметри моделі
$\color{#007AFF}{\beta_0}$ — вільний член
$\color{#007AFF}{\beta_1}$ — кутовий коефіцієнт
$\color{#B12BFF}{\epsilon}$ — випадкова похибка

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

ЛІНІЙНА МОДЕЛЬ — ols()

from statsmodels.formula.api import ols
model = ols(formula = 'y ~ X', 
            data = my_data).fit()

УЗАГАЛЬНЕНА ЛІНІЙНА МОДЕЛЬ — glm()

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm(formula = 'y ~ X', 
            data = my_data,
            family = sm.families.____).fit()
Узагальнені лінійні моделі в Python

Припущення лінійних моделей

Лінійне наближення для даних: роки досвіду та зарплата.

$$ \normalsize{{\text{salary} = \color{blue}{25790} + \color{blue}{9449}\times\text{experience}}} $$

Регресійна функція

$\normalsize{E[y] = \mu = \beta_0 + \beta_1x_1}$

Припущення

  • Лінійність у параметрах
  • Похибки незалежні та нормально розподілені
  • Постійна дисперсія
Узагальнені лінійні моделі в Python

А що, якщо...?

  • Відгук бінарний або лічильний $\rightarrow \color{red}{\text{НЕ неперервний}}$

Розподіли: неперервна, бінарна та пуассонівська випадкова змінні.

  • Дисперсія $y$ не стала $\rightarrow \color{red}{\text{залежить від середнього}}$
Узагальнені лінійні моделі в Python

Набір даних — гніздування мечохвостів

Назва змінної Опис
sat Кількість «супутників» у гнізді
y Є принаймні один «супутник» у гнізді; 0/1
weight Маса самиці краба, кг
width Ширина самиці краба, см
color 1 — світло-середній, 2 — середній, 3 — темно-середній, 4 — темний
spine 1 — обидва цілі, 2 — один зношений або зламаний, 3 — обидва зношені або зламані
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Узагальнені лінійні моделі в Python

Лінійна модель і бінарний відгук

 

$\text{satellite crab} \sim \text{female crab weight}$

y ~ weight

$P(\text{satellite crab is present})=P(y=1)$

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

Лінійна модель і бінарний відгук

Точкова діаграма: маса самиці краба та відгук (є принаймні один «супутник»).

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

Лінійна модель і бінарний відгук

Лінійне наближення: маса самиці краба та відгук (є принаймні один «супутник»).

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

Лінійна модель і бінарний відгук

Зчитування ймовірності для лінійної моделі: маса самиці краба та відгук (є принаймні один «супутник»).

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

Лінійна модель і бінарні дані

Додавання апроксимації GLM (біноміальна) до лінійної: маса самиці краба та відгук (є принаймні один «супутник»).

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

Лінійна модель і бінарні дані

Зчитування ймовірності для GLM (біноміальна): маса самиці краба та відгук (є принаймні один «супутник»).

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

Від ймовірностей до класів

Розділення виходу моделі за заданим порогом ймовірності.

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

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

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

Preparing Video For Download...