Caminata aleatoria

Análisis de series temporales en Python

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

¿Qué es una caminata aleatoria?

  • Precio de hoy = Precio de ayer + Ruido

$\large \quad \quad \ P_t \quad \ \ = \quad P_{t-1} \quad \quad \ + \ \ \epsilon_t$

  • Gráfico de datos simulados

Análisis de series temporales en Python

¿Qué es una caminata aleatoria?

  • Precio de hoy = Precio de ayer + Ruido

$\large \quad \quad \ P_t \quad \ \ = \quad P_{t-1} \quad \quad \ + \ \ \epsilon_t$

  • El cambio de precio es ruido blanco

$\large \quad \quad P_t - P_{t-1} \quad \ \ = \quad \ \ \epsilon_t$

  • No se puede predecir una caminata aleatoria
  • La mejor previsión para mañana es el precio de hoy
Análisis de series temporales en Python

¿Qué es una caminata aleatoria?

  • Precio de hoy = Precio de ayer + Ruido

$\large \quad \quad \ P_t \quad \ \ = \quad P_{t-1} \quad \quad \ + \ \ \epsilon_t$

  • Caminata aleatoria con deriva:

$\large \quad \quad \ P_t \quad \ \ = \ \mu \ + \ P_{t-1} \ \ + \quad \epsilon_t$

  • El cambio de precio es ruido blanco con media no nula:

$\large \quad \quad P_t - P_{t-1} \ \ = \ \mu \ \ + \ \ \epsilon_t$

Análisis de series temporales en Python

Prueba estadística para caminata aleatoria

  • Caminata aleatoria con deriva

$\large \quad \quad P_t \quad \ \ = \ \mu \ \ + \ \ P_{t-1} \quad \ + \ \ \epsilon_t$

  • Prueba de regresión para caminata aleatoria

$\large \quad \quad P_t \quad \ \ = \ \alpha \ \ + \ \ \beta \ P_{t-1} \ \ + \ \ \epsilon_t$

  • Prueba:

$\quad \quad \large H_0: \beta=1$ (caminata aleatoria)

$\quad \quad \large H_1: \beta<1$ (no es caminata aleatoria)

Análisis de series temporales en Python

Prueba estadística para caminata aleatoria

  • Prueba de regresión para caminata aleatoria

$\large \quad \quad \quad \quad P_t \quad \ \ = \ \alpha \ \ + \ \ \beta \ P_{t-1} \quad \ + \ \ \epsilon_t$

  • Equivalente a

$\large \quad \quad P_t - P_{t-1} \ \ = \ \alpha \ \ + \ \ \beta \ P_{t-1} \ \ + \ \ \epsilon_t$

  • Prueba:

$\quad \quad \large H_0: \beta=0$ (caminata aleatoria)

$\quad \quad \large H_1: \beta<0$ (no es caminata aleatoria)

Análisis de series temporales en Python

Prueba estadística para caminata aleatoria

  • Prueba de regresión para caminata aleatoria

$\large \quad \quad P_t - P_{t-1} \ \ = \ \alpha \ \ + \ \ \beta \ P_{t-1} \ \ + \ \ \epsilon_t$

  • Prueba:

$\large \ \ \ \ H_0: \beta=0$ (caminata aleatoria)

$\large \ \ \ \ H_1: \beta<0$ (no es caminata aleatoria)

  • Esta prueba se llama Dickey-Fuller
  • Si añades más rezagos a la derecha, es la Dickey-Fuller aumentada
Análisis de series temporales en Python

Prueba ADF en Python

  • Importa el módulo de statsmodels
    from statsmodels.tsa.stattools import adfuller
    
  • Ejecuta la prueba Dickey-Fuller aumentada
    adfuller(x)
    
Análisis de series temporales en Python

Ejemplo: ¿El S&P500 es una caminata aleatoria?

# Run Augmented Dickey-Fuller Test on SPX data
results = adfuller(df['SPX'])
# Print p-value
print(results[1])
0.782253808587
# Print full results
print(results)
(-0.91720490331127869,
 0.78225380858668414,
 0,
 1257,
 {'1%': -3.4355629707955395,
  '10%': -2.567995644141416,
  '5%': -2.8638420633876671},
 10161.888789598503)
Análisis de series temporales en Python

¡Vamos a practicar!

Análisis de series temporales en Python

Preparing Video For Download...