4 votos

rollapply con el modelo Arima: comprobación de la estabilidad de los coeficientes

Estoy tratando de ajustar un modelo arima en una ventana móvil usando rollapply.Mi objetivo es trazar un gráfico de la evolución del coeficiente, trazar el error y la desviación estándar. Pues bien, me he encontrado con los siguientes problemas:

1) cada ventana en el rollo de aplicar tienen diferentes conjuntos de coeficientes: básicamente cuando trazo auto.arima()$coef[1] en el tiempo podría ser ar1 o ma1 o cualquier cosa.La razón por la que estoy haciendo esto es que trazar la estabilidad del coeficiente permite juzgar la estabilidad del coeficiente y evaluar la exactitud del modelo.

getSymbols("ICICIBANK.NS")
ICICIBANK.NS<-as.data.frame(ICICIBANK.NS)
ICICIBANK.NSreturns<-c(NA,diff(log(ICICIBANK.NS$ICICIBANK.NS.Adjusted)))
z<-ICICIBANK.NS$returns
z<-na.omit(z)
y<-rollapply(as.zoo(z),width=100,FUN=function(x) auto.arima(x)$coef[1])

Básicamente estoy tratando de ver la evolución del primer coeficiente, pero el modelo cambia de una ventana a otra.

¿Alguien tiene una idea de cómo resolver esto? o tal vez alguna pista en la que pueda trabajar?

2) cuando hago auto.arima a los retornos de los logaritmos obtengo un ARIMA(0,0,0) y cuando lo punteo para los precios brutos en bruto obtengo ARIMA(3,1,3):

getSymbols("ICICIBANK.NS");
ICICIBANK.NS<-as.data.frame(ICICIBANK.NS)
ICICIBANK.NSreturns<-c(NA,diff(log(ICICIBANK.NS$ICICIBANK.NS.Adjusted)))
auto.arima(ICICIBANK.NS$returns)

Series: ICICIBANK.NS$returns 
ARIMA(0,0,0) with zero mean     

sigma^2 estimated as 0.003309:  log likelihood=3042.76
AIC=-6083.51   AICc=-6083.51   BIC=-6077.86

auto.arima(ICICIBANK.NS$ICICIBANK.NS.Adjusted)

Series: ICICIBANK.NS$ICICIBANK.NS.Adjusted 
ARIMA(3,1,3) with drift         

Coefficients:
         ar1      ar2     ar3      ma1     ma2      ma3   drift
      0.0741  -0.0998  0.5626  -0.0572  0.0662  -0.8633  0.1087
s.e.  0.0306   0.0323  0.0279   0.0192  0.0200   0.0159  0.0606

sigma^2 estimated as 77.62:  log likelihood=-7610.48
AIC=15236.96   AICc=15237.02   BIC=15282.22

¿por qué auto.arima() funciona con los precios y no con los retornos de los registros?

4voto

ARKBAN Puntos 1388

Hay un par de problemas con su ejemplo. En primer lugar, para este ticker, hay un problema con los datos de precios de Yahoo para el período 2014-11-26 a 2014-12-03 en el que los precios caen alrededor del 80% y luego vuelven a su línea de tendencia. Esto parece estar relacionado con una división de acciones que Yahoo no está manejando correctamente y no es real. Su causando parte de su problema con los cálculos arima. También para conseguir que los resultados de arima para los precios y los retornos coincidan, necesitas comparar los resultados con ambos log o ambos no log pero no mezclados. Para los datos logarítmicos, el modelo de precios es (2,1,2) y el modelo de rendimientos es (2,0,2) con los mismos coeficientes, que es lo que debería esperar. Por último, puede mirar los gráficos de acf para los rendimientos y observar que no muestran ninguna autocorrelación significativa, por lo que no debe esperar demasiado de los resultados de arima para fines de predicción. Si está buscando cambios en el comportamiento de la acción, podría empezar por trazar los cambios en la media a lo largo de una ventana móvil. El código relacionado con estos comentarios es el siguiente:

library(quantmod)
library(forecast)

ICICIBANK.NS <- getSymbols("ICICIBANK.NS", auto.assign=FALSE)[,6]
ICICIBANK.NSreturns <- diff(ICICIBANK.NS, log=TRUE, na.pad=FALSE) 
big_ret <- which(abs(ICICIBANK.NSreturns)>.5)   # finds erroneously large returns at start and end of period with bad data
bad_rows <- (big_ret[1]+1):(big_ret[2])
bad_data <- ICICIBANK.NS[bad_rows]
ICICIBANK.NS  <-  ICICIBANK.NS[-bad_rows,]
ICICIBANK.NSreturns <- diff(ICICIBANK.NS, log=TRUE, na.pad=FALSE) 
ar_prices <- auto.arima(log(ICICIBANK.NS))
ar_returns <- auto.arima(ICICIBANK.NSreturns)
acf(ICICIBANK.NSreturns)
mean_returns <- rollmean(ICICIBANK.NSreturns, k=100)
plot(mean_returns)

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X