Aan de slagBegin gratis

Correlaties

Correlaties zijn handig om te bekijken voordat je Machine Learning-modellen bouwt, omdat je zo ziet welke features het sterkst correleren met de target. Vaak wordt de Pearson-correlatiecoëfficiënt gebruikt, die alleen lineaire relaties detecteert. Er wordt vaak aangenomen dat onze data normaal verdeeld is; dat kun je globaal inschatten met histogrammen. Sterk gecorreleerde variabelen hebben een Pearson-correlatiecoëfficiënt dicht bij 1 (positief gecorreleerd) of -1 (negatief gecorreleerd). Een waarde rond 0 betekent dat de twee variabelen niet lineair gecorreleerd zijn.

Als we dezelfde perioden gebruiken voor eerdere en toekomstige koersveranderingen, kunnen we zien of de aandelenkoers mean-reverting is (schommelt rond een gemiddelde) of trendvolgend (stijgt als hij recent is gestegen).

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

Gebruik de DataFrame lng_df en de kolom Adj_Close:

  • Maak de 5-daagse toekomstige koers (als 5d_future_close) met pandas' .shift(-5).
  • Gebruik pct_change(5) op 5d_future_close en Adj_Close om de toekomstige 5-daagse procentuele koersverandering (5d_close_future_pct) en de huidige 5-daagse procentuele koersverandering (5d_close_pct) te maken.
  • Onderzoek de correlaties tussen de twee kolommen met 5-daagse procentuele koersverandering met .corr() op lng_df.
  • Maak met plt.scatter() een scatterplot van 5d_close_pct tegen 5d_close_future_pct.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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()
Code bewerken en uitvoeren