Korelacja dwóch szeregów czasowych

Analiza szeregów czasowych w Pythonie

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Korelacja dwóch szeregów czasowych

  • Wykres cen akcji S&P500 i JPMorgan
Analiza szeregów czasowych w Pythonie

Korelacja dwóch szeregów czasowych

  • Wykres punktowy stóp zwrotu S&P500 i JP Morgan
Analiza szeregów czasowych w Pythonie

Więcej wykresów punktowych

  • Korelacja = 0,9

  • Korelacja = -0,9

  • Korelacja = 0,4

  • Korelacja = 1,0

Analiza szeregów czasowych w Pythonie

Częsty błąd: korelacja dwóch szeregów z trendem

  • Dow Jones Industrial Average i obserwacje UFO (www.nuforc.org)

  • Korelacja poziomów: 0,94

  • Korelacja zmian procentowych: $\large \approx$ 0
Analiza szeregów czasowych w Pythonie

Przykład: korelacja akcji dużych i małych spółek

  • Punktem wyjścia są ceny akcji SPX (duże spółki) i R2000 (małe spółki)
  • Krok pierwszy: obliczenie zmian procentowych obu szeregów
      df['SPX_Ret'] = df['SPX_Prices'].pct_change()
      df['R2000_Ret'] = df['R2000_Prices'].pct_change()
    
Analiza szeregów czasowych w Pythonie

Przykład: korelacja akcji dużych i małych spółek

  • Wizualizacja korelacji za pomocą wykresu punktowego
      plt.scatter(df['SPX_Ret'], df['R2000_Ret'])
      plt.show()
    

Analiza szeregów czasowych w Pythonie

Przykład: korelacja akcji dużych i małych spółek

  • Metoda korelacji pandas dla obiektów Series
correlation = df['SPX_Ret'].corr(df['R2000_Ret'])
print("Correlation is: ", correlation)
Correlation is: 0.868
Analiza szeregów czasowych w Pythonie

Czas na ćwiczenia!

Analiza szeregów czasowych w Pythonie

Preparing Video For Download...