Zaman Serisi Analizi — Ortalamaya Dönüş (Mean-Reverting)

Evren Arslan
3 min readDec 24, 2021

--

Zamana bağlı olarak değişen verilerin analizinde kullanılan yöntemlerden birisi de Ortalamaya Dönüş yöntemidir. Yöntem kısaca zamana bağlı bir değişikenin tarihsel bir ortalama değere dönme eğiliminde olduğu fikrine dayanır. Bu fikir algoritmik trade işlemleri için kullanılacak yöntemlerden biridir. Eğer bir fiyat ortalama değerden çok uzaklaşmış ise tekrar o değere döneceğini düşünerek pozisyona girilebilir.

Bir zaman serisi verisi için ortalamaya dönüş fikrinin kullanılıp kullanılmayacağını karar vermek için öncelikli olarak verilerin rastgele (random-walk) olup olmadığının anlaşılması gerekir. Bir sonraki veri daha önce gelen verilerden tamamen bağımsız olması durumunda o zaman serisi rastgele oluşmuş bir zaman serisidir. Yani verinin nerede olduğu ile ilgili olarak “hafızası” yoktur.

Random-walk zaman serilerinden tamamen farklı olarak ortalamaya dönen zaman serilerinde veri ortalamaya göre nerede olduğunu bilir ve ortalamaya dönmek ister. Yani serideki bir sonraki değer, ortalama değer ile uzaklık ile orantılı olarak gelir.

Yukarıdaki bahsetmiş olduğumuz tanımlardan da anlamış olacağınız gibi ortalamaya dönüş yaklaşımını kullanabilmek için öncelikli olarak verinin rastgele oluşup oluşmadığının belirlenmesi gerekir. Bunun için elimizdeki zaman serisinin Ornstein–Uhlenbeck serisi gibi davranıp davranmadığını test ederek bu işi yapabiliriz. Bu testi yapmak için Augmented Dickey-Fuller (ADF) testini kullanacağız.

ADF hipotezinin rolü istatistiksel olarak bir serinin random-walk olup olmadığını belirlemektir. Random-walk ise ortalamaya geri dönmeyecektir.

Öncelikli olarak pyton ile zaman serisi örneklerini inceleyip ADF’nin nasıl yorumlanacağına bakalım. Bu iş için öncelikli olarak aşağıdaki kütüphaneleri kullanacağım.

import statsmodels.tsa.stattools as ts
from datetime import datetime
import pandas as pd
import yfinance as yf

Akabinde test için EREGL hisse senedinin verilerini yahoo finance üzerinden indireceğim.

data = yf.download(“EREGL.IS”, start=”2019–01–01", end=”2021–01–01")
data.head()

Sonrasında statsmodel kütüphanesinden import etmiş olduğum stattools ile ADF hesaplaması yaptırıyorum.

ts.adfuller(df[“Adj Close”])

(-10.558043668984128,
7.858696268407933e-19,
0,
98,
{'1%': -3.4989097606014496,
'5%': -2.891516256916761,
'10%': -2.5827604414827157},
-450.68840117680463)

Dönen sonucu yorumlayalım:

  • Birinci veri: -10.558043668984128 — Verilerin hesaplanmış “kritik değeri”
  • İkinci veri: 7.858696268407933e-19 — Boş hipotezin reddedilme olasılığı yani verimizin random-walk olmama olasılığı
  • Üçüncü veri: 0 — Regresyonda kullanılan gecikme katsayısı. Burada 0 “sıfır” olması geri dönen otomatik korelasyon olmadığı anlamına gelir.
  • Dördüncü veri: 98 — Analizimizde kullanmış olduğumuz gözlem sayısı “satır sayısı”
  • Beşinci veri: “%1 -%5-%10 dilimlerindeki değeri içeren” veri seti — adfuller testinin güven aralıklarındaki (yüzdelik dilimler) değerleri

Birinci veri güven aralıklarındaki verilerden büyük olmadığı için (-10.5<-3.4<-2.8<-2.5) verimizin random-walk yani rastgele bir veri olduğu sonucuna varıyoruz. Dolayısı ile bu veri seti için ortalamaya dönüş yaklaşımını kullanamayız. Bu sonuç şaşırtıcı değil çünkü sermaye piyasaları verileri çoğunlukla random-walk verilerdir.

Finansal veri yerine daha tahmin edilebilir bir veri seti olan iklim verisi ile aynı testi yapacak olursak. Sıcaklık verisi linkinden test etmek için veriyi indirebilirsiniz.

Pandas ile veriyi yükleyip akabinde test edip sonucu inceleyelim. Akabinde son 300 kayıt üzerinden test edelim.

# Sıcaklık verisi ile inceleme
data=pd.read_csv(“temp_data.csv”).tail(300)
ts.adfuller(data[“Temp”])

(-1.9049272235591905,
0.3297467513890595,
8,
291,
{'1%': -3.4530232710482367,
'5%': -2.871523926671883,
'10%': -2.5720897694878424},
1290.0528560593286)

Buradaki sonuçları kontrol edecek olursak ilk değer -1.9 güven aralığındaki verilerden büyük dolayısı ile burada ele aldığımız veri grubu tamamen random olarak hareket etmiyor sonucuna varabiliriz.

Bu yaklaşım ile test ettikten sonra eğer uygun sonuç bulunabilirse ortalamaya dönüş yaklaşımı veri tahmininde kullanılabilir.

--

--