ARMA modelinin uygun değerleri


11

ARMA (p, q) modelleri için uygun değerlerin nasıl hesaplandığını anlamaya çalışıyorum. Burada zaten ARMA süreçlerinin uygun değerleri ile ilgili bir soru buldum, ancak bunu anlayamadım.

ARMA (1,1) modelim varsa, yani

Xt=α1Xt-1+εt-β1εt-1

ve (sabit) zaman serileri verildi I parametreleri tahmin edebilirsiniz. Bu tahminleri kullanarak uygun değerleri nasıl hesaplayabilirim. Bir AR (1) modeli için, takılan değerler

Xt^=α1^Xt-1.

Bir ARMA modelindeki yenilikler gözlemlenemez olduğundan MA parametresinin tahminini nasıl kullanırım? Sadece MA parçasını görmezden gelir ve AR parçasının takılmış değerlerini hesaplayabilir miyim?

Yanıtlar:


10

etarmaXt^=Xt-etXtarima(.5,.6)arma

library(forecast)
n=1000
ts_AR <- arima.sim(n = n, list(ar = 0.5,ma=0.6))
f=arima(ts_AR,order=c(1,0,1),include.mean=FALSE)
summary(f)
    Series: ts_AR 
    ARIMA(1,0,1) with zero mean     

    Coefficients:
             ar1     ma1
          0.4879  0.5595
    s.e.  0.0335  0.0317

    sigma^2 estimated as 1.014:  log likelihood=-1426.7
    AIC=2859.4   AICc=2859.42   BIC=2874.12

    Training set error measures:
                         ME    RMSE       MAE      MPE     MAPE      MASE
    Training set 0.02102758 1.00722 0.8057205 40.05802 160.1078 0.6313145

e1=0t=2,...,net=Xt-birr*Xt-1-Mbir*et-1birrMbir

e = rep(1,n)
e[1] = 0 ##since there is no residual at 1, e1 = 0
for (t in (2 : n)){
  e[t] = ts_AR[t]-coef(f)[1]*ts_AR[t-1]-coef(f)[2]*e[t-1]
}

etXt^=Xt-etet

cbind(fitted.from.package=fitted(f)[1:10],fitted.calculated.manually=ts_AR[1:10]-e[1:10])
      fitted.from.package fitted.calculated.manually
 [1,]          -0.4193068                 -1.1653515
 [2,]          -0.8395447                 -0.5685977
 [3,]          -0.4386956                 -0.6051324
 [4,]           0.3594109                  0.4403898
 [5,]           2.9358336                  2.9013738
 [6,]           1.3489537                  1.3682191
 [7,]           0.5329436                  0.5219576
 [8,]           1.0221220                  1.0283511
 [9,]           0.6083310                  0.6048668
[10,]          -0.5371484                 -0.5352324

e1=0arimaet
Şimdi Ar (1) modeli için. Modeli taktım (ortalama olmadan) ve doğrudan katsayıları kullanarak takılan değerlerin nasıl hesaplanacağını gösterdim. Bu kez artıkları hesaplamadım. İlki kaldırılmış ilk 10 değeri bildirdim (yine nasıl tanımladığınıza bağlı olarak farklı olacaktır). Gördüğünüz gibi tamamen aynılar.

f=arima(ts_AR,order=c(1,0,0),include.mean=FALSE)
cbind(fitted.from.package=fitted(f)[2:10],fitted.calculated.manually=coef(f)*ts_AR[1:9])
      fitted.from.package fitted.calculated.manually
 [1,]          -0.8356307                 -0.8356307
 [2,]          -0.6320580                 -0.6320580
 [3,]           0.0696877                  0.0696877
 [4,]           2.1549019                  2.1549019
 [5,]           2.0480074                  2.0480074
 [6,]           0.8814094                  0.8814094
 [7,]           0.9039184                  0.9039184
 [8,]           0.8079823                  0.8079823
 [9,]          -0.1347165                 -0.1347165

Yardım dosyasında arimaşöyle diyorlar: "(...) Kalman filtresinin bulduğu yenilikler ve varyansları." Dolayısıyla, fonksiyon başlangıçtaki değerler için bir şekilde Kalman filtresini kullanıyor.
DatamineR
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.