Визуализация качества модели

Введение в регрессию с statsmodels на Python

Maarten Van den Broeck

Content Developer at DataCamp

Свойства остатков хорошей модели

  • Остатки распределены нормально
  • Среднее значение остатков равно нулю
Введение в регрессию с statsmodels на Python

Лещ и окунь снова

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

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

Диаграмма рассеяния масс лещей относительно их длин с линией тренда, показанная ранее.

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

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

Диаграмма рассеяния масс окуней относительно их длин с линией тренда, показанная ранее.

Введение в регрессию с statsmodels на Python

Остатки vs. подогнанные значения

Лещ

Диаграмма рассеяния остатков модели лещей относительно подогнанных значений с линией тренда LOWESS. Линия тренда проходит близко к оси x.

Окунь

Диаграмма рассеяния остатков модели окуней относительно подогнанных значений с линией тренда LOWESS. Линия тренда образует форму буквы V.

Введение в регрессию с statsmodels на Python

Q-Q график

Лещ

Q-Q график стандартизированных остатков модели лещей относительно теоретических квантилей. Точки близко следуют линии равенства остатков и квантилей, за исключением двух выбросов.

Окунь

Q-Q график стандартизированных остатков модели окуней относительно теоретических квантилей. Точки не следуют близко линии равенства остатков и квантилей, особенно в правой части графика.

Введение в регрессию с statsmodels на Python

График масштаб-расположение

Лещ

Диаграмма рассеяния корня из стандартизированных остатков модели лещей относительно подогнанных значений с линией тренда LOWESS. Линия тренда немного поднимается по мере роста подогнанных значений.

Окунь

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

Введение в регрессию с statsmodels на Python

residplot()

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

Диаграмма рассеяния остатков модели лещей относительно подогнанных значений с линией тренда LOWESS. Линия тренда проходит близко к оси x.

Введение в регрессию с statsmodels на Python

qqplot()

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

Q-Q график для лещей, как показано ранее

Введение в регрессию с 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")

График масштаб-расположение для лещей, как показано ранее

Введение в регрессию с statsmodels на Python

Давайте потренируемся!

Введение в регрессию с statsmodels на Python

Preparing Video For Download...