Sayfalar

Cumartesi, Nisan 24, 2010

YSA ile Basit bir Zaman Serisi Analizi

Öncelikle tanım ile başlıyalım. " Zaman değişkeniyle ilişlkili bir değişken hakkında, elde edilen gözlem değerlerini zamana göre sıralanmış olarak gösteren serilere, “zaman serisi” denir." detaylı istatistiki açıklamalar için şuraya müracaat edin.

Bizim YSA ile analizinden kast ettiğimiz için  Zaman serisi üzerinde Yapay Sinir Ağları ile ileri ye doğru tahmin yürütmektir. Bunun için Öncelikle Zaman serisini dönüşrümemiz gerekiyor.  Dönüşüm için kullanacağımız varsayımımız da şöyle

"Zaman serisinde bir değer kendinden önce gelen değerlerle ilişkili ve dolayısıyla onlarla tahmin edilebilir"

Mesela Yarınki hava sıcaklığı geçen günlerdeki hava sıcaklıklarıyla İlişkilidir. Bu durumda YSA dizaynı için çıkış değişken saymızı belli zaman serimizin bir sonraki değeri. Giriş değerlerimizde önceki veriler.  Örneğimizde dönersek yarınki Hava sıcaklığı bugünki ile ilişkilidir. Bugünkü de dünküyle, dünkü önceki gündeki ilişkili olduğuna göre onlarda Yarınki hava sıcaklığıyla nispeten etkileri azalarakda olsa ilişkilidir. Burada bir seçim yapmamız lazım Giriş değerleri olarak kullanacağımız verileri ne kadar geriye götüreceğiz.  Onu seçince artık giriş değişken sayımızda belirlenmiş olur.
Mesela bunu 4 seçersek şöyel bir ilişki kurmuş oluruz



Bundan sonrası elimizdeki verileri bu ilişkiye göre hazırlayıp, Bir YSA dizayn edip eğitmek kalıyor. FannTool'un DataProcessing kısmıyla her satıra bir değer gelecek şekilde hazırladığınız verileri. yukarda bahsettiğimiz şekle kolayca sokabilirsiniz.

Basit bir örnek yaparsak, Şöyle bir Zaman Serimiz olsun








Bu verileri,  Çıkışı 1 girişini 9 olan bir YSA ile Modelleyelim. Eğtim aşamasından sonra. Test edelim ve Gerçek sonuçlarla YSA tahminlerinin uyuşmasını kontrol edelim










Grafikdende  göreceğiniz gibi YSA gayet de uygun tahminler vermiş. Peki Aynı YSA'yı kullanarak ileriye doğru tahmin yürütmeye devam edersek ne olur. Yani yarınki değeri YSA ile tahmin edip. sonra bu tahmini giriş gibi kullanıp ertesi günkü değeri hesaplasak

( T1 , T2 , T3 , T4) -> T5
( T2 , T3 , T4, T5 ) -> T6
( T3 , T4 , T5, T6 ) -> T7
...

Hemen FannToolu'muzun  "Run as TS"*  kısmını açıp kaç kere ileriye doğru çalıştıracağını belirtip, sonuçları  alıyoruz. Ve Grafiğimize tekrar bakıyoruz








Hiçde iç açıcı bir bir grafik değil.  Aslında metodumuzun pek çok eksiliği var. Fakat müekemmel diyebileceğimiz bir sistem bile kursak, tahminlerimizdeki hata payı ileriye doğru yayılıyor. Daha detaylı bilgi için Kelebek etkisi ve Kaos Teorisi  konularına bakabilirsiniz. Yok kim okuyacak onu ben filmini seyredeyim diyorsanız, boşuna Kelebek etkisi filimlerine bakmayın. Esas hala izlememişseniz Pi Filmini ** izleyin


Not :
*  Boşuna elinizdeki programda aramayın yakın zaman da yayınlamayı umuduğum versiyonda olacak İnşallah
**  Filminden bir parça
Restate my assumptions.
-One: Mathematics is the language of nature.
-Two: Everything around us can be represented and understood through numbers.
-Three: If you graph the numbers of any system, patterns emerge. Therefore, there are patterns everywhere in nature.
-Evidence: The cycling of disease epidemics,  the wax and wane of caribou populations, sun spot cycles, the rise and fall of the Nile.
So, what about the stock market? The universe of numbers that represents the global economy. Millions of hands at work, billions of minds. A vast network, screaming with life. An organism. A natural organism.
-My hypothesis: Within the stock market,|there is a pattern as well... Right in front of me, hiding behind the numbers. Always has been.

6 yorum:

Ahmet B dedi ki...

Hocam super olmus elinize saglik. TS li releasei de bekliyoruz merakla.

Unknown dedi ki...

Hocam ne yaptınız :)
Çok güzel bir çalışma olmuş. Ellerinize sağlık. Automated Forcastten bahsetmiştiniz. Çok yerinde bir geliştirme olmuş.

Aslında zamanlamanız çok iyi. Tamda benim bu projeme denk gelmiş olması. Ben de projeye başlayınca geri dönüşlerimi sizinle paylaşacağım.

İsmail dedi ki...

Yaptığınız matematiksel modelleme 4. dereceden Markov zincirine çok benziyor. Acaba YSA ile modellemenin bu şekilde n. dereceden bir Markov zinciri ile modellemeden farkı nedir? Markov modelleri için sadece iyi çözümleme (analysis) değil, iyi üretme (generation) de yaptıkları söylenir. Onun üreteceği sonuç daha iyi olabilir.

birol kuyumcu dedi ki...

Malesef Markov zincirleri hakkında yeterli bilgiye sahip değilim. doğrusuda zaten pratik uygulamayla ortaya çıkabilecek bir konu.
filanca zaman serisiyle yapılan çalışmakda bilmem kaçıncı dereceden Markov zincirinin performansı şu aynı seri için fişmekanca yapıdaki YSA nın performansıda bu gibi
herhalde iyi de bir makale olur ...

YSA nın üreteceği tahminler üzerine bir çalışmada yapmak istiyoruz ama bakalım ne zaman ve ne şekilde kısmet olur...

Adsız dedi ki...



Tahmin yaparken T-5, T-4, T-3, T-2, T-1 değerlerinden T yi tahmin ettikten sonra eğer T+1 in tahmini yapılmak isteniyorsa T kullanılarak tahmin yapılamaz mı? Zaten T anındaki gerçekleşen değerde elimizde olacak. T-1 anından sonraki iki günü direk tahmin etmek istiyorsak da T-5, T-4, T-3, T-2 kullanılarak direk T tahmini yapılırsa yani "2 lead time prediction" daha tutarlı sonuçlarla karşılaşılmaz mı? Ayrıca sürekli olarak ileriye dönük forecast yapmak istiyorsak en basit yol foruier serisi uydurmak tahminleri yakınsatmamıza yardımcı olmaz mı?

Not: Tüm yazılarınıza göz gezdirmedim sadece bu başlığı görünce sormak istedim. İyi çalışmalar kolay gelsin.

birol kuyumcu dedi ki...

Merhaba Adsız! ...

İleriye doğru tahmin önceki tahminleri kullandığından hatanın yayılımı oluyor hata yükseliyor

Direk ileri doğru olan gün için sistem eğitilemezmi diyorsun ?
Muhtemelen olmaz çünkü arada pas geçtiğimiz değerlerin etkisi ilerki zamandaki değere daha büyüktür.

foruier serisi çok yavan kalır. bakınız niçin wavelet ler var ?

Bütün yazıları okuyun adınızla beraber iletişime geçin...
iletişim bilgilerine hakkında bölümünden ulaşabilirsiniz