Model uyumunu nicelendirme

Python ile statsmodels kullanarak Regresyona Giriş

Maarten Van den Broeck

Content Developer at DataCamp

Çipura ve levrek modelleri

Çipura Daha önce gösterilen, çipura kütlesi ile uzunluğu saçılım grafiği ve trend çizgisi.

Levrekgiller Daha önce gösterilen, levrekgillerin kütlesi ile uzunluğu saçılım grafiği ve trend çizgisi.

Python ile statsmodels kullanarak Regresyona Giriş

Belirleme katsayısı

Bazen “r-kare” veya “R-kare” denir.

Açıklayıcı değişkenden, yanıt değişkenindeki varyansın tahmin edilebilir kısmı

  • 1 mükemmel uyum demektir
  • 0 en kötü uyum demektir
Python ile statsmodels kullanarak Regresyona Giriş

.summary()

“R-Squared” değerine bakınız

mdl_bream = ols("mass_g ~ length_cm", data=bream).fit()
print(mdl_bream.summary())
# Some lines of output omitted                          

                            OLS Regression Results                         
Dep. Variable:                 mass_g   R-squared:                       0.878
Model:                            OLS   Adj. R-squared:                  0.874
Method:                 Least Squares   F-statistic:                     237.6
Python ile statsmodels kullanarak Regresyona Giriş

.rsquared özniteliği

print(mdl_bream.rsquared)
0.8780627095147174
Python ile statsmodels kullanarak Regresyona Giriş

Sadece korelasyonun karesi

coeff_determination = bream["length_cm"].corr(bream["mass_g"]) ** 2
print(coeff_determination)
0.8780627095147173
Python ile statsmodels kullanarak Regresyona Giriş

Artıkların standart hatası (RSE)

Daha önce görülen, levrek balığı kütle-uzunluk saçılım grafiğinin artık değerleri

  • Bir tahmin ile gözlenen yanıt arasındaki “tipik” fark
  • Yanıt değişkeniyle aynı birimdedir.
  • MSE = RSE²
Python ile statsmodels kullanarak Regresyona Giriş

.mse_resid özniteliği

mse = mdl_bream.mse_resid
print('mse: ', mse)
mse:  5498.555084973521
rse = np.sqrt(mse)
print("rse: ", rse)
rse:  74.15224261594197
Python ile statsmodels kullanarak Regresyona Giriş

RSE hesaplama: artıkların karesi

residuals_sq = mdl_bream.resid ** 2

print("residuals sq: \n", residuals_sq)
residuals sq: 
0      138.957118
1      260.758635
2     5126.992578
3     1318.919660
4      390.974309
    ...
30    2125.047026
31    6576.923291
32     206.259713
33     889.335096
34    7665.302003
Length: 35, dtype: float64
Python ile statsmodels kullanarak Regresyona Giriş

RSE hesaplama: kareler toplamı

residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

print("resid sum of sq :",
      resid_sum_of_sq)
resid sum of sq : 181452.31780412616
Python ile statsmodels kullanarak Regresyona Giriş

RSE hesaplama: serbestlik derecesi

residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

deg_freedom = len(bream.index) - 2

print("deg freedom: ", deg_freedom)

Serbestlik derecesi, gözlem sayısından model katsayılarının sayısı çıkarılarak bulunur.

deg freedom:  33
Python ile statsmodels kullanarak Regresyona Giriş

RSE hesaplama: oranın karekökü

residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

deg_freedom = len(bream.index) - 2

rse = np.sqrt(resid_sum_of_sq/deg_freedom)

print("rse :", rse)
rse : 74.15224261594197
Python ile statsmodels kullanarak Regresyona Giriş

RSE’yi yorumlama

mdl_bream için RSE 74.

Tahmin edilen çipura kütlesi ile gözlenen kütle arasındaki fark tipik olarak ~74 g’dir.

Python ile statsmodels kullanarak Regresyona Giriş

Kök ortalama karesel hata (RMSE)

residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

deg_freedom = len(bream.index) - 2

rse = np.sqrt(resid_sum_of_sq/deg_freedom)

print("rse :", rse)
rse : 74.15224261594197
residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

n_obs = len(bream.index)

rmse = np.sqrt(resid_sum_of_sq/n_obs)

print("rmse :", rmse)
rmse : 72.00244396727619
Python ile statsmodels kullanarak Regresyona Giriş

Hadi pratik yapalım!

Python ile statsmodels kullanarak Regresyona Giriş

Preparing Video For Download...