Zaman serisi tahminini otomatikleştirmek mümkün müdür?


17

Herhangi bir zaman serisini analiz edebilecek ve analiz edilen zaman serisi verileri için en iyi geleneksel / istatistiki tahmin yöntemini (ve parametrelerini) seçebilecek bir algoritma oluşturmak istiyorum.

Böyle bir şey yapmak mümkün mü? Cevabınız evet ise, bana bu konuya nasıl yaklaşılacağı konusunda bazı ipuçları verebilir misiniz?


3
Hayır, bu makul bir şekilde gerçekleştirilemez. Sıklıkla, iki makul modeli ayırt etmek için yeterli veri yoktur, mümkün olan tüm modelleri dikkate almayın. En iyi modelin elde edilmesi, fiziğin mutlak terimlerle bilinmesini gerektirecektir ve sıklıkla modelleme varsayımları bile bilinmemektedir ve / veya test edilemez / test edilemezdir.
Carl

3
Hayır. Hangi modelin en iyi olduğunu belirlemenin bir yolu yoktur. Python bu tartışmada ilgili değildir. Bununla birlikte, iyi sonuçlarla girişimler vardır. Örneğin github.com/facebook/prophet projesi. Ayrıca Python bağlaması vardır.
Çağdaş Özgenç

3
Açık bırakmak için oy kullanıyorum çünkü bunun mantıklı bir soru olduğunu düşünüyorum - cevap "hayır" olsa bile. Python'u başlıktan kaldırmanızı öneririm, çünkü ilgili değil veya özellikle bu konu ile ilgili.
mkt - Monica

1
Önerildiği gibi başlıktan python kaldırdım. Cevaplarınız için teşekkür ederim.
İstatistiklerNewbie123

2
Bkz. "Ücretsiz öğle yemeği yok" teoremi.
AdamO

Yanıtlar:


19

İlk olarak, IrishStat tarafından özetlenen yaklaşımın, herhangi bir genel model setine değil, ARIMA modellerine özgü olduğunu belirtmeniz gerekir.

"Zaman serisi tahminini otomatikleştirmek mümkün mü?"

Evet öyle. Talep tahmini alanımda, çoğu ticari tahmin paketi bunu yapıyor. Birçok açık kaynak paketi de bunu yapar, en önemlisi, R'deki açık kaynaklı Tahmin paketinden Rob Hyndman'ın auto.arima () (otomatik ARIMA tahmini) ve ETS () (otomatik üstel yumuşatma tahmini) işlevleri , bu iki işlevle ilgili ayrıntılar için buraya bakın . Benim deneyimime göre R paketleri kadar olgun olmasa da, Pyramid adlı auto.arima'nın bir Python uygulaması da var .

Hem bahsettiğim ticari ürünler hem de bahsettiğim açık kaynak paketleri, en iyi tahmini seçmek için bilgi ölçütlerini kullanma fikrine dayanarak çalışır: Bir grup model takarsınız ve daha sonra en düşük AIC, BIC, AICc, vb. (tipik olarak bu örnek dışı doğrulama yerine yapılır).

Ancak büyük bir uyarı var: tüm bu yöntemler tek bir model ailesi içinde çalışıyor . Bir dizi ARIMA modeli arasından mümkün olan en iyi modeli veya bir dizi üstel yumuşatma modeli arasından mümkün olan en iyi modeli seçerler.

Farklı model aileleri arasından seçim yapmak istiyorsanız, örneğin ARIMA, Üstel yumuşatma ve Theta yönteminden en iyi modeli seçmek istiyorsanız, bunu yapmak çok daha zordur. Teorik olarak, bunu tek bir model ailesi içinde yaptığınız şekilde yapabilirsiniz, yani bilgi ölçütlerini kullanarak. Bununla birlikte, pratikte, AIC veya BIC'yi dikkate alınan tüm modeller için tam olarak aynı şekilde hesaplamanız gerekir ve bu önemli bir sorundur. Bilgi dizileri yerine zaman serisi çapraz doğrulaması veya örnek doğrulamasının kullanılması daha iyi olabilir , ancak bu çok daha hesaplama açısından yoğun (ve kodlama sıkıcı) olacaktır.

Facebook'un Peygamber paketi de Genel Katkı Modellerine dayalı tahmin üretimini otomatikleştirir . Ayrıntılar için buraya bakın . Ancak Peygamber, birçok parametreye sahip çok esnek bir model de olsa, sadece tek bir modele uyar. Peygamber'in örtülü varsayımı, bir GAM'ın teorik olarak doğrulanamayabilecek, ancak gerçek dünya senaryoları için çok pragmatik ve yararlı olabilecek "hepsini yöneten tek model" olduğudur.

Yukarıda belirtilen yöntemlerin tümü için geçerli olan başka bir uyarı: Muhtemelen otomatik zaman serisi tahmini yapmak istiyorsunuz, çünkü birden fazla zaman serisini tahmin etmek istiyorsunuz, manuel olarak analiz etmek için çok fazla. Aksi takdirde kendi deneylerinizi yapabilir ve kendi başınıza en iyi modeli bulabilirsiniz. Otomatik tahmin yaklaşımının asla her zaman serisi için en iyi modeli bulamayacağını aklınızda bulundurmanız gerekir - tüm zaman serilerinde ortalama olarak oldukça iyi bir model verecektir, ancak yine de bazılarının bu zaman serilerinin otomatik yöntemle seçilen modellerden daha iyi modelleri olacaktır. Bu gönderiye bakınbunun bir örneği. Basitçe ifade etmek gerekirse, otomatik öngörme ile gidecekseniz, her bir zaman serisi için mümkün olan en iyi tahminler yerine "yeterince iyi" tahminleri tolere etmeniz gerekir.


Böyle anlayışlı bir cevap için teşekkür ederim. Dürüst olmak gerekirse, bu soruyu sorduğumda ilk fikrim farklı model ailelerinden seçim yapabilmekti.
StatsNewbie123

Algoritma, iş tahmini (örneğin üretim planlama ve envanter yönetimi için) gibi daha spesifik bir alana uygulanacak olsaydı ne olurdu? Sizce bunun daha iyi sonuçlar elde edebileceğini düşünüyor musunuz?
StatsNewbie123

2
@JoanaClaudino evet bu daha kolay olurdu - bu ticari talep tahmin paketlerinin ne olduğunun özüdür. Ancak daha kolaydır, çünkü genellikle kendinizi belirli bir iş alanıyla sınırladığınızda, kendinizi belirli bir model ailesiyle sınırlandırabilirsiniz (aynı iş alanından gelen zaman serileri, mevsimler, veri yoğunlukları vb. bu nedenle bir ailenin hepsine uygun olacağını varsaymak güvenlidir)
Skander H.

Tamam, şimdi anladım. Böyle büyük bir yardım için bir kez daha teşekkür ederim.
İstatistiklerNewbie123

10

Benim önerdiğim yaklaşım, zaman içinde değişebilen mevsimsel mankenler, çoklu seviyeler, çoklu eğilimler, zaman içinde değişebilen parametreler ve hatta zaman içinde değişebilen hata varyansları için potansiyelleri içerdiğinden ARIMA'dan çok daha genel olan modelleri kapsar. Bu aileye daha kesin olarak ARMAX modelleri denir, ancak tam şeffaflık için çarpımsal yapıya sahip (nadir) bir varyantı dışlar.

İpucu istediniz ve bunun başlamanız için iyi bir seçenek olabileceğine inanıyorum.

Bu akış şemasını / iş akışını izlemek / taklit etmek için kod yazmanızı öneririm. "En iyi model", belirttiğiniz ölçütü değerlendirerek bulunabilir ... yerleştirilen verilerin MSE / AIC'si olabilir veya saklanan verilerin MAPE / SMAPE'si veya seçtiğiniz herhangi bir kriter olabilir.

Zaman serisi analizinin belirli gereksinimlerinden / amaçlarından / kısıtlamalarından bazılarını bilmiyorsanız bu adımların her birinin detaylandırılmasının oldukça basit olabileceğini unutmayın, ancak daha derin bir anlayışınız varsa daha karmaşık olabilir (olmalı!) / kapsamlı zaman serileri analizinde mevcut olan karmaşıklıkların / fırsatların öğrenilmesi / değerlendirilmesi.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Birinin zaman serisi modellemesini (veya genel olarak modellemeyi) otomatikleştirmeyle ilgili daha fazla yön belirtmem istendi. Https://stats.stackexchange.com/search?q=peeling+an+onion , "soğan soyma" ve ilgili görevler.

AUTOBOX, faydalı bir model oluşturduğu ve bu konuda faydalı bir öğretmen olabileceği için ara adımları ayrıntılı olarak açıklar ve gösterir. Tüm bilimsel fikir "ihtiyaç duyulan şeyleri eklemek" ve "yararlıdan daha az görünen şeyleri silmek" tir. Bu, Box ve Bacon tarafından daha önceki zamanlarda önerilen yinelemeli süreçtir.

Modeller yeterince karmaşık (yeterince süslü) olmalı, ancak çok karmaşık (süslü) olmamalıdır. Basit yöntemlerin karmaşık problemlerle çalıştığını varsayarsak, Roger Bacon ve tonlarca Bacon takipçisi olan bilimsel yöntemle tutarlı değildir. Roger Bacon'un bir zamanlar söylediği gibi ve sık sık yorumladığım gibi: Bilim yapmak, tekrarlanan kalıpları aramaktır. Anormallikleri tespit etmek, tekrarlanan kalıpları takip etmeyen değerleri tanımlamaktır. Doğanın yollarını bilen herkes onun sapmalarını daha kolay fark edecektir ve diğer yandan, sapmalarını bilenler yollarını daha doğru bir şekilde tarif edecektir. Mevcut kuralların ne zaman başarısız olduğunu gözlemleyerek kuralları öğrenir. Bacon spirt'te halihazırda tanımlanmış olan "en iyi model / teori" nin ne zaman yetersiz olduğunu belirleyerek kişi daha iyi bir temsili tekrarlayabilir.

Benim sözlerime göre "Tukey, veriler tarafından önerilen belirgin model eksikliğine dayalı model iyileştirme şemaları öneren Keşif Veri Analizi (EDA) önerdi". Bu AUTOBOX ve bilimin kalbidir. EDA, verilerin resmi modelleme veya hipotez testi görevinin ötesinde bize neler söyleyebileceğini görmek içindir.

Otomatik modelleme programının turnusol testi oldukça basittir. Aşırı takılmadan sinyal ve gürültüyü ayırır mı? Ampirik kanıtlar bunun yapılabileceğini ve yapıldığını göstermektedir. Öngörme doğrulukları genellikle yanıltıcıdır, çünkü gelecek geçmişten sorumlu değildir ve hangi menşei seçtiğinize bağlı olarak değişebilir ve değişebilir.


Çok teşekkür ederim. Cevabınız son derece faydalı!
İstatistiklerNewbie123

Teşekkürler, IrishStat. Bu anlayışlı. Parametrenin istatistiksel olarak anlamlı olmamasına rağmen, bir parametreyi "silme parametresi" yerine tutmak için haklı mıyız?
ColorStatistics

1
Evet. size daha hoş bir cevap verirse. 0.0'dan farklı olmayan bir eğim katsayısı daha gerçekçi (istatistiksel olarak anlamlı değilse) bir tahmin sağlayabilir, Aksi takdirde fazla katsayı taşımak mantıksızdır ve varyans tahmininde artan belirsizliğe neden olur. Bazı yazarlar, gereklilik ve yeterlilik testleri ile körü körüne / naif olarak model tanımlamasının 1 adımlık bir süreç olduğunu varsayarken Box ve Jenkins (ve diğer herkes!) Modeli gerektiği kadar karmaşık yapmakla, aşırı karmaşık olmamakla ilgilenirler. Albert E., JW Tukey ve ark.
IrishStat

3
"Bu önerilen otomatik tahmin yaklaşımı, modelin biçimini özelleştirerek, yani özelleştirilmiş bir takım elbise gibi özelleştirerek, her zaman serisi için en iyi modeli bulacaktır." Bu oldukça güçlü bir ifade - eğer doğruysa, bu yaklaşımın M3, M4 müsabakalarını eline geçireceği anlamına gelir. Öyle mi?
Skander H.

1
@ joana-claudino Önerilen prosedürlerimin bir Python sürümünü geliştirmekle de ilgileniyorum, özellikle ISEG projenizle ilgileniyorum. Bu elbette SE'den site dışı olurdu.
IrishStat
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.