Візуалізація якості моделі

Вступ до Regression зі statsmodels у Python

Maarten Van den Broeck

Content Developer at DataCamp

Властивості залишків за доброго прилягання

  • Залишки мають нормальний розподіл
  • Середнє залишків дорівнює нулю
Вступ до Regression зі statsmodels у Python

Знову лящ і окунь

Лящ: «хороша» модель

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

Точкова діаграма мас ляща проти довжин із трендовою лінією, показана раніше.

Окунь: «погана» модель

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

Точкова діаграма мас окуня проти довжин із трендовою лінією, показана раніше.

Вступ до Regression зі statsmodels у Python

Залишки vs підгонки

Лящ

Точкова діаграма залишків моделі ляща проти підгонок із лінією LOWESS. Лінія тримається близько до осі x.

Окунь

Точкова діаграма залишків моделі окуня проти підгонок із лінією LOWESS. Лінія має V-подібну форму.

Вступ до Regression зі statsmodels у Python

Q–Q-діаграма

Лящ

Q–Q-діаграма стандартизованих залишків моделі ляща проти теоретичних квантилів. Точки близькі до лінії рівності, окрім двох викидів.

Окунь

Q–Q-діаграма стандартизованих залишків моделі окуня проти теоретичних квантилів. Точки не йдуть близько до лінії рівності, особливо праворуч.

Вступ до Regression зі statsmodels у Python

Графік масштабу-розташування

Лящ

Діаграма квадратного кореня зі стандартизованих залишків моделі ляща проти підгонок із лінією LOWESS. Лінія трохи зростає зі збільшенням підгонок.

Окунь

Діаграма квадратного кореня зі стандартизованих залишків моделі окуня проти підгонок із лінією LOWESS. Лінія кілька разів піднімається й опускається зі зростанням підгонок.

Вступ до Regression зі statsmodels у Python

residplot()

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

Точкова діаграма залишків моделі ляща проти підгонок із лінією LOWESS. Лінія тримається близько до осі x.

Вступ до Regression зі statsmodels у Python

qqplot()

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

Q–Q-діаграма для ляща, як раніше

Вступ до Regression зі statsmodels у Python

Графік масштабу-розташування

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")

Графік масштабу-розташування для ляща, як раніше

Вступ до Regression зі statsmodels у Python

Давайте потренуємось!

Вступ до Regression зі statsmodels у Python

Preparing Video For Download...