モデル性能の評価

statsmodels を使った中級 Regression

Maarten Van den Broeck

Content Developer at DataCamp

モデル性能の指標

  • 決定係数(R-squared): 線形回帰直線が観測値にどれだけ適合しているかを示します。

    • 値が大きいほど良好です。
  • 残差標準誤差(RSE): 残差の典型的な大きさです。

    • 値が小さいほど良好です。
statsmodels を使った中級 Regression

決定係数を取得する

print(mdl_mass_vs_length.rsquared)
0.8225689502644215
print(mdl_mass_vs_species.rsquared)
0.25814887709499157
print(mdl_mass_vs_both.rsquared)
0.9200433561156649
statsmodels を使った中級 Regression

自由度調整済み決定係数

  • 説明変数を増やすと $R^2$ は大きくなります。
  • 説明変数が多すぎると過学習を招きます。
  • 自由度調整済み決定係数 は説明変数の増加にペナルティを課します。
  • $\bar{R ^ 2} = 1 - (1 - R ^ 2) \frac{n_{obs} - 1}{n_{obs} - n_{var} - 1}$
  • $R^2$ が小さい場合や、$n_{var}$ が $n_{obs}$ に対して大きな割合を占める場合、このペナルティは顕著になります。
  • statsmodels では、この値は rsquared_adj 属性に含まれます。
statsmodels を使った中級 Regression

自由度調整済み決定係数を取得する

print("rsq_length: ", mdl_mass_vs_length.rsquared)
print("rsq_adj_length: ", mdl_mass_vs_length.rsquared_adj)
rsq_length:  0.8225689502644215
rsq_adj_length:  0.8211607673300121
print("rsq_species: ", mdl_mass_vs_species.rsquared)
print("rsq_adj_species: ", mdl_mass_vs_species.rsquared_adj)
rsq_species:  0.25814887709499157
rsq_adj_species:  0.24020086605696722
print("rsq_both: ", mdl_mass_vs_both.rsquared
print("rsq_adj_both: ", mdl_mass_vs_both.rsquared_adj)
rsq_both:  0.9200433561156649
rsq_adj_both:  0.9174431400543857
statsmodels を使った中級 Regression

残差標準誤差を取得する

rse_length = np.sqrt(mdl_mass_vs_length.mse_resid)
print("rse_length: ", rse_length)
rse_length:  152.12092835414788
rse_species = np.sqrt(mdl_mass_vs_species.mse_resid)
print("rse_species: ", rse_species)
rse_species:  313.5501156682592
rse_both = np.sqrt(mdl_mass_vs_both.mse_resid)
print("rse_both: ", rse_both)
rse_both:  103.35563303966488
statsmodels を使った中級 Regression

練習しましょう!

statsmodels を使った中級 Regression

Preparing Video For Download...