Mengukur kecocokan model

Pengantar Regresi dengan statsmodels di Python

Maarten Van den Broeck

Content Developer at DataCamp

Model bream dan perch

Bream Scatter plot massa vs panjang bream, dengan garis tren, seperti ditunjukkan sebelumnya.

Perch Scatter plot massa vs panjang perch, dengan garis tren, seperti ditunjukkan sebelumnya.

Pengantar Regresi dengan statsmodels di Python

Koefisien determinasi

Sering disebut "r-squared" atau "R-squared".

Proporsi varians pada respons yang dapat diprediksi dari variabel penjelas

  • 1 berarti kecocokan sempurna
  • 0 berarti kecocokan terburuk
Pengantar Regresi dengan statsmodels di Python

.summary()

Lihat nilai "R-Squared"

mdl_bream = ols("mass_g ~ length_cm", data=bream).fit()
print(mdl_bream.summary())
# Beberapa baris keluaran dihilangkan                          

                            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
Pengantar Regresi dengan statsmodels di Python

Atribut .rsquared

print(mdl_bream.rsquared)
0.8780627095147174
Pengantar Regresi dengan statsmodels di Python

Hanya korelasi kuadrat

coeff_determination = bream["length_cm"].corr(bream["mass_g"]) ** 2
print(coeff_determination)
0.8780627095147173
Pengantar Regresi dengan statsmodels di Python

Residual standard error (RSE)

Residual massa vs panjang bream, seperti sebelumnya

  • Selisih “tipikal” antara prediksi dan nilai aktual
  • Satuannya sama dengan variabel respons.
  • MSE = RSE²
Pengantar Regresi dengan statsmodels di Python

Atribut .mse_resid

mse = mdl_bream.mse_resid
print('mse: ', mse)
mse:  5498.555084973521
rse = np.sqrt(mse)
print("rse: ", rse)
rse:  74.15224261594197
Pengantar Regresi dengan statsmodels di Python

Menghitung RSE: kuadrat residual

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
Pengantar Regresi dengan statsmodels di Python

Menghitung RSE: jumlah kuadrat residual

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
Pengantar Regresi dengan statsmodels di Python

Menghitung RSE: derajat kebebasan

residuals_sq = mdl_bream.resid ** 2

resid_sum_of_sq = sum(residuals_sq)

deg_freedom = len(bream.index) - 2

print("deg freedom: ", deg_freedom)

Derajat kebebasan adalah jumlah observasi dikurangi jumlah koefisien model.

deg freedom:  33
Pengantar Regresi dengan statsmodels di Python

Menghitung RSE: akar dari rasio

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
Pengantar Regresi dengan statsmodels di Python

Menafsirkan RSE

mdl_bream memiliki RSE 74.

Selisih antara massa bream prediksi dan aktual biasanya sekitar 74 g.

Pengantar Regresi dengan statsmodels di Python

Root-mean-square error (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
Pengantar Regresi dengan statsmodels di Python

Ayo berlatih!

Pengantar Regresi dengan statsmodels di Python

Preparing Video For Download...