Biến giải thích phân loại

Giới thiệu về Hồi quy với statsmodels trong Python

Maarten Van den Broeck

Content Developer at DataCamp

Bộ dữ liệu cá

  • Mỗi hàng là một con cá.
  • Bộ dữ liệu có 128 hàng.
  • Có 4 loài cá:
    • Cá tráp (Bream)
    • Cá rô châu Âu (Perch)
    • Cá chó phương Bắc (Pike)
    • Cá rọch (Roach)
species mass_g
Bream 242.0
Perch 5.9
Pike 200.0
Roach 40.0
... ...
Giới thiệu về Hồi quy với statsmodels trong Python

Trực quan hóa 1 biến số và 1 biến phân loại

import matplotlib.pyplot as plt
import seaborn as sns

sns.displot(data=fish,
            x="mass_g",
            col="species",
            col_wrap=2,
            bins=9)

plt.show()

Biểu đồ tần suất theo từng loài: bream, perch, pike, roach; trục là số lượng cá theo khối lượng.

Giới thiệu về Hồi quy với statsmodels trong Python

Thống kê tóm tắt: khối lượng trung bình theo loài

summary_stats = fish.groupby("species")["mass_g"].mean()
print(summary_stats)
species
Bream    617.828571
Perch    382.239286
Pike     718.705882
Roach    152.050000
Name: mass_g, dtype: float64
Giới thiệu về Hồi quy với statsmodels trong Python

Hồi quy tuyến tính

from statsmodels.formula.api import ols 
mdl_mass_vs_species = ols("mass_g ~ species", data=fish).fit()

print(mdl_mass_vs_species.params)
Intercept           617.828571
species[T.Perch]   -235.589286
species[T.Pike]     100.877311
species[T.Roach]   -465.778571
Giới thiệu về Hồi quy với statsmodels trong Python

Mô hình có hoặc không có hằng số

Từ slide trước, mô hình có hằng số

mdl_mass_vs_species = ols(
  "mass_g ~ species", data=fish).fit()

print(mdl_mass_vs_species.params)
Intercept           617.828571
species[T.Perch]   -235.589286
species[T.Pike]     100.877311
species[T.Roach]   -465.778571

Hệ số được tính tương đối so với hằng số: $617.83 - 235.59 = 382.24!$

Mô hình không có hằng số

mdl_mass_vs_species = ols(
  "mass_g ~ species + 0", data=fish).fit()

print(mdl_mass_vs_species.params)
species[Bream]    617.828571
species[Perch]    382.239286
species[Pike]     718.705882
species[Roach]    152.050000

Với một biến phân loại duy nhất, Hệ số chính là giá trị trung bình.

Giới thiệu về Hồi quy với statsmodels trong Python

Ayo berlatih!

Giới thiệu về Hồi quy với statsmodels trong Python

Preparing Video For Download...