Variabile explicative categoriale

Introducere în regresia cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Setul de date Fish

  • Fiecare rând reprezintă un pește.
  • Setul de date conține 128 de rânduri.
  • Există 4 specii de pești:
    • Plătică comună
    • Biban european
    • Știucă nordică
    • Babușcă comună
species mass_g
Bream 242.0
Perch 5.9
Pike 200.0
Roach 40.0
... ...
Introducere în regresia cu statsmodels în Python

Vizualizarea unei variabile numerice și una categorială

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

Histogramă cu fațete a numărului de pești față de greutatea lor. Fiecare panou conține o specie: plătică, biban, știucă sau babușcă.

Introducere în regresia cu statsmodels în Python

Statistici rezumative: masa medie pe specie

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
Introducere în regresia cu statsmodels în Python

Regresie liniară

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
Introducere în regresia cu statsmodels în Python

Model cu sau fără interceptare

Din slide-ul anterior, model cu interceptare

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

Coeficienții sunt relativi la interceptare: $617.83 - 235.59 = 382.24!$

Model fără interceptare

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

În cazul unei singure variabile categoriale, coeficienții reprezintă mediile.

Introducere în regresia cu statsmodels în Python

Să exersăm!

Introducere în regresia cu statsmodels în Python

Preparing Video For Download...