Cómo realizar una prueba de Durbin-Watson en Python

Uno de los supuestos de la regresión lineal es que no existe correlación entre los residuos. En otras palabras, se supone que los residuos son independientes.

Una forma de determinar si se cumple este supuesto es realizar una prueba de Durbin-Watson , que se utiliza para detectar la presencia de autocorrelación en los residuos de una regresión . Esta prueba utiliza las siguientes hipótesis:

H 0 (hipótesis nula): No existe correlación entre los residuos.

H A (hipótesis alternativa): Los residuos están autocorrelacionados.

El estadístico de prueba es aproximadamente igual a 2 * (1-r) donde r es la autocorrelación muestral de los residuos. Por lo tanto, el estadístico de prueba siempre estará entre 0 y 4 con la siguiente interpretación:

  • Una estadística de prueba de 2 indica que no hay correlación serial.
  • Cuanto más cerca de 0 estén las estadísticas de la prueba, mayor será la evidencia de correlación serial positiva.
  • Cuanto más cerca estén las estadísticas de la prueba de 4 , más evidencia de correlación serial negativa.

Como regla general, los valores estadísticos de prueba entre el rango de 1,5 y 2,5 se consideran normales. Sin embargo, los valores fuera de este rango podrían indicar que la autocorrelación es un problema.

Este tutorial explica cómo realizar una prueba de Durbin-Watson en Python.

Ejemplo: prueba de Durbin-Watson en Python

Supongamos que tenemos el siguiente 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

Supongamos que ajustamos un modelo de regresión lineal múltiple utilizando la calificación como variable de respuesta y las otras tres variables como variables predictoras:

de statsmodels.formula.api importación oles

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

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

Podemos realizar un Durbin Watson usando la función durbin_watson () de la biblioteca statsmodels para determinar si los residuos del modelo de regresión están autocorrelacionados:

de statsmodels.stats.stattools import durbin_watson

# realizar la prueba de Durbin-Watson
 durbin_watson (model.resid)

2.392

El estadístico de prueba es 2.392 . Dado que esto está dentro del rango de 1.5 y 2.5, consideraríamos que la autocorrelación no es problemática en este modelo de regresión.

Cómo manejar la autocorrelación

Si rechaza la hipótesis nula y concluye que la autocorrelación está presente en los residuos, entonces tiene algunas opciones diferentes para corregir este problema si lo considera lo suficientemente serio:

1. Para una correlación serial positiva, considere agregar rezagos de la variable dependiente y / o independiente al modelo.

2. Para una correlación serial negativa, verifique que ninguna de sus variables esté sobrediferenciada .

3. Para la correlación estacional, considere agregar variables ficticias estacionales al modelo.

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

Deja un comentario

La forma más sencilla de filtrar un DataFrame de pandas por valores de columna es usar la función de consulta…
statologos comunidad-2

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

You have Successfully Subscribed!