モデル適合の可視化

Pythonで学ぶstatsmodelsによる回帰入門

Maarten Van den Broeck

Content Developer at DataCamp

良い適合の残差の性質

  • 残差は正規分布に従う
  • 残差の平均は0
Pythonで学ぶstatsmodelsによる回帰入門

再びタイとパーチ

タイ:「良い」モデル

mdl_bream = ols("mass_g ~ length_cm", data=bream).fit()

タイの質量と長さの散布図(トレンド線つき、既出)。

パーチ:「悪い」モデル

mdl_perch = ols("mass_g ~ length_cm", data=perch).fit()

パーチの質量と長さの散布図(トレンド線つき、既出)。

Pythonで学ぶstatsmodelsによる回帰入門

残差 vs 予測値

タイ

タイモデルの残差と予測値の散布図。LOWESSのトレンド線。線はx軸付近に沿う。

パーチ

パーチモデルの残差と予測値の散布図。LOWESSのトレンド線。V字型を形成。

Pythonで学ぶstatsmodelsによる回帰入門

Q–Qプロット

タイ

タイモデルの標準化残差と理論分位のQ–Qプロット。2点の外れを除き、点は等価線にほぼ沿う。

パーチ

パーチモデルの標準化残差と理論分位のQ–Qプロット。特に右側で、点は等価線から大きく外れる。

Pythonで学ぶstatsmodelsによる回帰入門

スケール–ロケーションプロット

タイ

タイモデルの平方根標準化残差と予測値の散布図。LOWESSのトレンド線。予測値が増えるにつれてわずかに上向き。

パーチ

パーチモデルの平方根標準化残差と予測値の散布図。LOWESSのトレンド線。予測値が増えるにつれて上下に大きく変動。

Pythonで学ぶstatsmodelsによる回帰入門

residplot()

sns.residplot(x="length_cm", y="mass_g", data=bream, lowess=True)
plt.xlabel("Fitted values")
plt.ylabel("Residuals")

タイモデルの残差と予測値の散布図。LOWESSのトレンド線。線はx軸付近に沿う。

Pythonで学ぶstatsmodelsによる回帰入門

qqplot()

from statsmodels.api import qqplot
qqplot(data=mdl_bream.resid, fit=True, line="45")

タイのQQプロット(前と同様)

Pythonで学ぶstatsmodelsによる回帰入門

スケール–ロケーションプロット

model_norm_residuals_bream = mdl_bream.get_influence().resid_studentized_internal

model_norm_residuals_abs_sqrt_bream = np.sqrt(np.abs(model_norm_residuals_bream))
sns.regplot(x=mdl_bream.fittedvalues, y=model_norm_residuals_abs_sqrt_bream, ci=None, lowess=True)
plt.xlabel("Fitted values") plt.ylabel("Sqrt of abs val of stdized residuals")

タイのスケール–ロケーションプロット(前と同様)

Pythonで学ぶstatsmodelsによる回帰入門

練習してみましょう!

Pythonで学ぶstatsmodelsによる回帰入門

Preparing Video For Download...