ZAMAN SERİSİ TAHMİNİ (TIME SERIES FORECASTING)

Merhaba!

Bu yazımda zaman serisi ve tahmininden bahsedeceğim.

Keyifli okumalar dilerim…

Zaman Serisi ve Tahmini Nedir?

Zamana göre sıralanmış gözlem değerlerinden oluşan veriye zaman serisi denir. Zaman serisi verileri, çeşitli işletmelerde kullanılan bilgi ve strateji için önemli bir kaynaktır. Geleneksel bir finans endüstrisinden eğitim endüstrisine kadar, zamanla ilgili belirli faktörlere ilişkin birçok ayrıntıyı anlamada önemli bir rol oynarlar.

Zaman serisi tahmini, bir zaman dizisi aracılığıyla olayların tahmin edilmesi için kullanılan bir tekniktir. Teknik, jeolojiden davranışa ve ekonomiye kadar birçok çalışma alanında kullanılmaktadır. Teknikler, gelecekteki eğilimlerin tarihsel eğilimlere benzer olacağı varsayımıyla geçmişin eğilimlerini analiz ederek gelecekteki olayları tahmin eder.

Zaman serisi tahmininin kullanıldığı bazı alanlar şu şekildedir:

  • Hava Durumu tahmini
  • Deprem tahmini
  • Astronomi
  • İstatistik
  • Matematiksel finans
  • Ekonometri
  • Desen tanıma
  • Sinyal işleme
  • Kontrol Mühendisliği

Birçok modern uygulamada zaman serisi tahmini yapılırken, aşağıdaki bilgisayar teknolojileri kullanılmaktadır

  • Makine öğrenmesi
  • Yapay sinir ağları
  • Bulanık mantık
  • Gauss süreçleri
  • Gizli Markov modelleri

Zaman serisi tahmini, geçmiş bir zaman serisiyle başlar. Analistler-geçmiş verileri inceler ve trendler, mevsimsel modeller, döngüsel modeller ve durağanlık(düzenlilik) gibi dört zaman ayrıştırma modelini kontrol eder. Pazarlama, finans ve satış dahil olmak üzere kuruluşlardaki birçok alan, olası teknik maliyetleri ve tüketici talebini değerlendirmek için bir tür zaman serisi tahmini kullanır.

Zaman Serisi Bileşenleri ve Temel Kavramlar

Durağanlık (Stationary)

Bir serinin istatistiksel özelliklerinin zaman içerisinde değişmemesi durumuna denir.

Bir zaman serisinin ortalaması, varyansı ve kovaryansı zaman boyunca sabit kalıyorsa, serinin durağan olduğu ifade edilir.

Bu grafikleri yorumlayacak olursak; kırmızı grafiğin hem yönü hem de varyansı (genişliği) değişmiştir. Genişliğinin değişmesi bize ortalamasının değiştiği hakkında bilgi verir. Yeşil grafiğin kırmızı grafiğe göre daha kararlı olduğunu söyleyebiliriz.

Gelecek hakkında tahmin yapmak istediğimizi varsayalım. Her iki grafik üzerinde t boyunca bir çizgi çekip ortalamaya bakarsak yapacağımız tahminlerde yeşil grafikte daha tutarlı sonuçlar elde ederken, kırmızı grafikte durağanlık olmadığı için tahmin ettiğimiz değer gerçek değerden uzak olacaktır.

Varsayıma göre eğer bir seri durağansa daha kolay tahmin yapılabilir.

Trend

Bir zaman serisinin uzun vadedeki artış ya da azalışının gösterdiği yapıya trend denir.

  • Artan Trend
  • Azalan Trend

Bir seri durağan değilse o seride trendden söz edebiliriz.

Mevsimsellik (Seasonality)

Zaman serisinin belirli bir davranışı belirli periyotlarla tekrar etmesi durumuna mevsimsellik denir.

Bu grafiği yorumlayalım;

  • İlk bakışta artan bir trende sahip olduğundan söz edebiliriz.
  • Trend artmaya devam ederken iniş ve çıkış durumunun kendi içinde düzenli bir şekilde tekrarlanması bize mevsimsellik olduğuna dair ipucu veriyor.
  • Bu serinin istatistiksel özellikleri zaman içinde değişkenlik gösterdiğinden durağanlık yoktur diyebiliriz.

Döngü (Cycle)

Az önce de değindiğimiz gibi mevsimsellik tekrar eden düzen barındırır. Daha belirgin kısa vadeli ve düzenli aralıklarla gün, hafta, mevsim, yıl gibi zamanlarla örtüşecek şekilde ilerler.

Döngüsellik de bir çeşit mevsimselliktir. Fakat döngüsellik daha uzun vadeli, daha belirsiz, gün, hafta, mevsim gibi zamanlarla örtüşmeyecek şekilde gerçekleşir. Daha çok yapısal, nedensel, konjonktürel değişimlerle ortaya çıkar. İş dünyası ya da politik dünyadaki değişimlerden etkilenir.

Mevsimsellik ve Döngüsellik farkı

🌎 Zaman Serisi Modellerinin Doğasını Anlamak

Grafik üzerinden ilerleyerek konuyu kavramaya çalışalım.

Saatlik reklam izleme sayılarına ait grafik
  • Grafiğe baktığımızda trend yok ama mevsimsellik var gibi gözüküyor.
  • Seride mevsimsellik ya da trend varsa seri durağan değildir şeklinde bir yorum yapabiliriz. Fakat emin olmak istiyorsak istatistiki testler yapıp sonuca göre karar vermek daha iyi olacaktır.

Grafikte en son gözlem 22 Eylül 2017 tarihine ait. 23 Eylül 2017 tarihindeki saatlik reklam izleme sayılarına ait tahmin yapmak istediğimizi ve makine öğrenmesi bilmediğimizi varsayalım.

Tahmin yaparken nasıl biz yol izleyebiliriz?

Buradaki en mantıklı yaklaşım geçmiş değerlere bakarak, ortalamaların baza alınması ile(mevsimsellik özelinde olabilir) yeni tahmin sonuçlarını elde etmek olacaktır.

Moving Average (Hareketli Ortalama)

Bir zaman serisinin geleck değeri kendisinin k adet önceki değerinin ortalamasıdır.

Moving average formülü

Zaman serisi teorisine göre; zaman serisi kendisinden bir önceki değerden (yani (t-1). değerden) en çok etkilenir.

Diyelim ki bugün ayın 11’i ve bugüne ait bi tahminde bulunmak istiyoruz. Yukarıdaki teoriye göre 11. günü en iyi tanımlayan değer en çok 10. güne ait verilerden etkilenmektedir.

Grafik-I
Grafik-II

Şimdi bu iki grafiği yorumlamaya çalışalım.

  • Grafik-I’de window size = 4 alınmış ve sonuç olarak moving average değerimiz gerçek değere daha yakın.
  • Grafik-II’de ise window size =12 olarak alınmış ve moving average değeri gerçek değerden uzaklaşmıştır.
  • Buradan şu sonuca varabiliriz; tahmin yaparken önceki gözlemleri baza aldığımızda (grafik-II için 12, grafik-I için 4 adet olarak hesaplanmıştır) her gözleme eşit ağırlık verdiğimizden dolayı kötü bir tahmin sonucu ile karşılaştık.

Peki tahmin başarısını artırmak istiyorsak ne yapabiliriz ?

➡ Gözlemlere ağırlık verebiliriz.

Weighted Average (Ağırlıklı Ortalama)

Ağırlıklı ortalamanın hareketli ortalamadan farkı gözlemlere ağırlık vermektir. Daha sonlarda olan gözlemlere daha fazla ağırlık verir.

Weighted Average formülü

Moving Average kısmında da ifade ettiğim gibi 12. gün hakkında bir tahminde bulunmak istiyorsak, bu tahminin en çok 11. gündeki değerden etkileneceğini artık biliyoruz. Buradan yola çıkarak son gözlemlere daha fazla ağırlık verirsek tahmin sonucumuz gerçeğe daha yakın olacaktır.

Moving Average vs. Weighted Average

Bir örnek üzerinden ilerleyelim;

Saatlik reklam izleme sayıları

Elimizde saatlik reklam izleme sayılarına ait veriler olsun ve en sondaki değeri tahmin etmek isteyelim.

Tahmin etmek istediğimiz değeri tablodan silelim ve diğer verilerle devam edelim.

I. Moving Average kullanarak tahmin etmeye çalışalım

Son üç gözlemin ortalamasını alarak ilerlersek;

(123395+103080+95155) / 3 =107210 tahmin sonucuna ulaşırız

Tahmin değeri : 107210

Gerçek değer : 80285

I. Weighted Average kullanarak tahmin etmeye çalışalım

Bu sefer ortalamayı, son üç gözleme yanlarında yazıldığı gibi ağırlıklar vererek hesaplamaya çalışalım;

(123395*0.1) + (103080*0.3) + (95155*0.6) = 100356

Tahmin değeri : 100356

Gerçek değer : 80285

  • Ağırlıklı ortalama ile yapılan tahmin hareketli ortalama ile yapılandan daha iyi sonuç verdi. Bunun sebebi zaman serisi teoremindeki varsayımdır.

Zaman serisi kendisinden bir önceki değerden en çok etkilenir.

  • Eğer bi zaman serisinin trendi ve mevsimselliği yoksa tahmin yaparken kullanılacak en iyi yöntem ağırlıklı ortalamadır.

Bu örnekte son üç gözlemi ele alarak tahmin yapmaya çalıştık.

Peki tahmin ederken elimizdeki tüm gözlemleri ağırlıklandırırak ortalama hesabı yaparksak daha mantıklı olmaz mı?

Smoothing Yöntemleri

Üstel düzeltme yöntemi, verilerdeki son değişim ve sıçramaları dikkate alarak tahminlerin ya da öngörülerin devamlı güncelleştirildiği bir yöntemdir. Veri büyüdükçe, veriye daha az öncelik (“ağırlık”) verilmektedir. Başka bir deyişle daha yeni veriler, daha alakalı olarak görülür ve daha fazla ağırlık verilir.

Yumuşatma parametreleri (genellikle α ile gösterilir) gözlemlerin ağırlıklarını belirlerler.

Üç başlık altında Smoothing Yöntemlerini ele alabiliriz.

I-Basit Üstel Düzeltme Yöntemi (Single Exponential Smoothing-SES)

  • Bir trend veya mevsimsellik olmadan tek değişkenli veriler için zaman serisi tahmin yöntemidir.
  • 0 ve 1 arasında seçilen alpha (α) parametresini kullanır.
  • Weighted average fomülünün genelleştirilmiş halidir.
Single Exponential Smoothing formülü

Kısaca formül der ki; istediğin periyodun tahminini yapmak için bir önceki gerçek değeri ve bir önceki gerçek değere ilişkin tahmin değerini ağırlıklandır ve sonucu hesapla.

Model kendisinden bir önceki değerden öğrenecek (learning), kendisinden bir öncekinin tahmininden ise hatırlayacaktır (remembering) ve buna göre bir tahminde bulunur.

Model hangisine daha çok ağırlık vermeli?

Tahmin yapılırken bir önceki değerin göz önünde bulundurulmasının önemini kavradık (moving average -weighted average) peki bir önceki değere ilişkin tahminin önemi ne ?

Modelin bir önceki değere ilişkin tahmini barındrıması demek gerçek değerlere dayalı olarak modelin şimdiye kadarki öğrendiği her şeyi hatırladığı anlamına gelir.

Single Exponential Smoothing formülü

Yine saatlik reklam izleme sayılarının yer aldığı grafiği ele alalım

Saatlik reklam izleme sayıları grafiği

Bu grafiğe Single Exponential Smoothing yöntemini uygulayalım.

SES yöntemi uygulanmış saatlik reklam izleme sayıları grafiği

Açık mavi olan değerler bizim gerçek değerlerimiz, koyu mavi kısımlar SES formülünde alpha (smoothing factor) değerini 0.3 aldığımız, turuncu kısımlar ise alpha değerini 0.05 olarak aldığımızdaki sonuçlardan elde ettiğimiz görünümlerdir.

alpha (α) değeri 0–1 arasındadır.

Göründüğü üzere alpha 1’e ne kadar yakınsa tahmin sonuçları gerçek değerlere o kadar yakın .

Smoothing factor (α) 1’e yakın olursa Learning’e 0'a yakın olursa Remembering’e ağırlık vermiş olur.

II. Çift Üstel Düzeltme Yöntemi (Double Exponential Smoothing-DES)

  • DES = Level (SES) + Trend
  • Temel yaklaşımı SES ile tamamen aynıdır. Tek fark DES’de tahmin yaparken trendin de dikkate alınmasıdır.
  • Trend içeren ve mevsimsellik içermeyen tek değişkenli zaman serileri için uygundur.
  • α(alpha) ve β (beta) olmak üzere iki adet parametre kullanır.
  • α parametresi Level’a ilişkin geçmiş değer ve tahmin edilen değeri ne kadar ağırlıklandıracağımızla ilgilidir.
  • β ise trende ilişkin geçmiş trend bilgilerini nasıl ağırlıklandıracağımızı ifade etmektedir.
Double Exponential Smoothing formülü
DES tahmin formülü

Saatlik reklam izleme sayılarını ifade eden grafiğe DES uygularsak;

DES yöntemi uygulanmış saatlik reklam izleme sayıları grafiği

Alpha ve beta değerlerini grafiğin sol alt kısmından takip ederek gerçek değerlere hangi hiperparametre çiftinin daha çok yaklaştığını bulmaya çalışalım.

Kırmızı grafiğe odaklanırsak tahmine dayalı en verimsiz grafik olduğunu söyleyebiliriz. Gerçek değerlerle alakası yok. Kırmızı grafiği oluşturan alpha değeri 0.02 beta değeri 0.02 olarak alınmış.

Alpha geçmiş değerlere değil de, geçmiş tahmin edilen (Remembering’e) odaklanmış, beta da trendi yakalayamamış bu yüzden başarısız olmuştur.

Yeşil grafiğe bakarsak; alpha değeri 0.02 beta değeri 0.9 olarak alınmış. Bu sefer trend yakalanmış gibi gözüküyor. Fakat kırmızı grafikte olduğu gibi alpha değeri yakın geçmiş (Learning) yerine uzak geçmiş olan Remembering’e odaklandığı için tahmin konusunda başarılı olamamıştır.

Turuncu ve mavi grafiğe bakarsak; turuncu grafikte alpha 0.9, beta 0.02 alınmış. Mavi garfikte ise alpha 0.9, beta 0.9 olarak alınmış. İki grafikte de alpha değeri yakın gerçek değerlere odaklanmış (Learning). Başarılı gibi gözüküyor.

Fakat işaretlediğim noktaya odaklanacak olursak; mavi grafikte beta(0.9) trendde yakın gerçek değerlere odaklandığı için ve yakın gerçek değerler yüksek olduğundan, bu yüksekliğin devam edeceğini varsayarak grafik yukarı doğru seyretmeye devam etmiştir.

Turuncu grafiğe baktığımızda, beta (0.2) trendde geçmiş tahminlere odaklandığı için grafiği gerçek değerleri barındıran mor grafik gibi aşağı doğru bükmüş ve gerçek değere en çok yaklaşan tahmin olmayı başarmıştır.

III. Winters Üstel Düzleştirme Yöntemi (Triple Exponential Smoothing-TES)

  • Level (SES) + Trend + Mevsimsellik
  • Triple exponential smoothing en gelişmiş smoothing yöntemidir.
  • Dinamik olarak level, trend ve mevsimsellik etkilerini değerlendirerek tahmin yapmaktadır.
  • Trend ve/veya mevsimsellik içeren tek değişkenli serilerde kullanılabilir.
Triple Exponential Smoothing formülü

Bir sonraki yazımda görüşmek üzere…

Kaynaklar :

https://www.veribilimiokulu.com/

https://machinelearningmastery.com/

https://arete.com.tr/

http://www.biosym.uzh.ch/

Gazi University - Computer Engineering