視覺化模型擬合

使用 Python 中的 statsmodels 進行回歸入門

Maarten Van den Broeck

Content Developer at DataCamp

良好擬合的殘差特性

  • 殘差近似常態分布
  • 殘差平均數為 0
使用 Python 中的 statsmodels 進行回歸入門

再次看 Bream 與 Perch

Bream:「良好」模型

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

先前出現過的鯉科魚質量對長度的散佈圖與趨勢線。

Perch:「不佳」模型

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

先前出現過的鱸魚質量對長度的散佈圖與趨勢線。

使用 Python 中的 statsmodels 進行回歸入門

殘差 vs. 擬合值

Bream

鯉科魚模型之殘差對擬合值的散佈圖,含 LOWESS 趨勢線。趨勢線貼近 x 軸。

Perch

鱸魚模型之殘差對擬合值的散佈圖,含 LOWESS 趨勢線。趨勢線呈 V 形。

使用 Python 中的 statsmodels 進行回歸入門

Q-Q 圖

Bream

鯉科魚模型標準化殘差對理論分位數的 Q-Q 圖。除兩個離群值外,點多沿著等值直線。

Perch

鱸魚模型標準化殘差對理論分位數的 Q-Q 圖。點未能貼近等值直線,尤其在圖右側。

使用 Python 中的 statsmodels 進行回歸入門

尺度—位置圖

Bream

鯉科魚模型之平方根標準化殘差對擬合值的散佈圖,含 LOWESS 趨勢線。擬合值增加時趨勢線略為上升。

Perch

鱸魚模型之平方根標準化殘差對擬合值的散佈圖,含 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")

鯉科魚 Q-Q 圖,如前所示

使用 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...