Zacznij terazZacznij za darmo

Korelacje

Warto sprawdzić korelacje przed zbudowaniem modeli uczenia maszynowego – pozwala to zobaczyć, które cechy najsilniej korelują z celem. Często stosuje się współczynnik korelacji Pearsona, który wykrywa wyłącznie zależności liniowe. Zwykle zakłada się, że dane mają rozkład normalny, co można wstępnie ocenić na podstawie histogramów. Silnie skorelowane zmienne mają współczynnik korelacji Pearsona bliski 1 (korelacja dodatnia) lub -1 (korelacja ujemna). Wartość bliska 0 oznacza brak liniowej zależności między dwiema zmiennymi.

Jeśli użyjemy tych samych przedziałów czasowych dla poprzednich i przyszłych zmian cen, możemy sprawdzić, czy kurs akcji wykazuje tendencję do powrotu do średniej (waha się wokół pewnego poziomu) czy podąża za trendem (rośnie, jeśli ostatnio rósł).

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

Korzystając z DataFrame lng_df i kolumny Adj_Close:

  • Utwórz cenę przyszłą z wyprzedzeniem 5 dni (jako 5d_future_close) za pomocą .shift(-5) z biblioteki pandas.
  • Użyj pct_change(5) na kolumnach 5d_future_close i Adj_Close, aby obliczyć przyszłą 5-dniową procentową zmianę ceny (5d_close_future_pct) oraz bieżącą 5-dniową procentową zmianę ceny (5d_close_pct).
  • Sprawdź korelacje między obiema kolumnami 5-dniowych procentowych zmian cen, wywołując .corr() na lng_df.
  • Za pomocą plt.scatter() utwórz wykres punktowy przedstawiający 5d_close_pct względem 5d_close_future_pct.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod