Vizualizace kvality modelu

Úvod do regrese s knihovnou statsmodels v Pythonu

Maarten Van den Broeck

Content Developer at DataCamp

Vlastnosti reziduí dobrého modelu

  • Rezidua mají normální rozdělení
  • Střední hodnota reziduí je nula
Úvod do regrese s knihovnou statsmodels v Pythonu

Cejn a okoun znovu

Cejn: „dobrý" model

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

Bodový graf hmotnosti cejnů versus jejich délky s trendovou linií, zobrazený dříve.

Okoun: „špatný" model

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

Bodový graf hmotnosti okounů versus jejich délky s trendovou linií, zobrazený dříve.

Úvod do regrese s knihovnou statsmodels v Pythonu

Rezidua vs. přizpůsobené hodnoty

Cejn

Bodový graf reziduí modelu cejna versus přizpůsobené hodnoty s trendovou linií LOWESS. Trendová linie se drží blízko osy x.

Okoun

Bodový graf reziduí modelu okouna versus přizpůsobené hodnoty s trendovou linií LOWESS. Trendová linie tvoří tvar V.

Úvod do regrese s knihovnou statsmodels v Pythonu

Q-Q graf

Cejn

Q-Q graf standardizovaných reziduí modelu cejna versus teoretické kvantily. Body těsně sledují přímku rovnosti, s výjimkou dvou odlehlých hodnot.

Okoun

Q-Q graf standardizovaných reziduí modelu okouna versus teoretické kvantily. Body přímku rovnosti příliš netěsně sledují, zejména v pravé části grafu.

Úvod do regrese s knihovnou statsmodels v Pythonu

Graf scale-location

Cejn

Bodový graf odmocnin standardizovaných reziduí modelu cejna versus přizpůsobené hodnoty s trendovou linií LOWESS. Trendová linie mírně stoupá s rostoucími přizpůsobenými hodnotami.

Okoun

Bodový graf odmocnin standardizovaných reziduí modelu okouna versus přizpůsobené hodnoty s trendovou linií LOWESS. Trendová linie několikrát stoupá a klesá s rostoucími přizpůsobenými hodnotami.

Úvod do regrese s knihovnou statsmodels v Pythonu

residplot()

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

Bodový graf reziduí modelu cejna versus přizpůsobené hodnoty s trendovou linií LOWESS. Trendová linie se drží blízko osy x.

Úvod do regrese s knihovnou statsmodels v Pythonu

qqplot()

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

QQ graf cejnů, jak byl zobrazen dříve

Úvod do regrese s knihovnou statsmodels v Pythonu

Graf scale-location

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

Graf scale-location cejnů, jak byl zobrazen dříve

Úvod do regrese s knihovnou statsmodels v Pythonu

Pojďme cvičit!

Úvod do regrese s knihovnou statsmodels v Pythonu

Preparing Video For Download...