LoslegenKostenlos starten

Korrelationen

Korrelationen sind hilfreich, bevor wir Machine-Learning-Modelle bauen, weil wir sehen können, welche Features am stärksten mit dem Target korrelieren. Häufig wird Pearsons Korrelationskoeffizient verwendet, der nur lineare Zusammenhänge erkennt. Oft nimmt man an, dass unsere Daten normalverteilt sind; das können wir per „Augenmaß" in Histogrammen prüfen. Stark korrelierte Variablen haben einen Pearson-Korrelationskoeffizienten nahe 1 (positiv korreliert) oder -1 (negativ korreliert). Ein Wert nahe 0 bedeutet, dass die beiden Variablen nicht linear korreliert sind.

Wenn wir für vergangene und zukünftige Kursänderungen die gleichen Zeiträume verwenden, können wir sehen, ob der Aktienkurs mittelfristig zum Mittelwert zurückkehrt (schwankt hin und her) oder einem Trend folgt (steigt weiter, wenn er zuletzt gestiegen ist).

Diese Übung ist Teil des Kurses

<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>
Kurs ansehen

Übungsanweisungen

Verwende das DataFrame lng_df und dessen Adj_Close:

  • Erzeuge den zukünftigen 5-Tage-Schlusskurs (als 5d_future_close) mit .shift(-5) von pandas.
  • Verwende pct_change(5) auf 5d_future_close und Adj_Close, um die zukünftige prozentuale 5-Tage-Kursänderung (5d_close_future_pct) und die aktuelle prozentuale 5-Tage-Kursänderung (5d_close_pct) zu erstellen.
  • Untersuche die Korrelationen zwischen den beiden Spalten der prozentualen 5-Tage-Kursänderung mit .corr() auf lng_df.
  • Erstelle mit plt.scatter() ein Streudiagramm von 5d_close_pct gegen 5d_close_future_pct.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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 bearbeiten und ausführen