Hacer estacionarias las series temporales

Modelos ARIMA en Python

James Fulton

Climate informatics researcher

Resumen

  • Pruebas de estacionariedad
  • Cómo volver estacionario un conjunto de datos
Modelos ARIMA en Python

La prueba aumentada de Dickey-Fuller

  • Pruebas de no estacionariedad por tendencia
  • Hipótesis nula: la serie temporal no es estacionaria
Modelos ARIMA en Python

Aplicar la prueba adfuller

from statsmodels.tsa.stattools import adfuller

results = adfuller(df['close'])
Modelos ARIMA en Python

Interpretar el resultado de la prueba

print(results)
(-1.34, 0.60, 23, 1235, {'1%': -3.435, '5%': -2.913, '10%': -2.568}, 10782.87)
  • El elemento 0 es el estadístico de prueba (-1.34)
    • Más negativo = más probable que sea estacionaria
  • El elemento 1 es el p-valor: (0.60)
    • Si el p-valor es pequeño $\rightarrow$ rechaza la hipótesis nula. Rechaza no estacionaria.
  • El elemento 4 son los valores críticos del test
Modelos ARIMA en Python

Interpretar el resultado de la prueba

print(results)
(-1.34, 0.60, 23, 1235, {'1%': -3.435, '5%': -2.863, '10%': -2.568}, 10782.87)
  • El elemento 0 es el estadístico de prueba (-1.34)
    • Más negativo = más probable que sea estacionaria
  • El elemento 1 es el p-valor: (0.60)
    • Si el p-valor es pequeño $\rightarrow$ rechaza la hipótesis nula. Rechaza no estacionaria.
  • El elemento 4 son los valores críticos del test
1 https://www.statsmodels.org/dev/generated/statsmodels.tsa.stattools.adfuller.html
Modelos ARIMA en Python

El valor de graficar

  • Graficar series temporales evita conclusiones erróneas
Modelos ARIMA en Python

El valor de graficar

Modelos ARIMA en Python

Cómo hacer estacionaria una serie temporal

Modelos ARIMA en Python

Aplicar la diferencia

Diferencia: $\Delta y_t = y_t - y_{t-1}$

Modelos ARIMA en Python

Aplicar la diferencia

df_stationary = df.diff()
            city_population
date                       
1969-09-30              NaN
1970-03-31        -0.116156
1970-09-30         0.050850
1971-03-31        -0.153261
1971-09-30         0.108389
Modelos ARIMA en Python

Aplicar la diferencia

df_stationary = df.diff().dropna()
            city_population
date                       
1970-03-31        -0.116156
1970-09-30         0.050850
1971-03-31        -0.153261
1971-09-30         0.108389
1972-03-31        -0.029569
Modelos ARIMA en Python

Aplicar la diferencia

Modelos ARIMA en Python

Otras transformaciones

Ejemplos de otras transformaciones

  • Tomar el logaritmo
    • np.log(df)
  • Tomar la raíz cuadrada
    • np.sqrt(df)
  • Tomar el cambio proporcional
    • df.shift(1)/df
Modelos ARIMA en Python

¡Vamos a practicar!

Modelos ARIMA en Python

Preparing Video For Download...