Kom igångKom igång gratis

Korrelationer

Det är bra att undersöka korrelationer innan man bygger maskininlärningsmodeller, eftersom man då kan se vilka särdrag som korrelerar starkast med målet. Pearsons korrelationskoefficient används ofta och mäter enbart linjära samband. Det antas vanligtvis att data är normalfördelad, vilket man kan bedöma visuellt utifrån histogram. Starkt korrelerade variabler har en Pearsons korrelationskoefficient nära 1 (positivt korrelerade) eller -1 (negativt korrelerade). Ett värde nära 0 innebär att de två variablerna inte är linjärt korrelerade.

Om vi använder samma tidsperioder för tidigare och framtida prisförändringar kan vi se om aktiepriset är mean-reverting (studsar upp och ned) eller trenddrivande (stiger om det nyligen har stigit).

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

Använd DataFrame:en lng_df och dess kolumn Adj_Close:

  • Skapa det framtida priset om 5 dagar (som 5d_future_close) med pandas .shift(-5).
  • Använd pct_change(5)5d_future_close och Adj_Close för att skapa den framtida 5-dagars procentuella prisförändringen (5d_close_future_pct) och den nuvarande 5-dagars procentuella prisförändringen (5d_close_pct).
  • Undersök korrelationerna mellan de två kolumnerna med procentuella prisförändringar över 5 dagar genom att använda .corr()lng_df.
  • Skapa ett spridningsdiagram av 5d_close_pct mot 5d_close_future_pct med plt.scatter().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod