Dincolo de regresia liniară

Modele Liniare Generalizate în Python

Ita Cirovic Donev

Data Science Consultant

Obiectivele cursului

  • Elementele fundamentale ale MLG
  • Antrenarea MLG
  • Interpretarea rezultatelor modelului
  • Evaluarea performanței modelului
  • Calcularea predicțiilor
  • Capitolul 1: MLG ca extensie a modelelor liniare
  • Capitolul 2: Regresia binomială (logistică)
  • Capitolul 3: Regresia Poisson
  • Capitolul 4: Regresia logistică multivariată
Modele Liniare Generalizate în Python

Recapitulare: modele liniare

Diagramă de dispersie a anilor de experiență și salariu.

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

Modele Liniare Generalizate în Python

Recapitulare: modele liniare

Diagramă de dispersie a anilor de experiență și salariu.

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

unde:
$\color{#00A388}y$ - variabilă răspuns (ieșire)

Modele Liniare Generalizate în Python

Recapitulare: modele liniare

Diagramă de dispersie a anilor de experiență și salariu.

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

unde:
$y$ - variabilă răspuns (ieșire)
$\color{#FF6138}x$ - variabilă explicativă (intrare)

Modele Liniare Generalizate în Python

Recapitulare: modele liniare

Diagramă de dispersie a anilor de experiență și salariu.

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

unde:
$y$ - variabilă răspuns (ieșire)
$x$ - variabilă explicativă (intrare)
$\color{#007AFF}{\beta}$ - parametrii modelului
$\color{#007AFF}{\beta_0}$ - interceptul
$\color{#007AFF}{\beta_1}$ - panta

Modele Liniare Generalizate în Python

Recapitulare: modele liniare

Diagramă de dispersie a anilor de experiență și salariu.

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

unde:
$y$ - variabilă răspuns (ieșire)
$x$ - variabilă explicativă (intrare)
$\color{#007AFF}{\beta}$ - parametrii modelului
$\color{#007AFF}{\beta_0}$ - interceptul
$\color{#007AFF}{\beta_1}$ - panta
$\color{#B12BFF}{\epsilon}$ - eroare aleatoare

Modele Liniare Generalizate în Python

MODEL LINIAR - ols()

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

MODEL LINIAR GENERALIZAT - glm()

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm(formula = 'y ~ X', 
            data = my_data,
            family = sm.families.____).fit()
Modele Liniare Generalizate în Python

Ipotezele modelelor liniare

Ajustare liniară pe datele privind anii de experiență și salariu.

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

Funcția de regresie

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

Ipoteze

  • Liniară în parametri
  • Erorile sunt independente și normal distribuite
  • Varianță constantă
Modele Liniare Generalizate în Python

Ce se întâmplă dacă ... ?

  • Răspunsul este binar sau număr de evenimente $\rightarrow \color{red}{\text{NU continuu}}$

Distribuții ale unei variabile continue, binare și Poisson.

  • Varianța lui $y$ nu este constantă $\rightarrow \color{red}{\text{depinde de medie}}$
Modele Liniare Generalizate în Python

Set de date - cuibăritul crabilor potcoavă

Nume variabilă Descriere
sat Numărul de sateliți din cuib
y Există cel puțin un satelit în cuib; 0/1
weight Greutatea femelei de crab în kg
width Lățimea femelei de crab în cm
color 1 - mediu deschis, 2 - mediu, 3 - mediu închis, 4 - închis
spine 1 - ambele intacte, 2 - una uzată sau ruptă, 3 - ambele uzate sau rupte
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Modele Liniare Generalizate în Python

Model liniar și răspuns binar

 

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

y ~ weight

$P(\text{crab satelit prezent})=P(y=1)$

Modele Liniare Generalizate în Python

Model liniar și răspuns binar

Diagramă de dispersie a greutății femelei de crab și răspunsul (cel puțin un satelit în apropiere).

Modele Liniare Generalizate în Python

Model liniar și răspuns binar

Ajustare liniară pe datele privind greutatea femelei de crab și răspunsul (cel puțin un satelit în apropiere).

Modele Liniare Generalizate în Python

Model liniar și răspuns binar

Citirea valorii de probabilitate pentru ajustarea modelului liniar privind greutatea femelei de crab și răspunsul (cel puțin un satelit în apropiere).

Modele Liniare Generalizate în Python

Model liniar și date binare

Adăugarea ajustării MLG (Binomial) la ajustarea liniară pe datele privind greutatea femelei de crab și răspunsul (cel puțin un satelit în apropiere).

Modele Liniare Generalizate în Python

Model liniar și date binare

Citirea valorii de probabilitate pentru ajustarea modelului MLG (Binomial) privind greutatea femelei de crab și răspunsul (cel puțin un satelit în apropiere).

Modele Liniare Generalizate în Python

De la probabilități la clase

Separarea ieșirii modelului în funcție de un prag de probabilitate definit.

Modele Liniare Generalizate în Python

Să exersăm!

Modele Liniare Generalizate în Python

Preparing Video For Download...