















































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Ejercicio de modelo ARMA con órdenes p y q
Tipo: Ejercicios
1 / 55
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
















































Se importa la base de datos Tipos de interés interbancario a un año medido mensualmente, se le quita la tendencia y se estabiliza la varianza marginal, y al final trabajar con la serie de retornos.
library(TSA)
library(lmtest)
library(forecast)
library(tseries) tipos88 <- read.table("C:/Users/dsilv/OneDrive/Escritorio/UNAL/Series de tiempo/Datos/tipos88.dat", quot Intanual=tipos88$V plot(as.ts(Intanual),ylab="Interes anual",main="Serie del interes anual")
camrelintanual=log(Intanual[2:length(Intanual)]/Intanual[1:(length(Intanual)-1)]) sercamrelint=ts(camrelintanual,start=c(1988,01),frequency=12) plot(sercamrelint,main="Serie de retornos")
Se ve que parce haber auntocorrelación lineal parcial con el tercer rezago, asi se podria ajustar hasta tres parámetros autoregresivos.
acf(sercamrelint,ci.type='ma',lag.max = length(sercamrelint)/4) ##Rezago máximo q=
Se ve que hay autocorrelación lineal hasta el rezago cuatro, por ende se puede ajustar un modelo de promedios móviles hasta con cuatro parametros.
Se ajustan los diferentes modeos con el fin de comparar sus criterios de información.
ARPURO=Arima(sercamrelint,order=c(3,0,0),include.mean = TRUE) #AR MAPURO=Arima(sercamrelint,order=c(0,0,4),include.mean = TRUE) #MA ARMAMIXTO=Arima(sercamrelint,order=c(3,0,4),include.mean = TRUE) #ARMA ci_AR=summary(ARPURO) ci_MA=summary(MAPURO) ci_ARMAMIXTO=summary(ARMAMIXTO) CI=data.frame("Modelo"=c("AR(3)","MA(4)","ARMA(3,4)"), "AIC"=c(round(ci_AR$aic,2),round(ci_MA$aic,2),round(ci_ARMAMIXTO$aic,2)), "AICC"=c(round(ci_AR$aicc,2),round(ci_MA$aicc,2),round(ci_ARMAMIXTO$aicc,2)), "BIC"=c(round(ci_AR$bic,2),round(ci_MA$bic,2),round(ci_ARMAMIXTO$bic,2))) CI
Se ve que el AR(3) es el modelo cuyos criterios de información son menores. Asi que en principio serie el modelo a escoger, faltaria mirar la capacidad predictiva.
acf(residuales)
pacf(residuales)
Los residuales no evidencia autocorrelación lineal, aunque en la autocorrelación parcial hay algun valor que parece significativo. Ahora se mira la autocorrelación lineal con los residuales al cuadrado.
acf(residualesˆ2)
Normalidad
tseries::jarque.bera.test(residuales)
No hay evidencia significativa para rechazar la hipotesis de normalidad de los residuales.
Pruebas de estabilidad
Se hacen las pruebas de estabilidad de parametros y de varianza basados en las sumas de cuadrados CUSUM.
res=residuales cum=cumsum(res)/sd(res) N=length(res) cumq=cumsum(resˆ2)/sum(resˆ2) Af=0.948 ###Cuantil del 95% para la estad?stica cusum co=0.12531 ####Valor del cuantil aproximado para cusumsq para n/ LS=Afsqrt(N)+2Af*c(1:length(res))/sqrt(N) LI=-LS LQS=co+(1:length(res))/N LQI=-co+(1:length(res))/N plot(cum,type="l",ylim=c(min(LI),max(LS)),xlab="t",ylab="",main="CUSUM")+ lines(LS,type="S",col="red")+ lines(LI,type="S",col="red")
Vemos que los residuales están dentro de las bandas de confianza por ende hay estabilidad en los parametros. Ahora se hace la suma con los errores al cuadrado.
plot(cumq,type="l",xlab="t",ylab="",main="CUSUMSQ")+ lines(LQS,type="S",col="red")+ lines(LQI,type="S",col="red")
time(sercamrelint)[ntrain] ###Me entrega la ultima fecha de la posici?n ntrain
train=window(sercamrelint,end=c(1999,4)) test=window(sercamrelint,start=c(1999,5)) length(train)
ntest=length(test) ntest
fcmat=matrix(0,nrow=ntest,ncol=h) W=window(sercamrelint,end=c(1999,4)) fitAR=Arima(W,order=c(3,0,0),include.mean = FALSE,fixed=c(NA,0,NA),method = c("CSS-ML")) for (i in 1:ntest){ x=window(sercamrelint,end=c(1999,4)+(i-1)/12) #forma de avanzar mensualmete print(length(x)) refit=Arima(x,order=c(3,0,0),include.mean = FALSE,model = fitAR,method = c("CSS-ML")) fcmat[i,]=test[i]-forecast(refit,h=h)$mean }
fcmat
residuales=MAPURO_fixed$residuals plot(residuales)
acf(residuales)
pacf(residuales)
Hay algunos valores que se salen por ende aplicamos un test para poder rectificar la hipotesis de no autocorrelación en los residuales.
length(residuales)/
sqrt(length(residuales))
sqrt(length(residuales))
Box.test(residuales, lag =20 , type = "Ljung-Box", fitdf = 2)
No hay evidencia significativa para rechazar la hipotesis de no autocorrelación en los residuales.
Normalidad
tseries::jarque.bera.test(residuales)
No hay evidencia significativa para rechazar la hipotesis de normalidad de los residuales.
Pruebas de estabilidad
Se hacen las pruebas de estabilidad de parametros y de varianza basados en las sumas de cuadrados CUSUM.
res=residuales cum=cumsum(res)/sd(res) N=length(res) cumq=cumsum(resˆ2)/sum(resˆ2) Af=0.948 ###Cuantil del 95% para la estad?stica cusum co=0.12531 ####Valor del cuantil aproximado para cusumsq para n/ LS=Afsqrt(N)+2Af*c(1:length(res))/sqrt(N) LI=-LS LQS=co+(1:length(res))/N LQI=-co+(1:length(res))/N plot(cum,type="l",ylim=c(min(LI),max(LS)),xlab="t",main="CUSUM")+ lines(LS,type="S",col="red")+ lines(LI,type="S",col="red")