Tsoutliers paketi ve auto.arima kullanarak tahmin etme ve tahmin yapma


9

1993'ten 2015'e kadar aylık verilerim var ve bu verilerle ilgili tahmin yapmak istiyorum. Aykırı değerleri tespit etmek için tsoutliers paketini kullandım, ancak veri setimle nasıl tahmin etmeye devam ettiğimi bilmiyorum.

Bu benim kodum:

product.outlier<-tso(product,types=c("AO","LS","TC"))
plot(product.outlier)

Bu benim tsoutliers paketinden çıktı

ARIMA(0,1,0)(0,0,1)[12]                    

Coefficients:
        sma1    LS46    LS51    LS61    TC133   LS181   AO183   AO184   LS185   TC186    TC193    TC200
      0.1700  0.4316  0.6166  0.5793  -0.5127  0.5422  0.5138  0.9264  3.0762  0.5688  -0.4775  -0.4386
s.e.  0.0768  0.1109  0.1105  0.1106   0.1021  0.1120  0.1119  0.1567  0.1918  0.1037   0.1033   0.1040
       LS207    AO237    TC248    AO260    AO266
      0.4228  -0.3815  -0.4082  -0.4830  -0.5183
s.e.  0.1129   0.0782   0.1030   0.0801   0.0805

sigma^2 estimated as 0.01258:  log likelihood=205.91
AIC=-375.83   AICc=-373.08   BIC=-311.19

 Outliers:
    type ind    time coefhat  tstat
1    LS  46 1996:10  0.4316  3.891
2    LS  51 1997:03  0.6166  5.579
3    LS  61 1998:01  0.5793  5.236
4    TC 133 2004:01 -0.5127 -5.019
5    LS 181 2008:01  0.5422  4.841 
6    AO 183 2008:03  0.5138  4.592
7    AO 184 2008:04  0.9264  5.911
8    LS 185 2008:05  3.0762 16.038
9    TC 186 2008:06  0.5688  5.483
10   TC 193 2009:01 -0.4775 -4.624
11   TC 200 2009:08 -0.4386 -4.217
12   LS 207 2010:03  0.4228  3.746
13   AO 237 2012:09 -0.3815 -4.877
14   TC 248 2013:08 -0.4082 -3.965
15   AO 260 2014:08 -0.4830 -6.027
16   AO 266 2015:02 -0.5183 -6.442

Bu benim komplo

Bu uyarı mesajlarını da aldım.

Warning messages:
1: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval,  :
  stopped when maxit was reached
2: In locate.outliers.iloop(resid = resid, pars = pars, cval = cval,  :
  stopped when maxit was reached
3: In locate.outliers.oloop(y = y, fit = fit, types = types, cval = cval,  :
  stopped when maxit was reached
4: In arima(x, order = c(1, d, 0), xreg = xreg) :
  possible convergence problem: optim gave code = 1
5: In auto.arima(x = c(5.77, 5.79, 5.79, 5.79, 5.79, 5.79, 5.78, 5.78,  :
  Unable to fit final model using maximum likelihood. AIC value approximated

şüpheler:

  1. Yanılmıyorsam, tsoutliers paketi algıladığı aykırı değerleri kaldıracak ve aykırı değerlerin çıkarılmış olduğu veri kümesini kullanarak bize veri seti için en uygun arima modelini verecektir, doğru mu?
  2. Seriyi ayarlama veri kümesi, seviye kayması vb. Kaldırıldığından dolayı çok aşağı kaydırılıyor. Bu, öngörülen dizide öngörme yapıldıysa, daha yeni veriler zaten 12'den fazla olduğu için, tahminin çıktısının çok yanlış olacağı anlamına gelmez, düzeltilmiş veriler 7-8'e kaydırılır.
  3. Uyarı mesajı 4 ve 5 ne anlama geliyor? Düzeltilmiş serileri kullanarak auto.arima yapamayacağı anlamına mı geliyor?
  4. ARIMA (0,1,0) (0,0,1) [12] 'deki [12] ne anlama geliyor? Veri kümemin aylık sıklığı / periyodikliği mi? Ve bu aynı zamanda veri serilerimin de mevsimsel olduğu anlamına mı geliyor?
  5. Veri kümemdeki mevsimselliği nasıl tespit ederim? Zaman serisi grafiğinin görselleştirilmesinden itibaren, belirgin bir eğilim göremiyorum ve ayrışma işlevini kullanırsam, mevsimsel bir eğilim olduğunu varsayar? Öyleyse, tsoutliers bana mevsimsel eğilimin nerede olduğunu söylediğine inanıyorum, çünkü 1. sıra MA var mı?
  6. Bu aykırı değerleri belirledikten sonra bu verilerle öngörümü yapmaya nasıl devam edebilirim?
  7. Bu aykırı değerler diğer tahmin modellerine nasıl dahil edilir - Üstel Düzeltme, ARIMA, Strutural Model, Random Walk, teta? Seviye kaydırma olduğu için aykırı değerleri kaldıramayacağımdan eminim ve sadece ayarlanmış seri verilerini alırsam değerler çok küçük olacak, bu yüzden ne yapmalıyım?

Bu aykırı değerleri tahmin için auto.arima'ya regresör olarak eklemem gerekir mi? Peki bu nasıl oluyor?

Yanıtlar:


5

Bu yorumlar çok uzun ... bu yüzden bir "CEVAP"

  1. Yanlıştır ve daha sonra ARIMA'yı (AUTOBOX'un yaptığı gibi) tanımlamaz ve tanımlamaz. ARIMA yapısını tanımlamadan önce genellikle kullanıcı tarafından belirlenen nedensel seriler ve / veya belirtilmemiş deterministik yapı (aykırı değerler / seviye değişimleri, mevsimsel atımlar, yerel zaman eğilimleri) için ayarlama yapılması gerekir. Doğanın gerçek / doğru durumu herhangi bir farklılığa ihtiyaç duymazken , orijinal serileri gereksiz yere farklılaştırma hatasını yapan zayıf bir onur örneğine bakın . Durağan olmama, mutlaka fark etme gereksinimi anlamına gelmez, ancak genellikle seviye / ortalamadaki bir değişiklik için ayarlamanın anlamını düşündürür

  2. Doğru tahmin her zaman orijinal serilerden yapılır, bu nedenle tarih göz önüne alındığında tahminlerin inandırıcı olması gerekir.

  3. Bu prosedürü aktif olarak kullanmadığım için hiçbir fikrim yok. Size tavsiye ettim çünkü ARIMA modellemesi yinelemeli (çok aşamalı) kendi kendini denetleyen bir süreç olduğu için iyi veya yeterli olduğunu düşündüğüm için ücretsiz r tabanlı çözümler istemediniz.

  4. model, verilerin ma (12) mevsimsel bir bileşeni olduğunu düşünüyor, ancak bu sadece mevsimsel bir nabız ihtiyacını yansıtıyor olabilir.

  5. mevsimsel bir eğilim kavramı en iyi belirsizdir.

  6. Cevabım çok açık ve kendi kendine yeten olurdu


1
tu very much @ricardo
IrishStat

4

'Tsoutliers' paketi Chen ve Liu (1993) [1] tarafından açıklanan prosedürü uygular . Paketin ve prosedürün açıklaması da bu belgede verilmiştir .

Kısaca, prosedür iki ana aşamadan oluşur:

  1. Seçili bir ARIMA modelinde aykırı değerlerin tespiti.
  2. Önceki adımda tespit edilen aykırı değerler de dahil olmak üzere ARIMA modelini seçin ve / veya yeniden takın ve yeni uyumda önemli olmayan aykırı değerleri çıkarın.

Seri daha sonra algılanan aykırı değerler için ayarlanır ve aşama (1) ve (2), daha fazla aykırı değer algılanana kadar veya maksimum sayıda yineleme elde edilene kadar tekrarlanır.


İlk aşama (aykırı değerlerin tespiti) de yinelemeli bir süreçtir. Her yinelemenin sonunda ARIMA modelindeki artıklar bu aşamada tespit edilen aykırı değerlere göre ayarlanır. Hiçbir aykırı değer bulunana kadar veya maksimum yineleme sayısına (varsayılan olarak 4 yineleme) ulaşılana kadar işlem tekrarlanır. Aldığınız ilk üç uyarı bu iç döngü ile ilgilidir, yani dört yinelemeden sonra aşamadan çıkılır.

Sen argüman yoluyla tekrarlamalar bu maksimum sayısını artırabilir maxit.iloopişlevinde tso. İlk aşamada çok sayıda yineleme yapılmaması ve sürecin ARIMA modelinin yeniden takıldığı veya tekrar seçildiği ikinci aşamaya geçmesine izin verilmemesi tavsiye edilir.


Uyarılar 4 ve 5, ARIMA modelinin takılması ve işlevler için sırasıyla modeli seçmesi stats::arimaile ilgilidir forecast:auto.arima. Olabilirlik işlevini en üst düzeye çıkaran algoritma her zaman bir çözümle birleşmez. Bu sorunlarla ilgili bazı ayrıntıları bulabilirsiniz, örneğin, bu gönderi ve bu gönderi


[1] Chung Chen ve Lon-Mu Liu (1993) "Model Parametrelerinin Ortak Tahmini ve Zaman Serilerinde Ekstrem Etkiler", Amerikan İstatistik Derneği Dergisi , 88 (421), s. 284-297. DOI: 10.1080 / 01621459.1993.10594321 .


tso () 'i çalıştırmak ne kadar zaman alır?
Anoop Toffy

@AnoopToffy, verilerin uzunluğuna, periyodikliğe vb. Bağlıdır. Yıllık, aylık, üç aylık veriler, yaklaşık 120 gözlemin örnek büyüklüğü ve bir ARIMA modeli tarafından makul şekilde yakalanabilen bir dinamik için algoritma en fazla çalışır yaklaşık 10 saniye (genellikle çok daha az).
javlacalle
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.