Arima'dan önce veya Arima içinde fark zaman serileri


13

Arima kullanmadan önce bir seriyi (ihtiyaç duyduğu varsayılarak) fark etmek daha mı iyi, yoksa Arima içinde d parametresini kullanmak için daha mı iyi?

Aynı model ve verilerle hangi güzergahın alındığına bağlı olarak, takılan değerlerin ne kadar farklı olduğuna şaşırdım. Yoksa yanlış bir şey mi yapıyorum?

install.packages("forecast")
library(forecast)

wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)

#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)

#fitted values from modA
A<-forecast.Arima(modA,1)$fitted

#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])


plot(A, col="red")
lines(B, col="blue")

EKLE:

Lütfen diziyi bir kez farklılaştırdığımı ve arima'yı (1,0,0) uydurduğumu ve ardından arima'yı (1,1,0) orijinal serisine uydurduğumu unutmayın. Ben (bence) ben farklı dosya üzerinde arima (1,0,0) için takılan değerlerin farkını tersine çeviriyorum.

Takılmış değerleri karşılaştırıyorum - tahminleri değil.

İşte arsa (kırmızı, arima (1,1,0) ve mavi, orijinal skalaya geri döndükten sonra farklı serilerde arima (1,0,0)):

resim açıklamasını buraya girin

Dr. Hyndman'ın Cevabı:

1) R kodunda Arima (1,1, 0) ve Arima (1,0,0) manuel olarak farklılaştırılmış serilerde? Bunun modA'ya dahil edilmemesiyle ilgili olduğunu varsayıyorum, ancak nasıl devam edeceğimi tam olarak bilmiyorum.

2) # 3 ile ilgili. Açık kaçırdığımı biliyorum, ancak ve olarak tanımlandığında aynı mıdır? Yanlış "farksızlaştığımı" mı söylüyorsun?X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1


1
Güncellemenizle ilgili. 1) Bunu yapmanın bir anlamı yok. Arima () uygun değerleri ve tahminleri üretecektir. Neden Arima () ile aynı şeyi yapmak için ek R kodu üretmeliyim? 2) Evet, ama farklı X-şapkası size Y-şapkası vermez. Bu nedenle, farksızlık Y-şapkası size X-şapkası vermez.
Rob Hyndman

2
Teşekkürler. 1) Benim için bir öğrenme alıştırmasıydı. 2) Orijinal sorumdaki (diffinv kullanarak) hesaplamadaki hatam, takılan değerleri kullanmaktı ve orijinal değil, bundan aldığımı sanıyorum. (?) ... verilerin farksızlığı. Arima'nın bunu yapacağını biliyorum, sadece denklemleri kullanarak bir kitap örneğini takip etmeye çalışıyorum.
B_Miner

Yanıtlar:


14

Burada birkaç sorun var.

  1. Önce fark ederseniz Arima(), farklı verilere bir model sığar. Arima()Farkı tahmin prosedürünün bir parçası olarak yapmanıza izin verirseniz , başlatma için bir diffüz kullanır. Bu, için yardım dosyasında açıklanmıştır arima(). Dolayısıyla, ilk gözlemin ele alındığı farklı yollar nedeniyle sonuçlar farklı olacaktır. Tahminin kalitesi açısından fazla bir fark yarattığını düşünmüyorum. Bununla birlikte, Arima()orijinal (farklılaşmamış) veriler üzerinde tahminler veya takılmış değerler istiyorsanız, farkın ele alınmasına izin vermek çok daha kolaydır .

  2. Tahmin farklılıkları dışında, iki modeliniz eşdeğer değildir, çünkü modBsabit bir süre modAiçermez. Varsayılan olarak,Arima() olduğunda bir sabit içerir ve olduğunda sabit içermez . Argüman ile bu varsayılanları aşabilirsiniz.d > 0d=0d>0include.mean

  3. Orijinal veriler için takılmış değerler, farklılaştırılmış verilerdeki farklılaştırılmamış takılmış değerlere eşdeğer değildir. Bunu görmek için, orijinal verilerdeki takılan değerlerin verildiğini, farkı alınmış verilere değerleri tarafından verilen orijinal zaman serisi ve bir olduğu farklı seriler. Böylece Y, t=φ(X-t-1-X-t-2){X,t}{Y'nint} x t - X, t-1 Y t.

    X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, cevap olarak 2 noktayı verecektim. Diğer dahil 2 için Kudos
mpiktas

Dr. Hyndman, cevabınız için teşekkürler! Zaman serisi analizi hakkında öğrenecek çok şeyim var. Takip isteyebilir miyim? Bu soru ile ne yapacağımı tam olarak bildiğimden emin değilim, bu yüzden orijinal sorumu ekliyorum.
B_Miner

2

Bazen seriyi sabit hale getirmek için yerel araçları kaldırmanız gerekir. Orijinal seride ölmeyen bir acf varsa, bunun nedeni serideki seviye / adım kayması olabilir. Çözüm, dizinin anlamını kaldırmaktır.

BÜTÜNE YANIT:

Aynı sonuçları / takılan değerleri elde etmenin yolu, ilk farkı (dely) elde etmek için oroiginal (Y (t) serisini fiziksel olarak farklılaştırmak, bir AR (1) sabit olmadan tahmin etmektir. form kesişme (t) = B1 * dely (t-1) + a (t) kesişme noktası olmadan. 1 numaralı sıraya uygun şekilde entegre edilmiş bu modelden takılan değerler (sanırım) size bir modelin takılmış değerlerini verecektir; [ 1-B] [AR (1)] Y (t) = a (t) Belirtilen AUTOBOX istisnası olan çoğu yazılım parçası, bir AR (1) modelini sabit olmadan tahmin etmenize İZİN VERMEZ. y için denklem = + [(1- .675B * 1)] ** - 1 [A (T)] Y için denklem

[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Y'nin fiziksel farkının neden olduğu yuvarlama hatasına dikkat edin. Fark var olduğunda (modelde) VEYA kullanıcının sabiti dahil edip etmemeyi seçemeyeceğini unutmayın. Normal işlem, sabit (yani farklılaşmamış) bir ARIMA modeli için bir sabit içermek ve isteğe bağlı olarak modelde farklılık olduğunda bir sabit içermektir. Alternatif yaklaşımın (Arima), sabit bir modele sabit kaldığını düşünüyorum, bence ikileminize neden oldu.


Bu durumda delta-y'deki arima (1,0,0) ile y üzerindeki arima (1,1,0) arasındaki uygun değerleri etkiler mi?
B_Miner

Her iki durumda da zaman serisinin ilk farkına bir AR (1) takıyorsunuz değil mi? Durum buysa ve uyum yöntemleri aynıysa, aynı şeyi yapıyor olmalıdırlar. Operasyonların sıralamasında bile bir fark yok.
Michael R. Chernick

Burada böyle görünmüyor. Belki de @Rob_Hyndman check-in yapacak.
B_Miner

1

Bir şekilde diğerinden daha fazla farklı olmadıkça neden sonuçlarda bir fark olacağını bilmiyorum. bir ARIMA (p, d, q) için d farkları herhangi bir model bağlantısından önce yapılır. Ardından sabit ARMA (p, q) modeli farklı serilere uygundur. Varsayım, serideki polinom eğilimlerinin kaldırılmasından sonra, kalan serilerin durağan olduğudur. Farklılıkların sayısı, kaldırmak istediğiniz polinom sırasına karşılık gelir. Yani doğrusal bir trend için sadece bir fark alırsınız, ikinci dereceden bir trend için iki fark alırsınız. John'un cevabında söylenenlerin çoğuna katılmıyorum.


0

Bir I (1) serisini farklılaştırmanın bir nedeni, onu sabit yapmaktır. ARIMA modeli için doğru spesifikasyona sahip olduğunuzu varsayarsak, modelin artıklarında otoregresif ve hareketli ortalama bileşenler çıkarılır ve sabit olmalıdır. Bu bakımdan kalıntıları modelden farklılaştırmak yerine kullanmak mantıklı olabilir. Bununla birlikte, yaklaşık 1 (1) olduğunu düşündüğünüz çok fazla veriye sahip olduğunuz durumlarda, bazı insanlar ARIMA modelini tamamen tahmin etmek yerine verileri sadece farklılaştıracaktır. ARIMA modeli, farkın mantıklı olmayabileceği bir dizi zaman serisi problemine uyabilir. Örneğin, veri geri dönüşü yaşıyorsa, bu her zaman farklılık için uygun olmayabilir, çünkü I (1) olmayabilir.


Farklılıkların bu kadar büyük olmasını bekler misiniz? Farklılıklardan orijinale nasıl geri döndüğümde yanlış bir şey yaptığımı düşündürdü.
B_Miner

Tam olarak ne yaptığınızı açıklar mısınız? R kodunu okumada iyi değilim. Her iki yönde de aynı sayıda farkı alırsanız ve farklı AR'dan sonra aynı ARMA modeline uyuyorsanız, montaj teknikleri aynı olduğu sürece aynı sonuçları almalısınız (genellikle koşullu en küçük kareler kullanılır).
Michael R. Chernick

Biraz veri alır, ARIMA'ya (1,1,0) uyar, sonra farkları alır ve ARIMA'ya (1,0,0) uyar. Son olarak, örnek tahminlerden bir dönemi birbiriyle karşılaştırır. Muhtemelen farklılar, ancak yazıdaki grafikleri göremiyoruz.
John

yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt

1
Sonunda doğru. 5 dakika içinde LaTex yapamam! Yukarıdaki denklemin her iki şekilde de ortaya çıktığını söyleyebilirim.
Michael R. Chernick
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.