Ortalamaya regresyon

Python ile statsmodels kullanarak Regresyona Giriş

Maarten Van den Broeck

Content Developer at DataCamp

Kavram

  • Yanıt = uyumlu değer + artık
  • "Açıkladığınız kısım" + "açıklayamadığınız kısım"
  • Artıklar model sorunları ve temel rastgelelik nedeniyle oluşur
  • Aykırı/olağanüstü durumlar çoğunlukla rastgeleliktendir
  • Ortalamaya regresyon, uç durumların zamanla kalıcı olmaması demektir
Python ile statsmodels kullanarak Regresyona Giriş

Pearson’ın baba–oğul veri seti

  • 1078 baba/oğul çifti
  • Uzun boylu babaların oğulları da uzun mu?
father_height_cm son_height_cm
165.2 151.8
160.7 160.6
165.0 160.9
167.0 159.5
155.3 163.3
... ...
1 Adapted from https://www.rdocumentation.org/packages/UsingR/topics/father.son
Python ile statsmodels kullanarak Regresyona Giriş

Saçılım grafiği

fig = plt.figure()
sns.scatterplot(x="father_height_cm",
                y="son_height_cm",
                data=father_son)
plt.axline(xy1=(150, 150),
           slope=1,
           linewidth=2,
           color="green")
plt.axis("equal")
plt.show()

Babaların boylarına karşı oğulların boylarının saçılım grafiği; baba ile oğulun aynı boyda olacağı bir çizgi var. Babalar uzadıkça oğullar da uzar.

Python ile statsmodels kullanarak Regresyona Giriş

Regresyon çizgisi ekleme

fig = plt.figure()

sns.regplot(x="father_height_cm",
            y="son_height_cm",
            data=father_son,
            ci = None, 
            line_kws={"color": "black"})

plt.axline(xy1 = (150, 150),
           slope=1,
           linewidth=2,
           color="green")

plt.axis("equal")
plt.show()

Babaların boylarına karşı oğulların boylarının saçılım grafiği, doğrusal trend çizgisiyle birlikte. Trend çizgisi, baba ile oğulun aynı boyda olacağı çizgiden daha az diktir.

Python ile statsmodels kullanarak Regresyona Giriş

Bir regresyon çalıştırma

mdl_son_vs_father = ols("son_height_cm ~ father_height_cm",
                        data = father_son).fit()
print(mdl_son_vs_father.params)
Intercept           86.071975
father_height_cm     0.514093
dtype: float64
Python ile statsmodels kullanarak Regresyona Giriş

Tahmin yapma

really_tall_father = pd.DataFrame(
  {"father_height_cm": [190]})

mdl_son_vs_father.predict(
  really_tall_father)
183.7
really_short_father = pd.DataFrame(
  {"father_height_cm": [150]})

mdl_son_vs_father.predict(
  really_short_father)
163.2
Python ile statsmodels kullanarak Regresyona Giriş

Hadi pratik yapalım!

Python ile statsmodels kullanarak Regresyona Giriş

Preparing Video For Download...