Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Modelo ARMA ejercicio, Ejercicios de Estudios de Tiempo y Movimiento

Ejercicio de modelo ARMA con órdenes p y q

Tipo: Ejercicios

2022/2023

Subido el 30/05/2023

nataly-quintero-6
nataly-quintero-6 🇨🇴

1 documento

1 / 55

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Quiz ARMA
Nataly Quintero Ardila, David Silva Monroy
2023-05-17
Importación de datos
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)
##
## Attaching package: ’TSA’
## The following objects are masked from ’package:stats’:
##
## acf, arima
## The following object is masked from ’package:utils’:
##
## tar
library(lmtest)
## Loading required package: zoo
##
## Attaching package: ’zoo’
## The following objects are masked from ’package:base’:
##
## as.Date, as.Date.numeric
library(forecast)
## Registered S3 method overwritten by ’quantmod’:
## method from
## as.zoo.data.frame zoo
## Registered S3 methods overwritten by ’forecast’:
## method from
## fitted.Arima TSA
## plot.Arima TSA
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37

Vista previa parcial del texto

¡Descarga Modelo ARMA ejercicio y más Ejercicios en PDF de Estudios de Tiempo y Movimiento solo en Docsity!

Quiz ARMA

Nataly Quintero Ardila, David Silva Monroy

Importación de datos

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)

Attaching package: ’TSA’

The following objects are masked from ’package:stats’:

acf, arima

The following object is masked from ’package:utils’:

tar

library(lmtest)

Loading required package: zoo

Attaching package: ’zoo’

The following objects are masked from ’package:base’:

as.Date, as.Date.numeric

library(forecast)

Registered S3 method overwritten by ’quantmod’:

method from

as.zoo.data.frame zoo

Registered S3 methods overwritten by ’forecast’:

method from

fitted.Arima TSA

plot.Arima TSA

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")

Serie del interes anual

Time

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")

Series sercamrelint

Lag

ACF

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=

Series sercamrelint

Lag

ACF

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.

Modelos

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

Modelo AIC AICC BIC

1 AR(3) -627.68 -627.31 -612.

2 MA(4) -625.65 -625.13 -606.

3 ARMA(3,4) -622.97 -621.85 -594.

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)

Series residuales

Lag

ACF

pacf(residuales)

Lag

Partial ACF

Series 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)

Jarque Bera Test

data: residuales

X-squared = 0.62858, df = 2, p-value = 0.

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")

CUSUM

t

integer(0)

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")

Sep Oct Nov Dec

1988 1988.667 1988.750 1988.833 1988.

1989 1989.667 1989.750 1989.833 1989.

1990 1990.667 1990.750 1990.833 1990.

1991 1991.667 1991.750 1991.833 1991.

1992 1992.667 1992.750 1992.833 1992.

1993 1993.667 1993.750 1993.833 1993.

1994 1994.667 1994.750 1994.833 1994.

1995 1995.667 1995.750 1995.833 1995.

1996 1996.667 1996.750 1996.833 1996.

1997 1997.667 1997.750 1997.833 1997.

1998 1998.667 1998.750 1998.833 1998.

1999 1999.667 1999.750 1999.833 1999.

2000 2000.667 2000.750 2000.833 2000.

2001 2001.667 2001.750 2001.833 2001.

2002

time(sercamrelint)[ntrain] ###Me entrega la ultima fecha de la posici?n ntrain

## [1] 1999.

train=window(sercamrelint,end=c(1999,4)) test=window(sercamrelint,start=c(1999,5)) length(train)

## [1] 136

ntest=length(test) ntest

## [1] 34

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 }

## Warning in window.default(x, ...): ’end’ value not changed

fcmat

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1]

  • [1] ## Warning in window.default(x, ...): ’end’ value not changed

  • [1,] 0. ## [,1]

  • [2,] 0.

  • [3,] 0.

  • [4,] -0.

  • [5,] 0.

  • [6,] -0.

  • [7,] 0.

  • [8,] -0.

Analisis de residuales MA(4)

residuales=MAPURO_fixed$residuals plot(residuales)

Time

residuales

Residuales no autocorrelacionados

acf(residuales)

Series residuales

Lag

ACF

pacf(residuales)

Series residuales^

Lag

ACF

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)/

## [1] 42.

sqrt(length(residuales))

## [1] 13.

sqrt(length(residuales))

## [1] 13.

Box.test(residuales, lag =20 , type = "Ljung-Box", fitdf = 2)

Box-Ljung test

data: residuales

X-squared = 22.573, df = 18, p-value = 0.

No hay evidencia significativa para rechazar la hipotesis de no autocorrelación en los residuales.

Normalidad

tseries::jarque.bera.test(residuales)

Jarque Bera Test

data: residuales

X-squared = 0.42479, df = 2, p-value = 0.

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")