Comece agoraComece grátis

Correlações

É útil verificar correlações antes de criar modelos de Machine Learning, pois assim você vê quais variáveis explicativas se correlacionam mais fortemente com o alvo. O coeficiente de correlação de Pearson é frequentemente usado e detecta apenas relações lineares. Costuma-se assumir que nossos dados seguem distribuição normal, algo que dá para "bater o olho" em histogramas. Variáveis altamente correlacionadas têm coeficiente de Pearson próximo de 1 (correlação positiva) ou -1 (correlação negativa). Um valor próximo de 0 indica que as duas variáveis não são linearmente correlacionadas.

Se usarmos os mesmos períodos para variações de preço passadas e futuras, dá para ver se o preço da ação é mean-reverting (oscila em torno de uma média) ou seguidor de tendência (sobe se vinha subindo recentemente).

Este exercicio faz parte do curso

Machine Learning para Finanças em Python

Ver curso

Instruções do exercicio

Usando o DataFrame lng_df e sua coluna Adj_Close:

  • Crie o preço futuro em 5 dias (como 5d_future_close) com .shift(-5) do pandas.
  • Use pct_change(5) em 5d_future_close e Adj_Close para criar a variação percentual de preço futura em 5 dias (5d_close_future_pct) e a variação percentual atual em 5 dias (5d_close_pct).
  • Examine as correlações entre as duas colunas de variação percentual em 5 dias com .corr() em lng_df.
  • Usando plt.scatter(), faça um diagrama de dispersão de 5d_close_pct vs 5d_close_future_pct.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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 e Executar Código