Cómo crear una parcela residual en Python

Una gráfica residual es un tipo de gráfica que muestra los valores ajustados contra los valores residuales para un modelo de regresión . Este tipo de gráfico se usa a menudo para evaluar si un modelo de regresión lineal es apropiado para un conjunto de datos dado y para verificar la heterocedasticidad de los residuos.

Este tutorial explica cómo crear un gráfico residual para un modelo de regresión lineal en Python.

Ejemplo: trama residual en Python

Para este ejemplo usaremos un conjunto de datos que describe los atributos de 10 jugadores de baloncesto:

importar numpy como np
 importar pandas como pd

#create conjunto de datos
df = pd.DataFrame ({'calificación': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'puntos': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'asiste': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebotes': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#ver conjunto de datos
 df

	puntos de calificación ayuda a rebotes
0 90 25 5 11
1 85 20 7 8
2 82 14 7 10
3 88 16 8 6
4 94 27 5 6
5 90 20 7 9
6 76 12 6 6
7 75 15 9 10
8 87 14 9 10
9 86 19 5 7

Gráfica residual para regresión lineal simple

Supongamos que ajustamos un modelo de regresión lineal simple usando puntos como variable predictora y calificación como variable de respuesta:

import bibliotecas necesarias 
importar matplotlib.pyplot como PLT
 importación statsmodels.api como SM
 de statsmodels.formula.api importación oles

#fit modelo de modelo de regresión lineal simple
 = ols ('calificación ~ puntos', datos = gl). encajar ()

#ver impresión de resumen del modelo
 (model.summary ())

Podemos crear una gráfica residual vs. ajustada usando la función plot_regress_exog () de la biblioteca statsmodels:

#define el tamaño de la figura
 fig = plt.figure (figsize = (12,8))

#producir gráficos de regresión 
fig = sm.graphics.plot_regress_exog (modelo, ' puntos ', fig = fig)

Gráfico residual en Python

Se producen cuatro parcelas. El de la esquina superior derecha es el gráfico residual vs. ajustado. El eje x de este gráfico muestra los valores reales de los puntos de la variable predictora y el eje y muestra el residual de ese valor.

Dado que los residuos parecen estar distribuidos aleatoriamente alrededor de cero, esto es una indicación de que la heterocedasticidad no es un problema con la variable predictora.

Gráficos residuales para regresión lineal múltiple

Supongamos que, en cambio, ajustamos un modelo de regresión lineal múltiple utilizando asistencias y rebotes como variable de predicción y calificación como variable de respuesta:

#ajustar modelo de modelo de regresión lineal múltiple
 = ols ('calificación ~ asistencias + rebotes', datos = gl). encajar ()

#ver impresión de resumen del modelo
 (model.summary ())

Una vez más, podemos crear un gráfico residual vs. predictor para cada uno de los predictores individuales usando la función plot_regress_exog () de la biblioteca statsmodels.

Por ejemplo, así es como se ve el gráfico residual frente al predictor para las ayudas de la variable predictora :

#create gráfico residual vs predictor para 'asistencias'
 fig = plt.figure (figsize = (12,8))
fig = sm.graphics.plot_regress_exog (modelo, ' asiste ', fig = fig)

Parcela residual frente a parcela ajustada

Y así es como se ve el gráfico residual frente al predictor para los rebotes de la variable predictora :

#create gráfico residual vs predictor para 'asistencias'
 fig = plt.figure (figsize = (12,8))
fig = sm.graphics.plot_regress_exog (modelo, ' rebotes ', fig = fig)

Gráfica residual vs. ajustada en Python

En ambas gráficas, los residuos parecen estar distribuidos aleatoriamente alrededor de cero, lo que indica que la heterocedasticidad no es un problema con ninguna de las variables predictoras del modelo.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

El término análisis univariado se refiere al análisis de una variable. Puede recordar esto porque el prefijo "uni" significa "uno".…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!