Za hranice lineární regrese

Zobecněné lineární modely v Pythonu

Ita Cirovic Donev

Data Science Consultant

Cíle kurzu

  • Stavební bloky GLM
  • Trénování GLM
  • Interpretace výsledků modelu
  • Hodnocení výkonu modelu
  • Výpočet predikcí
  • Kapitola 1: GLM jako rozšíření lineárních modelů
  • Kapitola 2: Binomická (logistická) regrese
  • Kapitola 3: Poissonova regrese
  • Kapitola 4: Mnohonásobná logistická regrese
Zobecněné lineární modely v Pythonu

Přehled lineárních modelů

Bodový graf závislosti let praxe a platu.

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

Zobecněné lineární modely v Pythonu

Přehled lineárních modelů

Bodový graf závislosti let praxe a platu.

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

kde:
$\color{#00A388}y$ - závislá proměnná (výstup)

Zobecněné lineární modely v Pythonu

Přehled lineárních modelů

Bodový graf závislosti let praxe a platu.

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

kde:
$y$ - závislá proměnná (výstup)
$\color{#FF6138}x$ - vysvětlující proměnná (vstup)

Zobecněné lineární modely v Pythonu

Přehled lineárních modelů

Bodový graf závislosti let praxe a platu.

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

kde:
$y$ - závislá proměnná (výstup)
$x$ - vysvětlující proměnná (vstup)
$\color{#007AFF}{\beta}$ - parametry modelu
$\color{#007AFF}{\beta_0}$ - úsek (intercept)
$\color{#007AFF}{\beta_1}$ - sklon

Zobecněné lineární modely v Pythonu

Přehled lineárních modelů

Bodový graf závislosti let praxe a platu.

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

kde:
$y$ - závislá proměnná (výstup)
$x$ - vysvětlující proměnná (vstup)
$\color{#007AFF}{\beta}$ - parametry modelu
$\color{#007AFF}{\beta_0}$ - úsek (intercept)
$\color{#007AFF}{\beta_1}$ - sklon
$\color{#B12BFF}{\epsilon}$ - náhodná chyba

Zobecněné lineární modely v Pythonu

LINEÁRNÍ MODEL - ols()

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

ZOBECNĚNÝ LINEÁRNÍ MODEL - glm()

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm(formula = 'y ~ X', 
            data = my_data,
            family = sm.families.____).fit()
Zobecněné lineární modely v Pythonu

Předpoklady lineárních modelů

Lineární proložení dat závislosti let praxe a platu.

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

Regresní funkce

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

Předpoklady

  • Linearita v parametrech
  • Chyby jsou nezávislé a normálně rozdělené
  • Konstantní rozptyl
Zobecněné lineární modely v Pythonu

Co když ... ?

  • Odezva je binární nebo počtová $\rightarrow \color{red}{\text{NENÍ spojitá}}$

Distribuce spojité, binární a Poissonovy náhodné proměnné.

  • Rozptyl $y$ není konstantní $\rightarrow \color{red}{\text{závisí na střední hodnotě}}$
Zobecněné lineární modely v Pythonu

Dataset – hnízdění podkovnatky americké

Název proměnné Popis
sat Počet satelitů v hnízdě
y V hnízdě je alespoň jeden satelit; 0/1
weight Hmotnost samice kraba v kg
width Šířka samice kraba v cm
color 1 - světle střední, 2 - střední, 3 - tmavě střední, 4 - tmavý
spine 1 - oba v pořádku, 2 - jeden opotřebený nebo zlomený, 3 - oba opotřebené nebo zlomené
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Zobecněné lineární modely v Pythonu

Lineární model a binární odezva

 

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

y ~ weight

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

Zobecněné lineární modely v Pythonu

Lineární model a binární odezva

Bodový graf hmotnosti samice kraba a odezvy (alespoň jeden satelit v blízkosti).

Zobecněné lineární modely v Pythonu

Lineární model a binární odezva

Lineární proložení dat hmotnosti samice kraba a odezvy (alespoň jeden satelit v blízkosti).

Zobecněné lineární modely v Pythonu

Lineární model a binární odezva

Odečtení hodnoty pravděpodobnosti z lineárního modelu pro hmotnost samice kraba a odezvu (alespoň jeden satelit v blízkosti).

Zobecněné lineární modely v Pythonu

Lineární model a binární data

Přidání GLM (binomického) proložení k lineárnímu proložení dat hmotnosti samice kraba a odezvy (alespoň jeden satelit v blízkosti).

Zobecněné lineární modely v Pythonu

Lineární model a binární data

Odečtení hodnoty pravděpodobnosti z GLM (binomického) modelu pro hmotnost samice kraba a odezvu (alespoň jeden satelit v blízkosti).

Zobecněné lineární modely v Pythonu

Od pravděpodobností ke třídám

Rozdělení výstupu modelu podle definované prahové hodnoty pravděpodobnosti.

Zobecněné lineární modely v Pythonu

Pojďme si procvičit!

Zobecněné lineární modely v Pythonu

Preparing Video For Download...