? - Akademi Algo

Python ile Zaman Serisi Analizi 2

18.09.2018 20:54:02

Geçmiş verilere bakarak gelecek hakkında tahminler yapmak finans ve iş analitiğinin en önemli konularındandır. Önümüzdeki ay için x hissesinin değerini tahmin etmek, y semtinde ne kadar elektrik-su tüketileceğini veya depoda ne kadar z ürününden bulunması gerektiğini kestirebilmek ilk akla gelen tahminleme konularındandır.

ARIMA, exponential smoothing ve yapay sinir ağları gibi bir çok istatistiksel ve makine öğrenmesi modeli mevcut olsa da bunlarla başarılı modeller kurabilmek ciddi deneyim ve bilgi gerektiren konulardır. Bu yazıda, Facebook tarafından geliştirilmiş Python ve R dillerinde kullanılabilen açık kaynak kodlu Prophet tahminleme modelinden bahsedeceğim.

İyi tahmin modelleri kurmak uzman olan olmayan herkesin hakkı diyerek yola çıkan Facebook araştırma ekibi Prophet’i Python ve R dillerindeki forecast paketlerinin yerine kullanmalarının arkasındaki 2 motivasyonu şöyle açıklıyor:

1. Prophet ile mantıklı ve doğruluk oranı yüksek tahminler yapmak oldukça kolay. ARIMA, exponential smoothing gibi modelleri kullanırken yanlış seçilen bir parametre çok kötü sonuçlar alınmasına sebep olabilir ve deneyimli analistler bile zaman zaman parametre seçenekleri arasında yanlış olanları seçiyor.

2. Prophet ile yapılan tahminler uzman olmayan insanlar tarafından kolayca özelleştirelebilir. Örneğin tahminleme modelinde bayram ve diğer özel günlerin tarihleri önceden belirlenebilir.

Sklearn model API’ye alışkın olanlar için Prophet’in adımları oldukça benzer sırasıyla fit ve predict metotlarını kullanıyoruz. Anaconda kullanıcıları aşağıdaki gibi paketi indirebilirler.

conda install -c conda-forge fbprophet

Bu çalışmada Ocak 2013-Mayıs 2018 tarihleri arasında Türkiye’deki aylık elektrik tüketimini analiz edip önümüzdeki 2 sene hakkında tahminde bulunmaya çalışacağız.

 

Prophet modeli için girdi olarak ‘ds’: tarih ve ‘y’: tahmin etmek istediğimiz nümerik değeri girmemiz gerekiyor. Sonrasında sklearn modellerinden alışkın olduğumuz fit() ve predict() fonksiyonlarını kullanıyoruz.

Model ayrıca veri setindeki değişim (change point) zamanlarını bize kolayca veriyor. Tarihleri ve veri setindeki yerlerine bakalım şimdi de.

Girişte bahsettiğim gibi Prophet modelinin en önemli özelliklerinden biri kolayca özelleştirilebiliyor olması. 2015 Kurban bayramının olduğu Eylül ayını ve 2016 Ramazan bayramının olduğu Temmuz aylarını sezonsal etkileri anlaması için modele ekliyorum ve bu yeni bilgiyle yeniden tahmin yapıyorum.

Tahminde ufak da olsa değişimler olduğu gözüküyor. Şimdi de tahmin sırasında modelin hesaba kattığı genel trendi, özel günlerdeki ve yıl içerisindeki genel sezonsal etkilere bakalım.

Günlük veri kullandığımızda aşağıdaki tabloda haftanın günleri içerisindeki genel etkileri de görebiliriz.

Çalışmadaki veri setine ve kodlara şuradan ulaşabilirsiniz.

Sorunuz olursa bana Linkedin veya Twitter hesaplarından yazabilirsiniz.


Etiketler:
python
Akademi Algo

Akademi Algo bir RiskTürk markasıdır

Risk Türk

İletişim

Adres Risk Yazılım Teknolojileri Ltd. Ş.T.İ. İstanbul Teknik Üniversitesi Ayazağa Kampüsü ARI-1 Teknopark Binası 13-14
Maslak - İstanbul - TURKEY

;
IWC Aquatimer Replica IWC Big Pilot Replica IWC Ingenieur Replica IWC Portofino Replica IWC Da Vinci Replica Replica Watches