Visualisera modellpassning

Introduktion till regression med statsmodels i Python

Maarten Van den Broeck

Content Developer at DataCamp

Residualegenskaper för en god passning

  • Residualerna är normalfördelade
  • Residualernas medelvärde är noll
Introduktion till regression med statsmodels i Python

Braxen och abborren igen

Braxen: den "bra" modellen

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

Spridningsdiagram över braxens massa mot längd, med en trendlinje, som visats tidigare.

Abborre: den "dåliga" modellen

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

Spridningsdiagram över abborrens massa mot längd, med en trendlinje, som visats tidigare.

Introduktion till regression med statsmodels i Python

Residualer vs. anpassade värden

Braxen

Spridningsdiagram över braxenmodellens residualer mot anpassade värden, med en LOWESS-trendlinje. Trendlinjen håller sig nära x-axeln.

Abborre

Spridningsdiagram över abborremodellens residualer mot anpassade värden, med en LOWESS-trendlinje. Trendlinjen bildar en V-form.

Introduktion till regression med statsmodels i Python

Q-Q-diagram

Braxen

Ett Q-Q-diagram över braxenmodellens standardiserade residualer mot teoretiska kvantiler. Punkterna följer nära linjen där residualer och kvantiler är lika, med undantag för två avvikare.

Abborre

Ett Q-Q-diagram över abborremodellens standardiserade residualer mot teoretiska kvantiler. Punkterna följer inte nära linjen där residualer och kvantiler är lika, särskilt på diagrammets högra sida.

Introduktion till regression med statsmodels i Python

Skala-plats-diagram

Braxen

Spridningsdiagram över kvadratroten av braxenmodellens standardiserade residualer mot anpassade värden, med en LOWESS-trendlinje. Trendlinjen stiger något när de anpassade värdena ökar.

Abborre

Spridningsdiagram över kvadratroten av abborremodellens standardiserade residualer mot anpassade värden, med en LOWESS-trendlinje. Trendlinjen går upp och ner flera gånger när de anpassade värdena ökar.

Introduktion till regression med statsmodels i Python

residplot()

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

Spridningsdiagram över braxenmodellens residualer mot anpassade värden, med en LOWESS-trendlinje. Trendlinjen håller sig nära x-axeln.

Introduktion till regression med statsmodels i Python

qqplot()

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

Q-Q-diagram för braxen, som visats tidigare

Introduktion till regression med statsmodels i Python

Skala-plats-diagram

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

Skala-plats-diagram för braxen, som visats tidigare

Introduktion till regression med statsmodels i Python

Nu kör vi en övning!

Introduktion till regression med statsmodels i Python

Preparing Video For Download...