Visualizzare l’aderenza del modello

Introduzione alla regressione con statsmodels in Python

Maarten Van den Broeck

Content Developer at DataCamp

Proprietà dei residui di un buon fit

  • I residui sono distribuiti normalmente
  • La media dei residui è zero
Introduzione alla regressione con statsmodels in Python

Orata e persico di nuovo

Orata: il “buon” modello

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

Il grafico a dispersione delle masse dell’orata rispetto alle lunghezze, con linea di tendenza, già mostrato.

Persico: il “cattivo” modello

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

Il grafico a dispersione delle masse del persico rispetto alle lunghezze, con linea di tendenza, già mostrato.

Introduzione alla regressione con statsmodels in Python

Residui vs. valori adattati

Orata

Un grafico a dispersione dei residui del modello per l’orata rispetto ai valori adattati, con una curva LOWESS. La curva resta vicina all’asse x.

Persico

Un grafico a dispersione dei residui del modello per il persico rispetto ai valori adattati, con una curva LOWESS. La curva forma una V.

Introduzione alla regressione con statsmodels in Python

Q-Q plot

Orata

Un Q-Q plot dei residui standardizzati del modello per l’orata rispetto ai quantili teorici. I punti seguono da vicino la linea di uguaglianza, tranne due outlier.

Persico

Un Q-Q plot dei residui standardizzati del modello per il persico rispetto ai quantili teorici. I punti non seguono da vicino la linea di uguaglianza, soprattutto a destra del grafico.

Introduzione alla regressione con statsmodels in Python

Grafico scala-posizione

Orata

Un grafico a dispersione dei residui standardizzati a radice quadrata del modello per l’orata rispetto ai valori adattati, con una curva LOWESS. La curva sale leggermente all’aumentare dei valori adattati.

Persico

Un grafico a dispersione dei residui standardizzati a radice quadrata del modello per il persico rispetto ai valori adattati, con una curva LOWESS. La curva sale e scende più volte all’aumentare dei valori adattati.

Introduzione alla regressione con statsmodels in Python

residplot()

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

Un grafico a dispersione dei residui del modello per l’orata rispetto ai valori adattati, con una curva LOWESS. La curva resta vicina all’asse x.

Introduzione alla regressione con statsmodels in Python

qqplot()

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

QQ plot per l’orata, come visto prima

Introduzione alla regressione con statsmodels in Python

Grafico scala-posizione

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

Grafico scala-posizione per l’orata, come visto prima

Introduzione alla regressione con statsmodels in Python

Passiamo alla pratica !

Introduzione alla regressione con statsmodels in Python

Preparing Video For Download...