Visualizing model fit

Introducción a la regresión con statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

Propiedades de un buen ajuste (residuos)

  • Los residuos siguen una normal
  • La media de los residuos es cero
Introducción a la regresión con statsmodels en Python

Bream y perch, de nuevo

Bream: el “buen” modelo

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

El diagrama de dispersión de masas de bream frente a sus longitudes, con una línea de tendencia, mostrado previamente.

Perch: el “mal” modelo

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

El diagrama de dispersión de masas de perch frente a sus longitudes, con una línea de tendencia, mostrado previamente.

Introducción a la regresión con statsmodels en Python

Residuos vs. ajustados

Bream

Diagrama de dispersión de los residuos del modelo para bream frente a los valores ajustados, con una curva LOWESS. La curva se mantiene cerca del eje x.

Perch

Diagrama de dispersión de los residuos del modelo para perch frente a los valores ajustados, con una curva LOWESS. La curva forma una V.

Introducción a la regresión con statsmodels en Python

Gráfico Q-Q

Bream

Gráfico Q-Q de los residuos estandarizados del modelo para bream frente a cuantiles teóricos. Los puntos siguen de cerca la línea de igualdad, salvo dos valores atípicos.

Perch

Gráfico Q-Q de los residuos estandarizados del modelo para perch frente a cuantiles teóricos. Los puntos no siguen bien la línea de igualdad, sobre todo en la parte derecha.

Introducción a la regresión con statsmodels en Python

Gráfico escala–localización

Bream

Diagrama de dispersión de las raíces cuadradas de los residuos estandarizados frente a los valores ajustados del modelo para bream, con una curva LOWESS. La curva sube ligeramente al aumentar los valores ajustados.

Perch

Diagrama de dispersión de las raíces cuadradas de los residuos estandarizados frente a los valores ajustados del modelo para perch, con una curva LOWESS. La curva sube y baja varias veces al aumentar los valores ajustados.

Introducción a la regresión con statsmodels en Python

residplot()

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

Diagrama de dispersión de los residuos del modelo para bream frente a los valores ajustados, con una curva LOWESS. La curva se mantiene cerca del eje x.

Introducción a la regresión con statsmodels en Python

qqplot()

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

Gráfico Q-Q de bream, como antes

Introducción a la regresión con statsmodels en Python

Gráfico escala–localización

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

Gráfico escala–localización de bream, como antes

Introducción a la regresión con statsmodels en Python

¡Vamos a practicar!

Introducción a la regresión con statsmodels en Python

Preparing Video For Download...