Wizualizacja dopasowania modelu

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Maarten Van den Broeck

Content Developer at DataCamp

Właściwości reszt dobrego dopasowania

  • Reszty mają rozkład normalny
  • Średnia reszt wynosi zero
Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Leszcz i okoń — ponownie

Leszcz: model „dobry"

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

Wykres rozrzutu masy leszcza względem długości z linią trendu, pokazany wcześniej.

Okoń: model „zły"

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

Wykres rozrzutu masy okonia względem długości z linią trendu, pokazany wcześniej.

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Reszty a wartości dopasowane

Leszcz

Wykres rozrzutu reszt modelu leszcza względem wartości dopasowanych, z linią trendu LOWESS. Linia trendu pozostaje blisko osi x.

Okoń

Wykres rozrzutu reszt modelu okonia względem wartości dopasowanych, z linią trendu LOWESS. Linia trendu tworzy kształt litery V.

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Wykres Q-Q

Leszcz

Wykres Q-Q standaryzowanych reszt modelu leszcza względem kwantyli teoretycznych. Punkty ściśle podążają za linią równości reszt i kwantyli, z wyjątkiem dwóch wartości odstających.

Okoń

Wykres Q-Q standaryzowanych reszt modelu okonia względem kwantyli teoretycznych. Punkty nie podążają ściśle za linią równości reszt i kwantyli, szczególnie po prawej stronie wykresu.

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Wykres skala-położenie

Leszcz

Wykres rozrzutu pierwiastka kwadratowego ze standaryzowanych reszt modelu leszcza względem wartości dopasowanych, z linią trendu LOWESS. Linia trendu lekko wzrasta wraz ze wzrostem wartości dopasowanych.

Okoń

Wykres rozrzutu pierwiastka kwadratowego ze standaryzowanych reszt modelu okonia względem wartości dopasowanych, z linią trendu LOWESS. Linia trendu kilkakrotnie wzrasta i opada wraz ze wzrostem wartości dopasowanych.

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

residplot()

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

Wykres rozrzutu reszt modelu leszcza względem wartości dopasowanych, z linią trendu LOWESS. Linia trendu pozostaje blisko osi x.

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

qqplot()

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

Wykres Q-Q leszcza, jak pokazano wcześniej

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Wykres skala-położenie

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

Wykres skala-położenie leszcza, jak pokazano wcześniej

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Czas na ćwiczenia!

Wprowadzenie do regresji z użyciem statsmodels w Pythonie

Preparing Video For Download...