Tahmin için Kalman filtrelemeli DLM nasıl kullanılır


19

Birisi bana bir zaman serisinde DLM Kalman filtrelemenin R'de nasıl kullanılacağına dair bir örnek verebilir. Diyelim ki bu değerlerim var (yıllık mevsimsellik olan üç aylık değerler); sonraki değerleri tahmin etmek için DLM'yi nasıl kullanırsınız? Ve BTW, yeterli geçmiş verilerim var mı (minimum nedir)?

89  2009Q1  
82  2009Q2  
89  2009Q3  
131 2009Q4  
97  2010Q1  
94  2010Q2  
101 2010Q3  
151 2010Q4  
100 2011Q1  
?   2011Q2

Bir R kodu yemek kitabı tarzı nasıl adım adım cevap türü arıyorum. Tahmin doğruluğu benim asıl amacım değil, sadece yeterli veriye sahip olmasam bile, 2011Q2 için bana bir sayı veren kod sırasını öğrenmek istiyorum.


3
Bu stats.stackexchange.com
Joshua Ulrich

Bump ... Bunu nasıl yapacağımı hala anlayamıyorum. Orijinal gönderiyi yanıtlayanlar var mı?
datayoda

2
Bir DLM ile istediğiniz kadar yemek kitabı tarzı değil. RockScience'ın cevabını (DLM skeç) alıp üzerinden geçirdim. Bir DLM, bir programı tasarlamak gibi bazı verileri takmayı ve bazı parametreleri değiştirmeyi gerektiren diğer tekniklerden daha çok benzer. Nihayetinde, Gizli Markov Modeli gibi bir şey uygulayan bir dizi dizi tasarlıyorsunuz ve dlmpaket bunu mümkün olduğunca kolaylaştırıyor.
Wayne

Sorununa çözümün var mı? Ben benzer zaman çizelgeleri sorununa bir çözüm arıyorum ama bir çözüm bulamıyorum.

@RockScience tarafından önerilen kağıt üzerinde çalıştınız mı? dlmPakete baktınız mı ? Cevabımda söylediğim gibi, DLM'ler, bir program çağrısına bazı değişkenleri takmaktan çok bir program oluşturmak gibidir. Datayoda bir cevabı asla kabul etmedi, bu yüzden bu gözlemi geçtiklerinden emin değilim.
Wayne

Yanıtlar:



16

DLM'ler iyidir, ancak örneğin ARIMA veya diğer yöntemler kadar basit değildir. Diğer yöntemlerde, verilerinizi ekler ve ardından ayarlarınıza rehberlik etmek için çeşitli tanılara başvurarak algoritmanın bazı parametrelerini düzenlersiniz.

Bir DLM ile, temelde bir Gizli Markov Modeli gibi bir şey uygulayan birkaç matristen oluşan bir durum uzay makinesi oluşturuyorsunuz. Bazı paketler ( sspirsanırım, diğerleri arasında) kavramı ve matrislerin ne yaptığını anlamanızı bekler. dlmPaketle başlamanızı şiddetle tavsiye ederim ve @RockScience'ın önerdiği gibi skeçte yürüyün.

İle dlmgitmek üzere olduğunuz temelde çeşitli adımlar atmıştır:

  1. Serimi ne tür bileşenler tanımlıyor? Bir trend? Mevsimsellik? Dışsal değişkenler? Bu bileşenleri uygulamak dlmgibi araçları kullanacaksınız dlmModPoly, +bunları tek bir modelde birleştirmek için operatörü kullanacaksınız.

  2. Bu model için birçok parametrenin gerekli olduğu ancak bu parametrelerle bileşenleri oluşturan, daha sonra bunları ekleyen ve sonuçta ortaya çıkan modeli döndüren bir R alt yordamı oluşturun.

  3. dlmMLEUygun parametreleri bulmak için bir arama / optimizasyon yapmak için kullanın (temelde optimizasyon olan MLE'yi kullanarak optimizasyonda ortaya çıkabilecek tuzaklar ile). dlmMLEModeller oluşturmak için R alt programınızı tekrar tekrar aday parametreleriyle çağırır, sonra bunları test eder.

  4. Oluşturduğunuz R alt yordamını ve 3. adımda bulduğunuz parametreleri kullanarak son modelinizi oluşturun.

  5. Verilerinizi filtreleyin dlmFilter, ardından belki de pürüzsüz hale getirin dlmSmooth.

  6. dlmModRegModelin zamanla değişen parametrelere sahip olmasına neden olan bir şey kullanırsanız veya yaparsanız, dizinizi dlmForecasttahmin etmek için kullanamazsınız . Zamanla değişen bir modelle sonuçlanırsanız, giriş verilerinizi NA'larla dlmFilterdoldurmak ve NA'ları sizin için doldurmak isteyeceksiniz (fakir bir adamın tahmini), çünkü dlmForecastzamanla değişen parametrelerle çalışmaz.

  7. Bileşenleri ayrı ayrı incelemek istiyorsanız (eğilimi mevsimsel olarak ayrı olarak söyleyin), matrisleri ve her sütunda ne olduğunu ve ayrıca dlmbunları nasıl bir araya getirdiğinizi (sipariş önemlidir!) Anlamanız gerekir.

Adı kaçan başka bir paket var, bu paketlerden birkaçını ( dlmarka uç dahil) kullanabilen bir kullanıcı arabirimi oluşturmaya çalışıyor . Ne yazık ki, hiç iyi çalışmadı, ama bu sadece ben olabilirim.

Gerçekten DLM'ler hakkında bir kitap almanızı tavsiye ederim. Birkaç tane aldım ve dlmbulunduğum yere ulaşmak için çok oynadım ve hiçbir şekilde uzman değilim.


Teşekkürler Wayne, sanırım benim durumum görsel incelemede net eğilimleri veya mevsimselliği görmeyeceğim kadar basit. (Ancak, R'deki herhangi bir testin farkındaysanız, lütfen bana bildirin, bunları çalıştırmaya çalışacağım). Benim sorunum benim veriler için dlm işlevlerinde (FF, V, GG, W, m0, C0, dV vb) gibi argümanları doldurmak bilmiyorum olmasıdır? Benim için asıl mesele bu. İki değişkenli seri verilerim varsa (y = X1 + X2) örn. (Fiyat = talep + arz), verilerim için bu bağımsız değişkenleri nasıl hesaplayabilirim? Dlm işlevlerinde gerekli olan FF, V, GG, W, m0, C0, dV vb.
nclfinance 17:01

1
@nclfinance Lütfen SSS bölümünü okuyun ve burayı forum olarak değerlendirmeyin.

@ nclfinance: dlmPaketin vinyetinde çalışın . Bilmeniz gerekenler öğreneceksiniz. Bu yüzden tavsiye ederim dlm, çünkü kendiniz FF vb.
Wayne

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.