Aykırı değerler, kaldıraç ve etki

Python ile statsmodels kullanarak Regresyona Giriş

Maarten Van den Broeck

Content Developer at DataCamp

Hamamböceği veri kümesi

roach = fish[fish['species'] == "Roach"]
print(roach.head())
   species  mass_g  length_cm
35   Roach    40.0       12.9
36   Roach    69.0       16.5
37   Roach    78.0       17.5
38   Roach    87.0       18.2
39   Roach   120.0       18.6

Bir sıradan kızılkanat balığı

Python ile statsmodels kullanarak Regresyona Giriş

Hangi noktalar aykırı?

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)
plt.show()

Eğilim çizgili, hamamböceği kütlelerinin uzunluklara karşı saçılım grafiği. Noktaların çoğu eğilimi yakından izler.

Python ile statsmodels kullanarak Regresyona Giriş

Uç açıklayıcı değerler

roach["extreme_l"] = ((roach["length_cm"] < 15) |
                    (roach["length_cm"] > 26))

fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)

sns.scatterplot(x="length_cm",
                y="mass_g",
                hue="extreme_l",
                data=roach)

Eğilim çizgili, hamamböceği kütlelerinin uzunluklara karşı saçılım grafiği. Noktaların çoğu mavi, ancak çok kısa bir hamamböceği ile çok uzun birinin noktaları turuncu.

Python ile statsmodels kullanarak Regresyona Giriş

Regresyon çizgisinden uzak tepki değerleri

roach["extreme_m"] = roach["mass_g"] < 1

fig = plt.figure()
sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None)

sns.scatterplot(x="length_cm",
                y="mass_g",
                hue="extreme_l",
                style="extreme_m",
                data=roach)

Eğilim çizgili, hamamböceği kütlelerinin uzunluklara karşı saçılım grafiği. Noktaların çoğu mavi, ancak çok kısa bir hamamböceği ile çok uzun birinin noktaları turuncu. Noktaların çoğu daire, görünen kütlesi sıfır olan bir balığı temsil eden nokta çarpı.

Python ile statsmodels kullanarak Regresyona Giriş

Kaldıraç ve etki

Kaldıraç, açıklayıcı değişken değerlerinin ne kadar uçta olduğunu ölçer.

Etki, modelleme sırasında gözlemi veri setinden çıkarsanız modelin ne kadar değişeceğini ölçer.

Bir anahtarı çeviren kişi

Python ile statsmodels kullanarak Regresyona Giriş

.get_influence() ve .summary_frame()

mdl_roach = ols("mass_g ~ length_cm", data=roach).fit()

summary_roach = mdl_roach.get_influence().summary_frame()
roach["leverage"] = summary_roach["hat_diag"] print(roach.head())
   species  mass_g  length_cm  leverage
35   Roach    40.0       12.9  0.313729
36   Roach    69.0       16.5  0.125538
37   Roach    78.0       17.5  0.093487
38   Roach    87.0       18.2  0.076283
39   Roach   120.0       18.6  0.068387
Python ile statsmodels kullanarak Regresyona Giriş

Cook uzaklığı

Cook uzaklığı en yaygın etki ölçüsüdür.

roach["cooks_dist"] = summary_roach["cooks_d"]
print(roach.head())
   species  mass_g  length_cm  leverage  cooks_dist
35   Roach    40.0       12.9  0.313729    1.074015
36   Roach    69.0       16.5  0.125538    0.010429
37   Roach    78.0       17.5  0.093487    0.000020
38   Roach    87.0       18.2  0.076283    0.001980
39   Roach   120.0       18.6  0.068387    0.006610
Python ile statsmodels kullanarak Regresyona Giriş

En etkili hamamböcekleri

print(roach.sort_values("cooks_dist", ascending = False))
   species  mass_g  length_cm  leverage  cooks_dist
35   Roach    40.0       12.9  0.313729    1.074015 # çok kısa hamamböceği
54   Roach   390.0       29.5  0.394740    0.365782 # çok uzun hamamböceği
40   Roach     0.0       19.0  0.061897    0.311852 # kütlesi sıfır olan hamamböceği
52   Roach   290.0       24.0  0.099488    0.150064
51   Roach   180.0       23.6  0.088391    0.061209
..     ...     ...        ...       ...         ...
43   Roach   150.0       20.4  0.050264    0.000257
44   Roach   145.0       20.5  0.050092    0.000256
42   Roach   120.0       19.4  0.056815    0.000199
47   Roach   160.0       21.1  0.050910    0.000137
37   Roach    78.0       17.5  0.093487    0.000020
Python ile statsmodels kullanarak Regresyona Giriş

En etkili hamamböceğini kaldırma

roach_not_short = roach[roach["length_cm"] != 12.9]

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach,
            ci=None,
            line_kws={"color": "green"})

sns.regplot(x="length_cm",
            y="mass_g",
            data=roach_not_short,
            ci=None,
            line_kws={"color": "red"})

Hamamböceği kütlelerinin uzunluklara karşı saçılım grafiği, iki eğilim çizgisiyle. Biri tüm veriyi, diğeri en kısa hamamböceğini hariç tutar. İkincinin eğimi belirgin biçimde daha diktir.

Python ile statsmodels kullanarak Regresyona Giriş

Hadi pratik yapalım!

Python ile statsmodels kullanarak Regresyona Giriş

Preparing Video For Download...