Vizualizarea calității modelului

Introducere în regresia cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Proprietățile reziduurilor unui model bun

  • Reziduurile urmează o distribuție normală
  • Media reziduurilor este zero
Introducere în regresia cu statsmodels în Python

Bream și perch din nou

Bream: modelul „bun"

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

Graficul scatter al masei față de lungimea bream-urilor, cu o linie de tendință, prezentat anterior.

Perch: modelul „slab"

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

Graficul scatter al masei față de lungimea perch-urilor, cu o linie de tendință, prezentat anterior.

Introducere în regresia cu statsmodels în Python

Reziduuri față de valorile ajustate

Bream

Grafic scatter al reziduurilor modelului bream față de valorile ajustate, cu o linie de tendință LOWESS. Linia rămâne aproape de axa x.

Perch

Grafic scatter al reziduurilor modelului perch față de valorile ajustate, cu o linie de tendință LOWESS. Linia formează un V.

Introducere în regresia cu statsmodels în Python

Grafic Q-Q

Bream

Grafic Q-Q al reziduurilor standardizate față de cuantilele teoretice pentru modelul bream. Punctele urmează îndeaproape linia, cu excepția a doi outlieri.

Perch

Grafic Q-Q al reziduurilor standardizate față de cuantilele teoretice pentru modelul perch. Punctele nu urmează îndeaproape linia, în special în partea dreaptă a graficului.

Introducere în regresia cu statsmodels în Python

Grafic scale-location

Bream

Grafic scatter al rădăcinii pătrate a reziduurilor standardizate față de valorile ajustate pentru modelul bream, cu o linie de tendință LOWESS. Linia crește ușor pe măsură ce valorile ajustate cresc.

Perch

Grafic scatter al rădăcinii pătrate a reziduurilor standardizate față de valorile ajustate pentru modelul perch, cu o linie de tendință LOWESS. Linia urcă și coboară de mai multe ori pe măsură ce valorile ajustate cresc.

Introducere în regresia cu statsmodels în Python

residplot()

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

Grafic scatter al reziduurilor modelului bream față de valorile ajustate, cu o linie de tendință LOWESS. Linia rămâne aproape de axa x.

Introducere în regresia cu statsmodels în Python

qqplot()

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

Grafic Q-Q pentru bream, ca cel prezentat anterior

Introducere în regresia cu statsmodels în Python

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

Grafic scale-location pentru bream, ca cel prezentat anterior

Introducere în regresia cu statsmodels în Python

Să exersăm!

Introducere în regresia cu statsmodels în Python

Preparing Video For Download...