Dalam R (2.15.2) saya memasang sekali ARIMA (3,1,3) pada deret waktu dan sekali ARMA (3,3) pada deret waktu yang berbeda. Parameter yang dipasang berbeda, yang saya dikaitkan dengan metode pemasangan di ARIMA.
Juga, pemasangan ARIMA (3,0,3) pada data yang sama dengan ARMA (3,3) tidak akan menghasilkan parameter yang identik, tidak peduli metode pemasangan yang saya gunakan.
Saya tertarik untuk mengidentifikasi dari mana perbedaan berasal dan dengan parameter apa saya dapat (jika sama sekali) cocok dengan ARIMA untuk mendapatkan koefisien fit yang sama dengan ARMA.
Kode contoh untuk diperagakan:
library(tseries)
set.seed(2)
#getting a time series manually
x<-c(1,2,1)
e<-c(0,0.3,-0.2)
n<-45
AR<-c(0.5,-0.4,-0.1)
MA<-c(0.4,0.3,-0.2)
for(i in 4:n){
tt<-rnorm(1)
t<-x[length(x)]+tt+x[i-1]*AR[1]+x[i-2]*AR[2]+x[i-3]*AR[3]+e[i-1]*MA[1]+e[i-2]*MA[2]+e[i-3]*MA[3]
x<-c(x,t)
e<-c(e,tt)
}
par(mfrow=c(2,1))
plot(x)
plot(diff(x,1))
#fitting different versions. What I would like to get is fit1 with ARIMA()
fit1<-arma(diff(x,1,lag=1),c(3,3),include.intercept=F)
fit2<-arima(x,c(3,1,3),include.mean=F)
fit3<-arima(diff(x,1),c(3,0,3),include.mean=F)
fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F)
fit5<-arima(diff(x,1),c(3,0,3),method="CSS",include.mean=F)
cbind(fit1$coe,fit2$coe,fit3$coe,fit4$coe,fit5$coe)
Sunting: Menggunakan jumlah bersyarat kotak datang cukup dekat, tetapi tidak cukup di sana. Terima kasih atas petunjuk untuk fit1!
Sunting2: Saya tidak berpikir ini adalah duplikat. Poin 2 dan 3 mengatasi masalah yang berbeda dari masalah saya, dan bahkan jika saya mengabaikan inisialisasi yang disebutkan dalam poin 1 oleh
fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F,init=fit1$coe)
Saya masih mendapatkan koefisien yang berbeda
fit1
hanya memiliki 1 parameter MA & 1 AR: maksud Andafit1<-arma(diff(x,1,lag=1),c(3,3),include.intercept=F)
?arima
menyebutkann.cond
argumen yang memberikan jumlah pengamatan di awal seri untuk diabaikan ketika menghitungnya - mungkin itu saja. (Lagi pula, apa salahnya menggunakan kemungkinan maksimum?)Jawaban:
Ada tiga masalah kecil
tseries::arma
dibandingkan denganstats::arima
yang mengarah ke hasil yang sedikit berbeda dalam model ARMA untuk seri yang dibedakan menggunakantseries::arma
dan ARIMA distats::arima
.Nilai awal dari koefisien:
stats::arima
set koefisien awal AR dan MA ke nol, sementaratseries::arma
menggunakan prosedur yang dijelaskan dalam Hannan dan Rissanen (1982) digunakan untuk mendapatkan nilai awal dari koefisien.Skala fungsi objektif: fungsi objektif dalam
tseries::arma
mengembalikan nilai jumlah kuadrat bersyarat, RSS;stats::arima
kembali0.5*log(RSS/(n-ncond))
.Algoritma optimasi: Secara default, Nelder-Mead digunakan
tseries::arma
, sementarastats::arima
menggunakan algoritma BFGS.Yang terakhir dapat diubah melalui argumen
optim.method
distats::arima
tapi yang lain akan membutuhkan memodifikasi kode. Di bawah ini, saya menunjukkan versi singkat dari kode sumber (kode minimal untuk model khusus ini) untuk distats::arima
mana tiga masalah yang disebutkan di atas dimodifikasi sehingga sama seperti ditseries::arma
. Setelah mengatasi masalah ini, hasil yang sama dengantseries::arma
yang diperoleh.Versi minimal
stats::arima
(dengan perubahan yang disebutkan di atas):Sekarang, bandingkan kedua prosedur dan periksa apakah menghasilkan hasil yang sama (memerlukan seri
x
dihasilkan oleh OP di badan pertanyaan).Menggunakan nilai awal yang dipilih di
tseries::arima
:Menggunakan nilai awal yang dipilih dalam
stats::arima
(nol):sumber
Sejauh yang saya tahu, perbedaannya sepenuhnya karena ketentuan MA. Yaitu, ketika saya mencocokkan data Anda dengan hanya persyaratan AR, ARMA dari seri berbeda dan ARIMA setuju.
sumber