Autokorelacja

Analiza szeregów czasowych w Pythonie

Rob Reider

Adjunct Professor, NYU-Courant Consultant, Quantopian

Czym jest autokorelacja?

  • Korelacja szeregu czasowego z jego przesuniętą kopią
  • Nazywana również korelacją seryjną
  • Autokorelacja z opóźnieniem o jeden okres
Analiza szeregów czasowych w Pythonie

Interpretacja autokorelacji

  • Powrót do średniej – ujemna autokorelacja
Analiza szeregów czasowych w Pythonie

Interpretacja autokorelacji

  • Momentum, czyli podążanie za trendem – dodatnia autokorelacja

Analiza szeregów czasowych w Pythonie

Autokorelacja jako narzędzie inwestycyjne

  • Akcje pojedynczych spółek
    • Historycznie wykazują ujemną autokorelację
    • Mierzona w krótkich horyzontach (dni)
    • Strategia: kupuj przegranch, sprzedawaj zwycięzców
  • Surowce i waluty
    • Historycznie wykazują dodatnią autokorelację
    • Mierzona w dłuższych horyzontach (miesiące)
    • Strategia: kupuj zwycięzców, sprzedawaj przegranych
Analiza szeregów czasowych w Pythonie

Przykład dodatniej autokorelacji: kursy walut

  • Dzienne kursy wymiany $\yen$/$ w DataFrame df z FRED
  • Konwersja indeksu na format datetime
# Convert index to datetime
df.index = pd.to_datetime(df.index)

# Downsample from daily to monthly data df = df.resample(rule='M').last()
# Compute returns from prices df['Return'] = df['Price'].pct_change()
# Compute autocorrelation autocorrelation = df['Return'].autocorr() print("The autocorrelation is: ",autocorrelation)
The autocorrelation is: 0.0567
Analiza szeregów czasowych w Pythonie

Czas na ćwiczenia!

Analiza szeregów czasowych w Pythonie

Preparing Video For Download...