Vượt ra ngoài hồi quy tuyến tính

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ita Cirovic Donev

Data Science Consultant

Mục tiêu khóa học

  • Nắm các khối xây dựng của GLM
  • Huấn luyện GLM
  • Diễn giải kết quả mô hình
  • Đánh giá hiệu năng mô hình
  • Tính dự đoán
  • Chương 1: GLM mở rộng mô hình tuyến tính như thế nào
  • Chương 2: Hồi quy nhị thức (logistic)
  • Chương 3: Hồi quy Poisson
  • Chương 4: Hồi quy logistic đa biến
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ôn tập mô hình tuyến tính

Biểu đồ phân tán: số năm kinh nghiệm và lương.

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

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ôn tập mô hình tuyến tính

Biểu đồ phân tán: số năm kinh nghiệm và lương.

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

trong đó:
$\color{#00A388}y$ - biến phản hồi (đầu ra)

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ôn tập mô hình tuyến tính

Biểu đồ phân tán: số năm kinh nghiệm và lương.

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

trong đó:
$y$ - biến phản hồi (đầu ra)
$\color{#FF6138}x$ - biến giải thích (đầu vào)

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ôn tập mô hình tuyến tính

Biểu đồ phân tán: số năm kinh nghiệm và lương.

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

trong đó:
$y$ - biến phản hồi (đầu ra)
$x$ - biến giải thích (đầu vào)
$\color{#007AFF}{\beta}$ - tham số mô hình
$\color{#007AFF}{\beta_0}$ - hệ số chặn
$\color{#007AFF}{\beta_1}$ - độ dốc

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ôn tập mô hình tuyến tính

Biểu đồ phân tán: số năm kinh nghiệm và lương.

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

trong đó:
$y$ - biến phản hồi (đầu ra)
$x$ - biến giải thích (đầu vào)
$\color{#007AFF}{\beta}$ - tham số mô hình
$\color{#007AFF}{\beta_0}$ - hệ số chặn
$\color{#007AFF}{\beta_1}$ - độ dốc
$\color{#B12BFF}{\epsilon}$ - sai số ngẫu nhiên

Mô hình Tuyến tính Tổng quát (GLM) trong Python

MÔ HÌNH TUYẾN TÍNH - ols()

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

MÔ HÌNH TUYẾN TÍNH HÓA TỔNG QUÁT - glm()

import statsmodels.api as sm
from statsmodels.formula.api import glm
model = glm(formula = 'y ~ X', 
            data = my_data,
            family = sm.families.____).fit()
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Giả định của mô hình tuyến tính

Đường khớp tuyến tính cho dữ liệu số năm kinh nghiệm và lương.

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

Hàm hồi quy

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

Giả định

  • Tuyến tính theo tham số
  • Sai số độc lập và phân phối chuẩn
  • Phương sai không đổi
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Nếu ... thì sao?

  • Biến phản hồi là nhị phân hoặc đếm $\rightarrow \color{red}{\text{KHÔNG liên tục}}$

Biểu đồ phân bố của biến liên tục, nhị phân và Poisson.

  • Phương sai của $y$ không cố định $\rightarrow \color{red}{\text{phụ thuộc vào trung bình}}$
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Bộ dữ liệu - làm tổ của cua móng ngựa

Tên biến Mô tả
sat Số vệ tinh sống trong tổ
y Có ít nhất một vệ tinh trong tổ; 0/1
weight Khối lượng cua cái (kg)
width Bề ngang cua cái (cm)
color 1 - trung bình nhạt, 2 - trung bình, 3 - trung bình đậm, 4 - đậm
spine 1 - cả hai tốt, 2 - một mòn/gãy, 3 - cả hai mòn/gãy
1 A. Agresti, An Introduction to Categorical Data Analysis, 2007.
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và phản hồi nhị phân

 

$\text{cua vệ tinh} \sim \text{khối lượng cua cái}$

y ~ weight

$P(\text{có cua vệ tinh})=P(y=1)$

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và phản hồi nhị phân

Biểu đồ phân tán: khối lượng cua cái và phản hồi (có ít nhất một vệ tinh).

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và phản hồi nhị phân

Đường khớp tuyến tính cho dữ liệu khối lượng cua cái và phản hồi (có ít nhất một vệ tinh).

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và phản hồi nhị phân

Đọc xác suất từ mô hình tuyến tính cho khối lượng cua cái và phản hồi (có ít nhất một vệ tinh).

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và dữ liệu nhị phân

Thêm khớp GLM (Nhị thức) vào đường khớp tuyến tính cho dữ liệu khối lượng cua cái và phản hồi (có ít nhất một vệ tinh).

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mô hình tuyến tính và dữ liệu nhị phân

Đọc xác suất từ khớp GLM (Nhị thức) cho khối lượng cua cái và phản hồi (có ít nhất một vệ tinh).

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Từ xác suất sang lớp

Phân tách đầu ra mô hình với ngưỡng xác suất xác định.

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ayo berlatih!

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Preparing Video For Download...