선형 회귀를 넘어서

Python으로 배우는 Generalized Linear Models

Ita Cirovic Donev

Data Science Consultant

학습 목표

  • GLM 구성 요소 학습
  • GLM 학습
  • 결과 해석
  • 성능 평가
  • 예측 계산
  • 1장: GLM은 선형 모형을 어떻게 확장하는가
  • 2장: 이항(로지스틱) 회귀
  • 3장: 포아송 회귀
  • 4장: 다변량 로지스틱 회귀
Python으로 배우는 Generalized Linear Models

선형 모형 복습

경력 연수와 급여의 산점도.

$\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으로 배우는 Generalized Linear Models

선형 모형 복습

경력 연수와 급여의 산점도.

$\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으로 배우는 Generalized Linear Models

선형 모형 복습

경력 연수와 급여의 산점도.

$\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으로 배우는 Generalized Linear Models

선형 모형 복습

경력 연수와 급여의 산점도.

$\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으로 배우는 Generalized Linear Models

선형 모형 복습

경력 연수와 급여의 산점도.

$\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으로 배우는 Generalized Linear Models

선형 모형 - 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으로 배우는 Generalized Linear Models

선형 모형의 가정

경력 연수와 급여 데이터에 대한 선형 적합.

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

회귀 함수

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

가정

  • 모수에 선형
  • 오차는 독립이며 정규분포
  • 분산 일정
Python으로 배우는 Generalized Linear Models

그렇다면?

  • 반응이 이진 또는 카운트임 $\rightarrow \color{red}{\text{연속형 아님}}$

연속형, 이진, 포아송 확률변수의 분포도.

  • $y$의 분산이 일정하지 않음 $\rightarrow \color{red}{\text{평균에 의존}}$
Python으로 배우는 Generalized Linear Models

데이터셋 -밤말게의 둥지

Variable Name Description
sat 둥지에 있는 위성 수
y 둥지에 위성이 하나 이상 있음; 0/1
weight 암컷 게의 무게(kg)
width 암컷 게의 너비(cm)
color 1 - 연한 중간, 2 - 중간, 3 - 짙은 중간, 4 - 짙음
spine 1 - 둘 다 양호, 2 - 하나 닳음/부러짐, 3 - 둘 다 닳음/부러짐
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Python으로 배우는 Generalized Linear Models

선형 모형과 이진 반응

 

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

y ~ weight

$P(\text{위성 게 존재})=P(y=1)$

Python으로 배우는 Generalized Linear Models

선형 모형과 이진 반응

암컷 게 무게와 반응(근처에 위성이 하나 이상) 산점도.

Python으로 배우는 Generalized Linear Models

선형 모형과 이진 반응

암컷 게 무게와 반응(근처에 위성이 하나 이상)에 대한 선형 적합.

Python으로 배우는 Generalized Linear Models

선형 모형과 이진 반응

암컷 게 무게와 반응의 선형모형 적합에서 확률값 읽기.

Python으로 배우는 Generalized Linear Models

선형 모형과 이진 데이터

암컷 게 무게와 반응 데이터에 선형 적합 + GLM(이항) 적합 추가.

Python으로 배우는 Generalized Linear Models

선형 모형과 이진 데이터

암컷 게 무게와 반응의 GLM(이항) 적합에서 확률값 읽기.

Python으로 배우는 Generalized Linear Models

확률에서 클래스까지

임계 확률값으로 모델 출력을 분류.

Python으로 배우는 Generalized Linear Models

연습해 봅시다!

Python으로 배우는 Generalized Linear Models

Preparing Video For Download...