EmpezarEmpieza gratis

Correlaciones

Las correlaciones son útiles de revisar antes de construir modelos de Machine Learning, porque nos permiten ver qué variables se correlacionan más con el objetivo. A menudo se usa el coeficiente de correlación de Pearson, que solo detecta relaciones lineales. Normalmente se asume que nuestros datos tienen una distribución normal, algo que podemos intuir con histogramas. Las variables muy correlacionadas tienen un coeficiente de Pearson cercano a 1 (correlación positiva) o a -1 (correlación negativa). Un valor cercano a 0 indica que las dos variables no están correlacionadas linealmente.

Si usamos los mismos periodos para cambios de precio pasados y futuros, podremos ver si el precio de la acción es mean-reverting (tiende a volver a la media) o sigue la tendencia (sube si ha estado subiendo recientemente).

Este ejercicio forma parte del curso

Machine Learning para finanzas con Python

Ver curso

Instrucciones del ejercicio

Usando el DataFrame lng_df y su columna Adj_Close:

  • Crea el precio futuro a 5 días (como 5d_future_close) con .shift(-5) de pandas.
  • Usa pct_change(5) sobre 5d_future_close y Adj_Close para crear el cambio porcentual de precio futuro a 5 días (5d_close_future_pct) y el cambio porcentual de precio actual a 5 días (5d_close_pct).
  • Examina las correlaciones entre las dos columnas de cambio porcentual a 5 días con .corr() sobre lng_df.
  • Con plt.scatter(), crea un diagrama de dispersión de 5d_close_pct frente a 5d_close_future_pct.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Create 5-day % changes of Adj_Close for the current day, and 5 days in the future
lng_df['5d_future_close'] = lng_df['Adj_Close'].shift(____)
lng_df['5d_close_future_pct'] = lng_df['5d_future_close'].pct_change(5)
lng_df['5d_close_pct'] = lng_df['Adj_Close'].pct_change(____)

# Calculate the correlation matrix between the 5d close pecentage changes (current and future)
corr = lng_df[['5d_close_pct', '5d_close_future_pct']].____
print(corr)

# Scatter the current 5-day percent change vs the future 5-day percent change
plt.scatter(lng_df['5d_close_pct'], lng_df[____])
plt.show()
Editar y ejecutar código