Aynı Anda Birçok Kez Serisi Nasıl Kullanılır?


15

25 dönem boyunca birkaç ürünün (1200 ürün) talebini içeren bir veri setim var ve her bir ürünün gelecek dönem için talebini tahmin etmem gerekiyor. İlk başta, ARIMA kullanmak ve her ürün için bir model eğitmek istedim, ancak ürün sayısı ve (p, d, q) parametrelerinin ayarlanması nedeniyle çok zaman alıcı ve pratik değil. Önceki taleplerin bağımsız değişkenler olduğu bir regresyon kullanılması önerilir mi (Otoregresif)?

1200 ürünün tümünün talep tahmini için tek bir model yetiştirmek için herhangi bir yöntem olup olmadığını öğrenebilir miyim? Python kullandığım için Python'da herhangi bir kütüphane önerebilirseniz minnettar olurum.


3
Farkında olduğum yüksek boyutlu zaman serisi analizi için en gelişmiş paket bigtimeR'de. Belki de R'yi Python'dan çağırabilirsiniz.
Richard Hardy

Yanıtlar:


11

Genellikle birden fazla zaman serisine sahip olduğunuzda, hepsini aynı anda modellemek için bir çeşit vektör tabanlı model kullanırsınız. ARIMA modelinin bu amaç için doğal uzantısı VARIMA (Vector ARIMA) modelidir. Aslında sahip olduğunuz size zaman serisi değişkenlerin her çifti için ücretsiz parametrelere başa mümkün olmayacaktır çünkü modelinde çapraz korelasyon şartlarda bazı ağır parametrik kısıtlamaları belirtmek gerekir o zaman serisi araçları.1200

Düşük dereceli bazı basit vektör tabanlı modellerle (örneğin, VAR, VMA, VARMA) ve çapraz korelasyon için bazı basit parametre kısıtlamalarıyla başlamanızı öneririm. En az bir gecikme derecesine çapraz korelasyon içeren makul bir model bulabilir misiniz ve sonra oradan gidin. Bu alıştırma, vektör tabanlı zaman serisi modellerinin okunmasını gerektirecektir. MTSPaket ve bigtimepacakage içinde Raynı zamanda bu paketleri ile tanıtarak kendini değerinde olacağını bu yüzden, çok değişkenli zaman serisi ile başa çıkmak için bazı yeteneklere sahiptir.


Farkında olduğum yüksek boyutlu zaman serisi analizi için en gelişmiş paket bigtimeR'de. Bildiğim kadarıyla MTS, gerçek bir çalışma aracından ziyade ders kitabı örneklerinin bir gösterisidir. Buradaki bazı çok değişkenli örnekler hesaplama yükünü boğmadan önce sadece 3 boyutlu serileri işleyebilir.
Richard Hardy

@Richard Hardy: Teşekkürler --- Cevabımı buna dahil etmek için düzenledim.
Ben - Monica

1
Bunun için iyi bir yol, bir Bayesian VAR'ı veya daha özel olarak büyük Bayesian VAR modelini düşünmek olacaktır.
Graeme Walsh

7

Ben'in de belirttiği gibi, çoklu zaman serileri için ders kitabı yöntemleri VAR ve VARIMA modelleridir. Yine de pratikte, bunları sıklıkla talep tahmini bağlamında kullandıklarını görmedim.

Ekibimin şu anda kullandığı da dahil olmak üzere çok daha yaygın olanı hiyerarşik öngörmedir ( ayrıca buraya bakın ). Hiyerarşik tahmin, benzer zaman serilerine sahip gruplarımız olduğunda kullanılır: Benzer veya ilgili ürünlerden oluşan grupların satış geçmişi, coğrafi bölgeye göre gruplandırılmış şehirler için turistik veriler vb.

Buradaki fikir, farklı ürünleriniz için hiyerarşik bir listeye sahip olmak ve ardından hem temel düzeyde (yani her bir zaman serisi için) hem de ürün hiyerarşiniz tarafından tanımlanan toplam düzeylerde tahmin yapmaktır (Ekli grafiğe bakın). Daha sonra, iş hedeflerine ve istenen öngörme hedeflerine bağlı olarak tahminleri farklı düzeylerde (Yukarıdan Aşağıya, Aşağıdan Yukarıya, Optimum Mutabakatı vb. Kullanarak) uzlaştırabilirsiniz. Bu durumda büyük bir çok değişkenli modele uymayacağınızı, ancak hiyerarşinizdeki farklı düğümlerde birden çok model takmayacağınızı ve daha sonra seçtiğiniz mutabakat yöntemini kullanarak mutabık kılınacağını unutmayın.

resim açıklamasını buraya girin

Bu yaklaşımın avantajı, benzer zaman serilerini birlikte gruplandırarak, tek bir zaman serisiyle tespit edilmesi zor olabilecek kalıpları (mevsimsel varyasyonlar) bulmak için aralarındaki korelasyonlardan ve benzerliklerden yararlanabilmenizdir. Manuel olarak ayarlanması imkansız olan çok sayıda tahmin oluşturacağınızdan, zaman serisi öngörme prosedürünüzü otomatikleştirmeniz gerekir, ancak bu çok zor değildir - ayrıntılar için buraya bakın .

Daha gelişmiş, ancak ruhsal açıdan benzer bir yaklaşım, Amazon ve Uber tarafından, büyük bir RNN / LSTM Sinir Ağının tüm zaman serilerinde bir arada eğitildiği bir yöntemdir. Ruhsal açıdan hiyerarşik öngörüye benzer, çünkü aynı zamanda ilgili zaman serileri arasındaki benzerlik ve korelasyonlardan kalıplar öğrenmeye çalışır. Hiyerarşik öngörmeden farklıdır, çünkü bu ilişkinin öngörmeden önce önceden belirlenmiş ve sabitlenmesinin aksine, zaman serisinin kendisi arasındaki ilişkileri öğrenmeye çalışır. Bu durumda, yalnızca tek bir modeli ayarladığınız için otomatik tahmin oluşturma ile uğraşmak zorunda değilsiniz, ancak model çok karmaşık bir model olduğundan, ayarlama prosedürü artık basit bir AIC / BIC minimizasyon görevi değildir ve ihtiyacınız vardır. daha gelişmiş hiper parametre ayarlama prosedürlerine bakmak için,

Bkz bu yanıtı (ve yorumlarım) ek ayrıntılar için.

Python paketleri için PyAF mevcuttur, ancak çok popüler değildir. Çoğu insan HTS paketini R'de kullanır, bunun için çok daha fazla topluluk desteği vardır. LSTM tabanlı yaklaşımlar için, ödemeniz gereken bir hizmetin parçası olan Amazon'un DeepAR ve MQRNN modelleri vardır. Birkaç kişi de Keras kullanarak talep tahmini için LSTM uyguladı, bunları bakabilirsiniz.


1
Bir kenara. AUTOBOX, SARMAX modellerini kullanarak ÇOCUKLARIN tahminine yardımcı olmak için GROUP toplamlarını olası bir sürüş serisi olarak kullanırken bahsettiğiniz hiyerarşik modellemeyi uygular. Çocuk tahminlerindeki belirsizlik aynı zamanda ebeveynte belirsizliğin kümülatif bir fonksiyonudur ve her ikisinde de gelecekteki nabız olasılığını dahil eder.
IrishStat

Son zamanlarda Amazon, MxNet çerçevesinden yararlanan GluonTS çerçevesi altında kaynaklı DeepAR algoritmasını açmıştır, ancak bu noktada belgeleri biraz eksik buluyorum. aws.amazon.com/blogs/opensource/…
hardikudeshi

5

Önerilen kütle uydurma paketleri ile ilgili sorun, darbeler, seviye / adım kaymaları, mevsimsel darbeler ve zaman eğilimleri gibi gizli deterministik yapı ile tek başlarına başa çıkamamaları veya https: autobox.com/pdfs/SARMAX.pdf

Ek olarak, hesaplama süresi ciddi bir komplikasyon olabilir. AUTOBOX (geliştirmeye yardımcı olduğum) modelleri arşivleyen çok gelişmiş bir model oluşturma aşamasına ve daha önce geliştirilen modeli yeniden kullanan çok hızlı bir tahmin seçeneğine sahiptir ve tahmin zamanını zorlu model geliştirme süresinin küçük bir kısmına indirgeyerek yeni tahminleri model geliştirildikten ve saklandıktan sonra gözlenen veriler. Bu, Annheuser-Busch'un Fiyat ve Hava Durumu dikkate alınarak 50'den fazla ürün için 600.000 mağaza tahmin projesi için uygulandı.

Modeller, gerektiğinde önceki modellerin yerine geçerek güncellenebilir şekilde güncellenebilir.

Parametrik kısıtlamalara gerek yoktur VEYA VAR ve VARIMA'daki nedensel değişkenlerin eşzamanlı etkisini atlayarak sadece tüm serilerin sadece geçmişine güvenir.

Modellerin tek tek serilere göre ayarlanabilmesi ve optimize edilmesi gerektiği için 1 parametre setine sahip sadece 1 modele gerek yoktur.

Ne yazık ki henüz bir Python çözümü yok ama umut sonsuzdur.


1
Kulağa ilginç geliyor. Sadece küçük bir kelime oyunu: VAR kadar basit bir şeyde bile, her seri kendi denklemini alır, bu nedenle 1 parametre seti ile sadece 1 modele ihtiyaç duyulması bir endişe değildir. Aynı seri için, tahmin kombinasyonları açısından iyi bir fikir olabilecek birkaç model önermediğiniz sürece.
Richard Hardy

"? Tüm 1200 ürünlerinin talep tahmini için tek bir model eğitmek için": nesnel Bütün 1200 zaman serileri" tahmin sabit / küresel parametrelerin 1 set ile bu anlamıyla 1 olarak tip denklemi aldı Belki de bunu tekrar okuyun.
IrishStat

Ya da belki de yanlış anladım.
Richard Hardy

3

1200 ürün probleminizin boyutsallığının ana itici gücüdür. Artık sadece 25 döneminiz var. Bu çok az veri, herhangi bir battaniye korelasyon analizi yapmak için yetersiz. Başka bir deyişle, boyutsallığı azaltmadan tüm ürünlerin eşzamanlı tahminini yapmak için verileriniz yok. Bu, tüm VARMA ve diğer güzel teorik modelleri hemen hemen ortadan kaldırır. Bu modellerin katsayılarıyla uğraşmak imkansız, tahmin etmek için çok fazla var.

Basit bir korelasyon analizini düşünün. Kovaryans / korelasyon matrisinde (1200x1200 + 1200) / 2 hücreye ihtiyacınız olacaktır. Yalnızca 25 veri noktanız var. Matris muazzam dereceye kadar verimsiz olacaktır. Ne yapacaksın? Genel olarak iki basit yaklaşımınız vardır: ayrı tahminler ve faktör modeli.

İlk yaklaşım açıktır: her ürünü bağımsız olarak çalıştırırsınız. Varyasyon, bunları "erkeklerin kapanması" gibi sektör gibi bazı özelliklere göre gruplandırmaktır.

di=jFjβji+eiFj

Ekzojen bir faktörse, bu faktörlerin serisini ayrı ayrı gerileyerek beta elde etmeniz gerekir. PCA için, sağlam bir PCA yapabilir ve betas olan ağırlıkları ile ilk birkaç faktörü elde edebilirsiniz.

F^j


Çok kısa zaman serileri için yaklaşık 25 dönem yaptığınızı anlıyorum, ama aylık değerler ise ne olacak? O zaman OP iki mevsimsel veri yakalamak için ya da en azından basit üstel yumuşatma kullanmak için yeterli iki yıllık veri var, değil mi?
Skander H.

@SkanderH., Bir seriyi (yani her seri kendi başına) veya toplamı çalıştırmak için 25 puan yeterli olabilir. Demek istediğim, bunu bir sistem olarak çalıştırmak yeterli değil.
Aksakal

Veya ekzojen faktörler olabilir, örneğin PCA analizi ile elde ettiğiniz faktörler. Belki endojen ?
Richard Hardy

1

Bulut tabanlı çözümlerle ilgilenip ilgilenmediğinizden emin değilim, ancak Amazon, burada görüldüğü gibi AWS SageMaker aracılığıyla "DeepAR" adını verdikleri bir algoritmayı kullanılabilir hale getiriyor .

Bu algoritma özellikle statik ve dinamik özellikler dahil olmak üzere tahminler oluşturmak için çoklu giriş zamanı serilerinden öğrenmeyi amaçlamaktadır; yukarıdaki bağlantılı sayfadan bu alıntıda görüldüğü gibi:

DeepAR algoritması için eğitim girdisi, aynı işlem veya benzer işlemlerle oluşturulan bir veya tercihen daha fazla hedef zaman serisidir. Bu girdi veri kümesine dayanarak, algoritma bu işlemin / işlemlerin yaklaşık bir değerini öğrenen bir modeli eğitir ve bunu hedef zaman serisinin nasıl geliştiğini tahmin etmek için kullanır. Her hedef zaman serisi isteğe bağlı olarak kedi alanı tarafından sağlanan statik (zamandan bağımsız) kategorik özellikler vektörü ve dynamic_feat alanı tarafından sağlanan dinamik (zamana bağlı) zaman serisi vektörü ile ilişkilendirilebilir.

Ne yazık ki, anlayabildiğim kadarıyla, bu algoritmayı çevrimdışı / kendi kendine barındırılan kullanım için kullanılabilir yapmıyorlar.

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.