En R (2.15.2) instalé una vez un ARIMA (3,1,3) en una serie de tiempo y una vez un ARMA (3,3) en la serie de tiempo una vez diferenciada. Los parámetros ajustados difieren, lo que atribuí al método de ajuste en ARIMA.
Además, ajustar un ARIMA (3,0,3) en los mismos datos que ARMA (3,3) no dará como resultado parámetros idénticos, sin importar el método de ajuste que use.
Estoy interesado en identificar de dónde viene la diferencia y con qué parámetros puedo (si es que puedo) ajustar el ARIMA para obtener los mismos coeficientes de ajuste que el ARMA.
Código de muestra para demostrar:
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)
Editar: el uso de la suma condicional de cuadrados se acerca bastante, pero no está del todo allí. Gracias por la pista para el fit1!
Edit2: no creo que esto sea un duplicado. Los puntos 2 y 3 abordan problemas diferentes a los míos, e incluso si anulo la inicialización mencionada en el punto 1 por
fit4<-arima(x,c(3,1,3),method="CSS",include.mean=F,init=fit1$coe)
Todavía obtengo diferentes coeficientes

fit1tiene solo 1 parámetro MA y 1 AR: ¿quiso decirfit1<-arma(diff(x,1,lag=1),c(3,3),include.intercept=F)?arimamencionan unn.condargumento que da el número de observaciones al comienzo de la serie para ignorarlo al calcularlo, tal vez eso es todo. (¿Qué tiene de malo usar la máxima probabilidad de todos modos?)Respuestas:
Hay tres problemas menores en
tseries::armacomparación con losstats::arimaque conducen a un resultado ligeramente diferente en el modelo ARMA para las series diferenciadas que usantseries::armay ARIMA enstats::arima.Valores
stats::arimainiciales de los coeficientes: establece los coeficientes iniciales AR y MA en cero, mientras quetseries::armautiliza el procedimiento descrito en Hannan y Rissanen (1982) para obtener los valores iniciales de los coeficientes.Escala de la función objetivo: la función objetivo en
tseries::armadevuelve el valor de las sumas condicionales de cuadrados, RSS;stats::arimavuelve0.5*log(RSS/(n-ncond)).Algoritmo de optimización: de forma predeterminada, Nelder-Mead se utiliza en
tseries::arma, mientras questats::arimaemplea el algoritmo BFGS.El último se puede cambiar a través del argumento
optim.methodenstats::arimapero los otros requerirían modificar el código. A continuación, muestro una versión abreviada del código fuente (código mínimo para este modelo en particular)stats::arimadonde los tres problemas mencionados anteriormente se modifican para que sean los mismos que entseries::arma. Después de abordar estos problemas,tseries::armase obtiene el mismo resultado que en .Versión mínima de
stats::arima(con los cambios mencionados anteriormente):Ahora, compare ambos procedimientos y verifique que produzcan el mismo resultado (requiere la serie
xgenerada por el OP en el cuerpo de la pregunta).Usando los valores iniciales elegidos en
tseries::arima:Usando los valores iniciales elegidos en
stats::arima(ceros):fuente
Por lo que puedo decir, la diferencia se debe completamente a los términos de MA. Es decir, cuando ajusto sus datos solo con términos AR, el ARMA de la serie diferenciada y ARIMA están de acuerdo.
fuente