Indo além da regressão linear

Modelos Lineares Generalizados em Python

Ita Cirovic Donev

Data Science Consultant

Objetivos do curso

  • Aprender os blocos básicos de GLMs
  • Treinar GLMs
  • Interpretar os resultados
  • Avaliar o desempenho do modelo
  • Calcular previsões
  • Capítulo 1: Como os GLMs estendem os modelos lineares
  • Capítulo 2: Regressão binomial (logística)
  • Capítulo 3: Regressão de Poisson
  • Capítulo 4: Regressão logística multivariada
Modelos Lineares Generalizados em Python

Revisão de modelos lineares

Dispersão de anos de experiência e salário.

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

Modelos Lineares Generalizados em Python

Revisão de modelos lineares

Dispersão de anos de experiência e salário.

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

onde:
$\color{#00A388}y$ - variável resposta (saída)

Modelos Lineares Generalizados em Python

Revisão de modelos lineares

Dispersão de anos de experiência e salário.

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

onde:
$y$ - variável resposta (saída)
$\color{#FF6138}x$ - variável explicativa (entrada)

Modelos Lineares Generalizados em Python

Revisão de modelos lineares

Dispersão de anos de experiência e salário.

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

onde:
$y$ - variável resposta (saída)
$x$ - variável explicativa (entrada)
$\color{#007AFF}{\beta}$ - parâmetros do modelo
$\color{#007AFF}{\beta_0}$ - intercepto
$\color{#007AFF}{\beta_1}$ - inclinação

Modelos Lineares Generalizados em Python

Revisão de modelos lineares

Dispersão de anos de experiência e salário.

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

onde:
$y$ - variável resposta (saída)
$x$ - variável explicativa (entrada)
$\color{#007AFF}{\beta}$ - parâmetros do modelo
$\color{#007AFF}{\beta_0}$ - intercepto
$\color{#007AFF}{\beta_1}$ - inclinação
$\color{#B12BFF}{\epsilon}$ - erro aleatório

Modelos Lineares Generalizados em Python

MODELO LINEAR - ols()

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

MODELO LINEAR GENERALIZADO - glm()

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm(formula = 'y ~ X', 
            data = my_data,
            family = sm.families.____).fit()
Modelos Lineares Generalizados em Python

Suposições de modelos lineares

Ajuste linear aos dados de anos de experiência e salário.

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

Função de regressão

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

Suposições

  • Linear nos parâmetros
  • Erros independentes e normalmente distribuídos
  • Variância constante
Modelos Lineares Generalizados em Python

E se ... ?

  • A resposta é binária ou de contagem $\rightarrow \color{red}{\text{NÃO contínua}}$

Distribuição de variável contínua, binária e Poisson.

  • A variância de $y$ não é constante $\rightarrow \color{red}{\text{depende da média}}$
Modelos Lineares Generalizados em Python

Conjunto de dados - nidificação de caranguejos-ferradura

Nome da variável Descrição
sat Número de satélites no ninho
y Há pelo menos um satélite no ninho; 0/1
weight Peso da carangueja em kg
width Largura da carangueja em cm
color 1 - médio claro, 2 - médio, 3 - médio escuro, 4 - escuro
spine 1 - ambas boas, 2 - uma gasta ou quebrada, 3 - ambas gastas ou quebradas
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Modelos Lineares Generalizados em Python

Modelo linear e resposta binária

 

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

y ~ weight

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

Modelos Lineares Generalizados em Python

Modelo linear e resposta binária

Dispersão do peso da carangueja e a resposta (ao menos um satélite próximo).

Modelos Lineares Generalizados em Python

Modelo linear e resposta binária

Ajuste linear aos dados de peso da carangueja e a resposta (ao menos um satélite próximo).

Modelos Lineares Generalizados em Python

Modelo linear e resposta binária

Leitura do valor de probabilidade para o ajuste linear de peso da carangueja e a resposta (ao menos um satélite próximo).

Modelos Lineares Generalizados em Python

Modelo linear e dados binários

Adicionando ajuste de GLM (Binomial) ao ajuste linear para peso da carangueja e a resposta (ao menos um satélite próximo).

Modelos Lineares Generalizados em Python

Modelo linear e dados binários

Leitura do valor de probabilidade para o ajuste GLM (Binomial) de peso da carangueja e a resposta (ao menos um satélite próximo).

Modelos Lineares Generalizados em Python

De probabilidades para classes

Separação da saída do modelo dado um corte de probabilidade definido.

Modelos Lineares Generalizados em Python

Vamos praticar!

Modelos Lineares Generalizados em Python

Preparing Video For Download...