In R (2.15.2) habe ich einmal eine ARIMA (3,1,3) auf eine Zeitreihe und einmal eine ARMA (3,3) auf die einmal differenzierten Zeitreihen gepasst. Die angepassten Parameter unterscheiden sich, was ich der Anpassungsmethode in ARIMA zuschrieb.
Auch das Anpassen einer ARIMA (3,0,3) an dieselben Daten wie ARMA (3,3) führt nicht zu identischen Parametern, unabhängig von der verwendeten Anpassungsmethode.
Ich möchte herausfinden, woher der Unterschied kommt und mit welchen Parametern ich die ARIMA (wenn überhaupt) anpassen kann, um die gleichen Koeffizienten der Anpassung wie von der ARMA zu erhalten.
Beispielcode zur Demonstration:
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)
Edit: Die Verwendung der bedingten Quadratsumme kommt ziemlich nahe, ist aber nicht ganz da. Danke für den Hinweis für die fit1!
Edit2: Ich denke nicht, dass dies ein Duplikat ist. Die Punkte 2 und 3 behandeln andere Probleme als meine, und selbst wenn ich die in Punkt 1 erwähnte Initialisierung durch überschreibe
fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F,init=fit1$coe)
Ich bekomme immer noch verschiedene Koeffizienten
arima
erwähnen ein n.cond
Argument, das die Anzahl der Beobachtungen am Anfang der Reihe angibt, die bei der Berechnung ignoriert werden sollen - vielleicht ist es das. (Was ist eigentlich falsch daran, die maximale Wahrscheinlichkeit zu nutzen?)
fit1
hat nur 1 MA & 1 AR Parameter: meintest dufit1<-arma(diff(x,1,lag=1),c(3,3),include.intercept=F)
?