ARIMA ve LSTM kullanarak zaman serisi tahmini


64

Uğraştığım sorun zaman serisi değerlerini tahmin etmektir. Bir seferde bir zaman serisine bakıyorum ve örneğin girdi verilerinin% 15'ine dayanarak gelecekteki değerlerini tahmin etmek istiyorum. Şimdiye kadar iki modelle karşılaştım:

  • LSTM (uzun kısa süreli hafıza; tekrarlayan sinir ağları sınıfı)
  • ARİMA

İkisini de denedim ve bunlarla ilgili bazı makaleler okudum. Şimdi ikisini nasıl kıyaslayacağımı daha iyi anlamaya çalışıyorum. Şimdiye kadar ne buldum:

  1. Büyük miktarda veri ile uğraşıyorsak ve yeterli eğitim verisi mevcutsa, LSTM daha iyi çalışır, ARIMA daha küçük veri setleri için daha iyidir (bu doğru mu?)
  2. ARIMA (p,q,d), verilere göre hesaplanması gereken bir dizi parametreye ihtiyaç duyarken, LSTM bu gibi parametrelerin ayarlanmasını gerektirmez. Ancak, LSTM için ayarlamamız gereken bazı hiperparametreler var.
  3. EDIT: Buradaki harika bir makaleyi okurken dikkatimi çeken ikisi arasındaki önemli farklardan biri, ARIMA'nın sadece durağan zaman serilerinde (mevsimsellik, trend vb. Olmadığı durumlarda) iyi bir performans sergileyebilmesi ve ARIMA kullanmak istiyorum

Yukarıda belirtilen özelliklerden başka, en iyi modeli seçmemde bana yardımcı olabilecek başka noktalar veya gerçekleri bulamadım. Birisi makaleleri, makaleleri veya başka şeyleri bulmama yardım edebilirse gerçekten minnettar olurum (şimdiye kadar hiç şansım yoktu, burada ve oradaki bazı genel görüşler ve deneylere dayanan hiçbir şey yok.)

Başlangıçta akış verileriyle uğraştığımdan bahsetmeliyim, ancak şu an için maksimum 20k veri noktası boyutunda 50 veri kümesi içeren NAB veri kümeleri kullanıyorum .



Lütfen LSTM kodunu paylaşır mısınız? VE TEŞEKKÜRLER.
YARDIM

Yanıtlar:


25

1. ifade doğrudur, 2. ifade doğrudur, fakat özen gerektirir ve 3. ifade, mevsimsel ARIMA için yanlıştır:

Aşağıdakiler sizi doğru yöne götürebilir, ancak umarım LSTM sahasında daha derinlikte bir kaç cevap daha alırsınız.

Her iki algoritmayı da denediğinizi ve hangisinin daha iyi olduğunu bulmaya çalıştığınızdan ve bu durumun, veri bilimi sürecinde daha fazla sorun yaşayabileceğinizi ve modellerin spesifikasyonlarına göre çapraz onaylama yapabileceğimi düşünmenize neden olduğunu söylüyorsunuz.

Genel olarak zaman serileri:

Genel olarak, zaman serilerinin tahmin edilmesi zor. Tahmin edilmesi kolay olsaydı, tüm veri bilimcileri varlıkların tümünün değerini doğru tahmin ederek varlıklı olurdu. Gerçek şu ki, riskten korunma fonları ortalama olarak piyasadan daha iyi performans göstermiyor ve bu zaman serisi tahminleri genellikle çok zayıf ve sadece çok kısa süreler için geçerli. Başlıca problemler, çok fazla gürültü olduğu, birçok gizli etkisinin olduğu, modellerin aşırı basit olması, etkileyicilerin düşündüğümüz gibi davranmaması, doğrusallık ile doğrusal olmayanlık arasındaki etkileşimin ince ve kafa karıştırıcı olması ... adin sonsuzdur.

ARİMA

Değerlendirmenizde ARIMA'nın öngörülmesi için durağan zaman serileri gerektirmesi hatalı. Mevsimsel olmayan ARIMA, düzgünleştirme, durağanlık ve ARIMA (p, d, q) tahminlerini denetlemeye yardımcı olmak için üç girdi değerine sahiptir , burada:

  • p otoregressive terimlerin sayısıdır,
  • d durağanlık için ihtiyaç duyulan mevsimsel olmayan farkların sayısıdır ve
  • q, öngörü denklemindeki gecikmeli tahmin hatalarının sayısıdır.

Buna karşılık, mevsimsel ARIMA'nın altı giriş değeri vardır; ARIMA (p, d, q, P, D, Q), burada:

  • P, mevsimsel otoregresif terimlerin sayısıdır,
  • D mevsimsel farklılıkların sayısıdır ve
  • Q, mevsimsel hareketli ortalama terimlerinin sayısıdır.

Yukarıdaki nitelendirici açıklamalara tabi olarak, yumuşatma, baharatsızlaştırma, eğilimi azaltma, gürültü azaltma ve tahminde bulunan karmaşıklıklara dair bir fikir edinmek için mevsimsel ARIMA ile oynamayı öneririm.

LSTM

Buraya fazla bir şeyler eklemek için LSTM hakkında yeterince bilgim yok. Birisi veri öğrenme egzersizine derin öğrenme ile başladığında kırmızı bayrakların yükselme eğiliminde olduğunu ekleyeceğim. ARIMA'yı kullanabildiğiniz kadar öğrenmenizi ve ardından LSTM'yi öğrenmenize yardımcı olması için ARIMA uzmanlığınızın bazılarını uygulamanızı öneririm. Yapay sinir ağları çok güçlü bir araç olabilir, ancak bunlar:

  • çalıştırmak için uzun zaman alabilir
  • genellikle diğer modellerden daha fazla eğitim almak için daha fazla veri gerektirir ve
  • ayarlamak için çok sayıda giriş parametresi var.

Çapraz doğrulama ve karşılaştırma modelleri:

n

Umarım bu yardımcı olur ve iyi şanslar!


Yanıtınız için teşekkür ederim. ARIMA hakkındaki notlarınız yardımcı oldu ve ben onları aklımızda tutmaya çalışıyorum. Çapraz doğrulama ve iki modelin karşılaştırılması durumunda, mevcut veri setleri için, çeşitli parametrelerin kullanılmasıyla hangi algoritmanın daha iyi performans gösterdiğini söyleyebilirim. Buradaki sorun, bu veri kümelerinden olmayanların gerçek verileri (akış verilerini) temsil edebilmesi ve bu yüzden veri bilimi ve makine öğrenimi alanındaki başkalarına düşüncelerini ve deneyimlerini paylaşmalarını sormanın daha iyi olacağını düşündüm.
ahajib

Ancak akış verileriniz varsa, akışı kaydederek bunu test verilerinize dönüştürebilirsiniz. Zaman serisinin güzel tarafı, her zaman herhangi bir veri setinden ayarlanmış bir test verisi oluşturabilmenizdir. Sadece bazı verileri kaydetmeniz ve ardından zamanınızı geri almanız gerekir.
AN6U5

Bunun biraz yaşlı olduğunu biliyorum ama burada aynı fikirde değilim. D, D parametreleri @ AN6U5'in dediği gibi farklılıklar içindir, ancak bu farklılıkları ilk başta yapmanın nedeni, sorundaki durağanlığı zorlamaktır. Aslında ARIMA modelinin bir yorumu, zaman serilerindeki durağanlığı zorlamak için sadece doğrusal regresyondur.
Ryan

6

@ AN6U5'in yanıtına ekleniyor.

Tamamen teorik açıdan bakıldığında, bu makale RNN'nin evrensel yönlendiriciler olduğunu göstermiştir. Makaleyi ayrıntılı olarak okumadım, bu yüzden ispatın LSTM'ye de uygulanıp uygulanamayacağını bilmiyorum, ama sanıyorum. Genel olarak RNN ​​ile ilgili en büyük sorun (LSTM dahil), gradyan keşfi ve gradyan yok etme problemi nedeniyle eğitilmeleri zor olmalarıdır. LSTM için pratik limit, standart gradyan inişi ve rastgele başlatma ile yaklaşık 200 ~ adım gibi görünmektedir. Ve belirtildiği gibi, genel olarak herhangi bir derin öğrenme modelinin iyi çalışabilmesi için çok fazla veriye ve ayar yığınlarına ihtiyacınız vardır.

ARIMA modeli daha kısıtlıdır. Temel sisteminiz çok karmaşıksa, iyi bir uyum elde etmek imkansızdır. Fakat diğer yandan, eğer altta yatan model yeterince basitse, derin öğrenme yaklaşımından çok daha etkilidir.


2

ARIMA modelleri doğrusaldır ve LSTM modelleri doğrusal değildir. İstatistikçilerin çalışmış olduğu diğer bazı parametrik doğrusal olmayan zaman serisi modelleri Eşik Otoregressif Modeller (TAR) ve Pürüzsüz Geçişli Otoregressif Modellerdir (STAR). R paketi tsDyn bu modelleri uygular.

STAR modellerinin LSTM'ye karşı nasıl olduğunu merak ediyorum.


2

Ben ve diğerleriyle aynı sonuca vardım, geleneksel tahminler muhtemelen sayısal değerler için zaman zaman en uygulanabilir ve belki de güvenilirdir. Sayısal değerler için zaman serilerinin derin öğrenmeye karıştığı, derin öğrenmenin (şu anda) görüntü tanıma, görüntü, ses, temiz metin veya anormallik tespiti için örüntü tanımadaki modern zorluklara uygulandığı tartışmalarda derinlemesine bir miktar kanama vardır. Sinyal işleme kullanım durumunuza muhtemelen uygulanabilecek günlük işlemsel veriler için VAR / VECM ile sık sık iyi sonuçlar alıyorum.


1

Aşırı bir durum olarak, Forex (Döviz Kuru) tahmini üzerinde çalışma şansım oldu ve LSTM, pencereli-MLP ve ARIMA performanslarını yoğun bir şekilde karşılaştırdım. Birçok makalenin dediği gibi, Forex zaman serileri rastgele yürüyüş dizisine yakındır (tamamen durağan değildir). Bu algoritmaların hiçbiri ertesi günün spot oranını tahmin edemez. Örneğin, (veya çok az) bir değişiklik yoksa, o anki değeri koruyacak ve uygun görünecektir. Ancak, yarının spot hızında ani (önemli) bir değişiklik olursa, o zaman her zaman tahmin etmekte başarısız olur. Sorun şu ki, eğitim verilerinden öğrenilecek hiçbir şey yok (örneğin, son 10 yılın spot faiz oranının geçmişi), yeterince büyük olsun veya olmasın, çünkü tamamen rastgele (belki de takas bayilerinin duyguları nedeniyle ...) .

Aslında, sadece '1' gecikmeli LSTM veya (1,0,0) ile ARIMA en iyi performansı gösterecektir, çünkü 1'den fazla zaman gecikmeli veri depolamak hiç yardımcı olmamaktadır. Bu tür zaman serileri için, izleme performansı açısından, 1) ARIMA, 2) LSTM, 3) MLP diyorum. Son yorum ... Ek özellikler olarak makro / mikro ekonomik parametrelere sahip MLP (örneğin, GSYİH farkı, tahvil faiz oranları, ham petrol fiyatı, dolar endeksi vb.) İşe yaramadı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.