Nilai model ARMA yang dipasang


11

Saya mencoba memahami bagaimana nilai yang dipasang dihitung untuk model ARMA (p, q). Saya sudah menemukan pertanyaan di sini mengenai nilai-nilai yang pas dari proses ARMA tetapi belum dapat memahaminya.

Jika saya memiliki model ARMA (1,1), yaitu

Xt=α1Xt1+ϵtβ1ϵt1

dan diberi deret waktu (stasioner) saya dapat memperkirakan parameter. Bagaimana saya menghitung nilai yang dipasang menggunakan estimasi tersebut. Untuk model AR (1) nilai yang dipasang diberikan oleh

Xt^=α1^Xt1.

Karena inovasi dalam model ARMA tidak dapat diamati, bagaimana saya akan menggunakan estimasi parameter MA? Apakah saya akan mengabaikan bagian MA dan menghitung nilai-nilai yang pas dari bagian AR?

Jawaban:


10

Untuk menjawab pertanyaan Anda, pada dasarnya Anda perlu tahu bagaimana residu yaitu dihitung dalam suatu model. Karena itu . Pertama-tama mari kita buat data palsu ( ) dari dan pas dengan model (tanpa berarti):^ X t = X t - e t X tetarmaXt^=XtetXtarima(.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

Sekarang saya membuat residual sebagai berikut: (karena tidak ada residual pada 1) dan untuk kita memiliki: , di mana dan adalah estimasi rata-rata auto-regresif dan moving average dalam model yang dipasang di atas. Ini kodenya:e1=0t=2,...,net=Xt-SEBUAHrXt-1-M.Sebuahet-1SEBUAHrM.Sebuah

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]
}

Setelah Anda menemukan residual , nilai yang dipasang hanya . Jadi berikut ini, saya membandingkan 10 nilai pas pertama yang diperoleh dari R dan yang saya dapat hitung dari saya buat di atas (yaitu secara manual).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

Seperti yang Anda lihat ada yang dekat tetapi tidak persis sama. Alasannya adalah ketika saya membuat residu, saya menetapkan . Ada beberapa pilihan lain. Sebagai contoh berdasarkan pada file bantuan , residual dan ditemukan oleh filter Kalman dan karenanya perhitungan akan sedikit berbeda dari saya. Tetapi seiring berjalannya waktu, mereka bertemu. Sekarang untuk model Ar (1). Saya memasang model (tanpa rata-rata) dan langsung menunjukkan kepada Anda cara menghitung nilai yang dipasang menggunakan koefisien. Kali ini saya tidak menghitung residu. Perhatikan bahwa saya melaporkan 10 nilai pas yang pertama menghapus nilai pertama (karena lagi akan berbeda tergantung pada bagaimana Anda mendefinisikannya). Seperti yang Anda lihat, semuanya sama.e1=0arimaet

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

Dalam file bantuan arimamereka berkata: "(...) inovasi dan varians mereka ditemukan oleh filter Kalman." Jadi fungsi tersebut entah bagaimana menggunakan filter Kalman untuk nilai awal.
DatamineR
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.