library(fpp2)
## Loading required package: ggplot2
## Loading required package: forecast
## Loading required package: fma
## Loading required package: expsmooth
library(gridExtra)
library(readxl)
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(ggplot2)
library(forecast)
library(ggfortify)
library(fma)
library(AER)
## Loading required package: car
## Loading required package: carData
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
library(urca)

Ejercicio 1

  1. Breve descripción de la serie elegida, así como su frecuencia, unidad de medida, fuente, etc.

Se eligió como serie “El gasto mensual en apuestas en Victoria Australia” en el periodo de julio de 1999 a noviembre del 2006, con una frecuencia mensual, unidad de medida millones de dolares por día.
La fuente es: https://datamarket.com/data/set/22m8/monthly-gambling-expenditure-in-victoria-australia-july-1999-to-november-2006-units-are-millions-of-dollars-per-day-smoking-ban-introduced-in-gaming-venues-in-september-2002#!ds=22m8&display=line

Datos <- read.csv("juegoAustralia.csv") 
st <- ts(Datos$Monthlygambling,frequency =12,start = c (1999,7))
plot(st,col="purple",ylab="Millones de dólares",xlab="Años",lwd=.5,main="Gasto Mensual de Apuestas en Victoria Australia (1999-2006)",type="l",pch=5)

Ejercicio 2

  1. Graficar los datos, analizar patrones y observaciones atípicas. Apoye su análisis con una descomposición clásica.
fit <- decompose(st, type='additive')
autoplot(fit)+xlab("Años") + ylab("Millones de dólares") +
ggtitle("Gasto Mensual de Apuestas en Victoria Australia (1999-2006)")
## Warning: attributes are not identical across measure variables;
## they will be dropped
## Warning: Removed 24 rows containing missing values (geom_path).

ggseasonplot(st,ylab="Millones de dólares",xlab="Años")

ggseasonplot(st, polar=TRUE)

Se puede observar que no hay componente estacional, esto se refleja en las dos gráficas anteriores, ya que no hay una super posición en los datos de la serie anual.

Ejercicio 3

  1. Si es necesario, utilizar transformación Box-Cox / logaritmos para estabilizar la varianza.
plot((st^0.7-1)/0.7)

plot(diff(sqrt(st)))

bo<-BoxCox.ar(st)
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1

Aplicando la función Box-Cox, obtenemos que el intervalo a 95% para \(\lambda\) contiene el valor de \(\lambda=0.7\) lo cual sugiere una trasformación \(g(x)=\frac{x^{0.7}-1}{0.7}\) Al aplicar la transformación y la diferencia se obtiene la serie estacionaria.

Ejercicio 5

5.Usar prueba Dickey-Fuller para evaluar el orden de integración de la serie. Diferenciar hasta que la serie sea estacionaria.

ur.df(st)
## 
## ############################################################### 
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test # 
## ############################################################### 
## 
## The value of the test statistic is: -1.2715

Ejercicio 6

  1. Usar herramientas ACF, PACF, EACF y criterios de Akaike/ Bayes para construir propuestas de modelos.
DF<-diff((st^0.7-1)/0.7)
par(mfrow=c(1,2))
acf(DF,main="Funcion de Autocorrelación",lag(500))
pacf(DF,main="Función de Autocorrelación parcial",lag(500))

eacf(DF)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 o o o o o o o o o o o  o  o  o 
## 1 o o o o o o o o o o o  x  o  o 
## 2 x o o o o o o o o o o  o  o  o 
## 3 x o o o o o o o o o o  x  o  o 
## 4 x x x o o o o o o o o  x  o  o 
## 5 x x o x o o o o o o o  x  o  o 
## 6 x x o x o o o o o o o  x  o  o 
## 7 o x x o o o o o o o o  o  o  o

De acuerdo a los resultados mostrados por la funciones: ACF, PACF Y EAPCF, el modelo que nos sugiere usar es un modelo ARMA (1,0,1).

Aplicando los criterios de Akaike/Bayes para determinar que modelo usar.

residuo<- armasubsets(y=DF,nar=14,nma=14,ar.method = "ols")
## Warning in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax,
## force.in = force.in, : 13 linear dependencies found
## Reordering variables and trying again:
plot(residuo)

#Ejercicio 7

  1. Como parte del diagnóstico del modelo, analizar los residuos y aplicar la prueba Ljung-Box.
modelo1<-arima(DF,order = c(1,0,1))
tsdiag(modelo1)

checkresiduals(modelo1)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,0,1) with non-zero mean
## Q* = 26.071, df = 15.4, p-value = 0.0431
## 
## Model df: 3.   Total lags used: 18.4
modelo2<-arima(DF,order = c(1,1,1))
tsdiag(modelo2)

checkresiduals(modelo2)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,1)
## Q* = 27.754, df = 16.4, p-value = 0.03901
## 
## Model df: 2.   Total lags used: 18.4

Los modelos propuestos pasan la prueba de Ljung Box lo que indica que son adecuados para describir la serie

Ejercicio 8

  1. Usar la función auto.arima() y compare sus resultados con el inciso anterior.
autST<-auto.arima(DF)

La funcion auto.arima() sugiere un modelo arma(1,0,0) que era lo que se habia encontrado en el inciso anterior #Ejercicio 9

Ejercicio 10

  1. Crear un pronóstico a dos años.
pronostico<-forecast(autST,24)
plot(pronostico)