범주형 설명 변수

Python에서 statsmodels로 살펴보는 회귀 소개

Maarten Van den Broeck

Content Developer at DataCamp

물고기 데이터셋

  • 각 행은 한 마리의 물고기를 나타냅니다.
  • 데이터는 128행입니다.
  • 어종은 4가지입니다:
    • Common Bream
    • European Perch
    • Northern Pike
    • Common Roach
species mass_g
Bream 242.0
Perch 5.9
Pike 200.0
Roach 40.0
... ...
Python에서 statsmodels로 살펴보는 회귀 소개

수치형 1개와 범주형 1개 시각화

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()

물고기 수와 무게의 팬싯 히스토그램. 각 패널은 bream, perch, pike, roach 종을 나타냅니다.

Python에서 statsmodels로 살펴보는 회귀 소개

요약 통계: 종별 평균 질량

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
Python에서 statsmodels로 살펴보는 회귀 소개

선형 회귀

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
Python에서 statsmodels로 살펴보는 회귀 소개

절편 포함/미포함 모형

이전 슬라이드의 절편 포함 모형

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

계수는 절편 대비 값입니다: $617.83 - 235.59 = 382.24!$

절편 없는 모형

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

단일 범주형 변수의 경우, 계수는 평균입니다.

Python에서 statsmodels로 살펴보는 회귀 소개

연습해 봅시다!

Python에서 statsmodels로 살펴보는 회귀 소개

Preparing Video For Download...