Verder dan lineaire regressie

Generalized Linear Models in Python

Ita Cirovic Donev

Data Science Consultant

Leerdoelen van de cursus

  • Leer de bouwstenen van GLM's
  • Train GLM's
  • Interpreteer modeluitkomsten
  • Beoordeel modelprestatie
  • Maak voorspellingen
  • Hoofdstuk 1: Hoe GLM's lineaire modellen uitbreiden
  • Hoofdstuk 2: Binomiale (logistische) regressie
  • Hoofdstuk 3: Poisson-regressie
  • Hoofdstuk 4: Multivariate logistische regressie
Generalized Linear Models in Python

Herhaling: lineaire modellen

Spreidingsdiagram van jaren ervaring en salaris.

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

Generalized Linear Models in Python

Herhaling: lineaire modellen

Spreidingsdiagram van jaren ervaring en salaris.

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

waar:
$\color{#00A388}y$ - responsvariabele (output)

Generalized Linear Models in Python

Herhaling: lineaire modellen

Spreidingsdiagram van jaren ervaring en salaris.

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

waar:
$y$ - responsvariabele (output)
$\color{#FF6138}x$ - verklarende variabele (input)

Generalized Linear Models in Python

Herhaling: lineaire modellen

Spreidingsdiagram van jaren ervaring en salaris.

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

waar:
$y$ - responsvariabele (output)
$x$ - verklarende variabele (input)
$\color{#007AFF}{\beta}$ - modelparameters
$\color{#007AFF}{\beta_0}$ - intercept
$\color{#007AFF}{\beta_1}$ - helling

Generalized Linear Models in Python

Herhaling: lineaire modellen

Spreidingsdiagram van jaren ervaring en salaris.

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

waar:
$y$ - responsvariabele (output)
$x$ - verklarende variabele (input)
$\color{#007AFF}{\beta}$ - modelparameters
$\color{#007AFF}{\beta_0}$ - intercept
$\color{#007AFF}{\beta_1}$ - helling
$\color{#B12BFF}{\epsilon}$ - random fout

Generalized Linear Models in Python

LINEAIR MODEL - ols()

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

GEGENERALISEERD LINEAIR 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()
Generalized Linear Models in Python

Aannames van lineaire modellen

Lineaire fit op data van jaren ervaring en salaris.

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

Regressiefunctie

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

Aannames

  • Lineair in parameters
  • Fouten zijn onafhankelijk en normaal verdeeld
  • Constante variantie
Generalized Linear Models in Python

Wat als ... ?

  • De respons is binair of een telling $\rightarrow \color{red}{\text{NIET continu}}$

Displot van continue, binaire en Poisson-toevalsvariabele.

  • De variantie van $y$ is niet constant $\rightarrow \color{red}{\text{hangt af van het gemiddelde}}$
Generalized Linear Models in Python

Dataset - nestelen van de degenkrab

Variable Name Description
sat Aantal satellieten in het nest
y Er is minstens één satelliet in het nest; 0/1
weight Gewicht van het vrouwtje (krab) in kg
width Breedte van het vrouwtje (krab) in cm
color 1 - licht medium, 2 - medium, 3 - donker medium, 4 - donker
spine 1 - beide goed, 2 - één versleten of gebroken, 3 - beide versleten of gebroken
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Generalized Linear Models in Python

Lineair model en binaire respons

 

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

y ~ weight

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

Generalized Linear Models in Python

Lineair model en binaire respons

Spreidingsdiagram van gewicht van vrouwtjeskrab en de respons (minstens één satelliet nabij).

Generalized Linear Models in Python

Lineair model en binaire respons

Lineaire fit op data van gewicht van vrouwtjeskrab en de respons (minstens één satelliet nabij).

Generalized Linear Models in Python

Lineair model en binaire respons

Uitlezen van kanswaarde voor de lineaire fit van gewicht van vrouwtjeskrab en de respons (minstens één satelliet nabij).

Generalized Linear Models in Python

Lineair model en binaire data

GLM (Binomiaal) fit toegevoegd aan de lineaire fit voor gewicht van vrouwtjeskrab en de respons (minstens één satelliet nabij).

Generalized Linear Models in Python

Lineair model en binaire data

Uitlezen van kanswaarde voor de GLM (Binomiaal) fit van gewicht van vrouwtjeskrab en de respons (minstens één satelliet nabij).

Generalized Linear Models in Python

Van kansen naar klassen

Scheiding van modeloutput bij een gekozen afkappunt voor kans.

Generalized Linear Models in Python

Laten we oefenen!

Generalized Linear Models in Python

Preparing Video For Download...