İkiden fazla açıklayıcı değişken

Python ile statsmodels'da Orta Düzey Regresyon

Maarten Van den Broeck

Content Developer at DataCamp

Geçen dersten

sns.scatterplot(x="length_cm", 
                y="height_cm",
                data=fish,
                hue="mass_g")

Üçüncü sayısal değişkeni görselleştirmek için kütlenin renkle kodlandığı 2B saçılım grafiği.

Python ile statsmodels'da Orta Düzey Regresyon

Türlere göre bölütleme

grid = sns.FacetGrid(data=fish,

col="species",
hue="mass_g", col_wrap=2,
palette="plasma")
grid.map(sns.scatterplot,
         "length_cm",
         "height_cm")
plt.show()

Türlere göre bölütlenmiş balık yükseklik, uzunluk ve kütle saçılım grafiği. Daha parlak renk daha ağır balığı gösterir.

Python ile statsmodels'da Orta Düzey Regresyon

Türlere göre bölütleme

  • Bölütlemede birden fazla kategorik değişken kullanılabilir
  • Bölütlemeyi aşırı kullanmaktan kaçının
  • Değişken sayısı arttıkça görselleştirme zorlaşır

Türlere göre bölütlenmiş balık yükseklik, uzunluk ve kütle saçılım grafiği. Daha parlak renk daha ağır balığı gösterir.

Python ile statsmodels'da Orta Düzey Regresyon

Farklı etkileşim düzeyleri

Etkileşim yok

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

Değişken çiftleri arasında iki yönlü etkileşimler

ols(
  "mass_g ~ length_cm + height_cm + species +
  length_cm:height_cm + length_cm:species + height_cm:species + 0", data=fish).fit()

Üç değişken arasında üç yönlü etkileşim

ols(
  "mass_g ~ length_cm + height_cm + species + 
  length_cm:height_cm + length_cm:species + height_cm:species + length_cm:height_cm:species + 0", data=fish).fit()
Python ile statsmodels'da Orta Düzey Regresyon

Tüm etkileşimler

ols(
  "mass_g ~ length_cm + height_cm + species + 
  length_cm:height_cm + length_cm:species + height_cm:species + length_cm:height_cm:species + 0", 
  data=fish).fit()

aynı şununla

ols(
  "mass_g ~ length_cm * height_cm * species + 0", 
  data=fish).fit()
Python ile statsmodels'da Orta Düzey Regresyon

Yalnızca iki yönlü etkileşimler

ols(
  "mass_g ~ length_cm + height_cm + species + 
  length_cm:height_cm + length_cm:species + height_cm:species + 0", 
  data=fish).fit()

aynı şununla

ols(
  "mass_g ~ (length_cm + height_cm + species) ** 2 + 0", 
  data=fish).fit()
Python ile statsmodels'da Orta Düzey Regresyon

Tahmin akışı

mdl_mass_vs_all = ols(
  "mass_g ~ length_cm * height_cm * species + 0",
  data=fish).fit()

length_cm = np.arange(5, 61, 5)
height_cm = np.arange(2, 21, 2)
species = fish["species"].unique()

p = product(length_cm, height_cm, species)

explanatory_data = pd.DataFrame(p,
                                columns=["length_cm",
                                         "height_cm",
                                         "species"])

prediction_data = explanatory_data.assign(
  mass_g = mdl_mass_vs_all.predict(explanatory_data))

print(prediction_data)
     length_cm  height_cm species       mass_g
0            5          2   Bream  -570.656437
1            5          2   Roach    31.449145
2            5          2   Perch    43.789984
3            5          2    Pike   271.270093
4            5          4   Bream  -451.127405
..         ...        ...     ...          ...
475         60         18    Pike  2690.346384
476         60         20   Bream  1531.618475
477         60         20   Roach  2621.797668
478         60         20   Perch  3041.931709
479         60         20    Pike  2926.352397

[480 rows x 4 columns]
Python ile statsmodels'da Orta Düzey Regresyon

Haydi pratik yapalım!

Python ile statsmodels'da Orta Düzey Regresyon

Preparing Video For Download...