Para responder a sus preguntas, que, básicamente, se necesita saber cómo los residuos decir $e_t$ se calculan en un arma
modelo. Porque, a continuación,$\hat{X_{t}}=X_{t}-e_{t}$. Primero vamos a generar una falsificación de datos ($X_t$) de arima(.5,.6)
y ajuste el arma
modelo (sin media):
> library(stats)
> 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
Ahora creo que los residuos de la siguiente manera: $e_1=0$ (ya que no hay ningún residuo en 1) y para $t=2,...,n$ tenemos: $e_t=X_t-Ar*X_{t-1}-Ma*e_{t-1}$ donde $Ar$ $Ma$ el estimado de auto-regresivo y de media móvil parte en el anterior modelo ajustado. Aquí está el código:
> 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]
+ }
Una vez que usted encuentre los residuos $e_{t}$, los valores ajustados son sólo $\hat{X_{t}}=X_{t}-e_{t}$. Así que en la siguiente, he comparado los primeros 10 valores ajustados obtenidos a partir de R y con los que se puede calcular a partir de $e_{t}$ I creado anteriormente (es decir, manualmente).
> 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
Como se puede ver hay cerca, pero no exactamente la misma. La razón es que cuando creé los residuos fijé $e_{1}=0$. Hay otras opciones, aunque. Por ejemplo, basado en el archivo de ayuda a arima
, los residuos y su varianza encontrada por un filtro de Kalman y por lo tanto su cálculo de $e_t$ será ligeramente diferente de mí. Pero a medida que pasa el tiempo son convergentes.
Ahora para la Ar(1) del modelo. He ajustado el modelo (sin media) y directamente mostrará cómo calcular los valores ajustados utilizando los coeficientes. Esta vez no me calcular los residuos. Nota que informó de los primeros 10 valores ajustados extracción de la primera (como la otra vez iba a ser diferente dependiendo de cómo se defina). Como se puede ver, están completamente el mismo.
> 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