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(gridExtra)
library(readxl)
library(readxl)
library(urca)
library(readxl)
Transmetro <- read_excel("Transmetro.xlsx")
View(Transmetro)

EJERCICIO 1.

Breve descripcion de la serie elegida, asi como su frecuencia, unidad de medida, fuente, etc.

La serie temporal elegida es el Recorrido a miles de kilometros del transmetro de la Ciudad de Monterrey, con una frecuecia mensual en un periodo de diez a??os (2008-2018)

EJERCICIO 2.

Graficar los datos, analizar patrones y observaciones atipicas. Apoye su analisis con una descomposicion clasica.

km<-ts(Transmetro$Km,frequency=12,start=c(2010,03))
plot(km,col="deeppink4",ylab="Km Recorridos",xlab="A??os",lwd=.5,main="Km recorridos transmetro MTY",type="l",pch=7)

Declaracion de la serie y comportamiento original del numereo de miles de kilometros recorridos en el transmetro en la ciudad de Monterrey.

monthplot(km,col="magenta",ylab="Km Recorridos",xlab="A??os",lwd=.5,main="Km recorridos transmetro MTY",type="l",pch=7)

Se muestra el comportamiento de la serie de manera mensual, podemos decir que desde este punto la serie muestra bastante irregular.

fit<-decompose(km)
plot(fit,col="magenta4",ylab="eje y",xlab="Años",lwd=.5,type="l",pch=9)

Revision extensa de la descomposicion clasica de la serie del numero de miles de kilometros recorridos en el transmetro en la ciudad de Monterrey.(2008-2018)

La serie muestra una tendencia creciente o positiva muy pronunciada los kilometros recorridos de el transmetro de la Cd. de Monterrey durante el a??o 2011, alcanzando ese punto maximo la tendencia ya es menor en los siguientes a??os.

En la ??ltima grafica (random) podemos apreciar que las variables que construyen la serie son independientes, aleatorias e identicamente distribuidas.

EJERCICIO 3.

Si es necesario, utilizar transformacion Box-Cox / logaritmos para estabilizar la varianza

p01<-autoplot(km)
p02<-autoplot(log(km))
grid.arrange(p01,p02)

De acuerdo al grafico se observa, que la aplicacion de logaritmos no fue suficiente para estabilizar la varianza de la serie. En este caso se tiene que aplicar la diferencia de logaritmos para poder estabilizarla.

plot(km,type="l")

plot(log(km), type="l")

tasa<-na.omit((km-zlag(km))/zlag(km))
plot(diff(log(km)), type = "l")

cor(diff(log(km))[-1],tasa[-1])
## [1] 0.9838981

Al aplicar la diferencia a los logaritmos se puede observar que el comportamiento de la serie se vuelve estacionaria, aunque tiene una variacion pronunciada en los años en el año 2011 pero en general, se observar con claridad el comportamiento estacionario.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BoxCox.ar(km,lambda = seq(-5,1.8,5))
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1

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

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

El primer grafico indica el punto maximo que alcanza el 95% de nivel de confianza y el segundo grafico se comprueba al incluir los parametros.

plot(diff(log(km))^2,type="l")

Se elevo la serie al cuadrado segun la prueba Box.Cox para estabilizarla, y podemos observar que en la mayoria de los años esta cercanos a cero, es decir se estabiliza la varianza.

EJERCICIO 4.

En caso de estacionalidad, aplicar diferencias estacionales.

En este caso como la serie de número de miles de kilometros en el trasmetro en MTY no presenta comportamiento estacional, por lo tanto no se podria aplicar diferencias estacionales.

EJERCICIO 5.

Usar prueba Dickey-Fuller para evaluar el orden de integracion de la serie. Difereniar hasta que la serie sea estacionaria.

summary(ur.df(km))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -54.683 -10.250  -0.379  11.073 219.405 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## z.lag.1     0.003156   0.005664   0.557  0.57836   
## z.diff.lag -0.271977   0.087511  -3.108  0.00234 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 27.81 on 122 degrees of freedom
## Multiple R-squared:  0.07389,    Adjusted R-squared:  0.05871 
## F-statistic: 4.867 on 2 and 122 DF,  p-value: 0.009253
## 
## 
## Value of test-statistic is: 0.5573 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62

Rechaza la hipotesis nula por lo tanto no existe raiz unitaria en la serie.

EJERCICIO 6.

Usar herramientas ACF, PACF, EACF y criterios de Akaike/ Bayes para construir propuestas de modelos.

km<- log(km)
ggtsdisplay(diff(km,12))

ggtsdisplay(diff(km,1))

EJERCICIO 7.

Como parte del diagn??stico del modelo, analizar los residuos y aplicar la prueba Ljung-Box

PROPUESTA MODELO NO.1

fit01<-Arima(km, order=c(0,0,1), seasonal=c(1,0,0))
fit01
## Series: km 
## ARIMA(0,0,1)(1,0,0)[12] with non-zero mean 
## 
## Coefficients:
##          ma1    sar1    mean
##       0.8435  0.4349  6.0011
## s.e.  0.0437  0.1552  0.0494
## 
## sigma^2 estimated as 0.02626:  log likelihood=50.21
## AIC=-92.42   AICc=-92.09   BIC=-81.08
checkresiduals(fit01)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,0,1)(1,0,0)[12] with non-zero mean
## Q* = 229.87, df = 21, p-value < 2.2e-16
## 
## Model df: 3.   Total lags used: 24

PROPUESTA MODELO NO.2

fit02<-Arima(km, order=c(0,1,0), seasonal=c(2,0,0))
fit02
## Series: km 
## ARIMA(0,1,0)(2,0,0)[12] 
## 
## Coefficients:
##         sar1    sar2
##       0.3233  0.3212
## s.e.  0.1541  0.1581
## 
## sigma^2 estimated as 0.006689:  log likelihood=133.75
## AIC=-261.49   AICc=-261.29   BIC=-253.01
checkresiduals(fit02)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,0)(2,0,0)[12]
## Q* = 17.457, df = 22, p-value = 0.7376
## 
## Model df: 2.   Total lags used: 24

PROPUESTA MODELO NO.3

fit03<-Arima(km, order=c(1,1,0), seasonal=c(1,1,0))
fit03
## Series: km 
## ARIMA(1,1,0)(1,1,0)[12] 
## 
## Coefficients:
##          ar1     sar1
##       0.0509  -0.4143
## s.e.  0.0939   0.1659
## 
## sigma^2 estimated as 0.007146:  log likelihood=118.73
## AIC=-231.47   AICc=-231.25   BIC=-223.29
checkresiduals(fit03)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,0)(1,1,0)[12]
## Q* = 19.385, df = 22, p-value = 0.6214
## 
## Model df: 2.   Total lags used: 24

Las propuestas realizadas podemos observar que la ultima opcion es probable que el modelo ARIMA sea la mejor opcion.

EJERCICIO 8.

Usar la funcion auto.arima() y compare sus resultados con el inciso anterior.

Autoarima<- auto.arima(km,stepwise=FALSE, approximation=FALSE)
Autoarima
## Series: km 
## ARIMA(0,1,0)(2,0,0)[12] 
## 
## Coefficients:
##         sar1    sar2
##       0.3233  0.3212
## s.e.  0.1541  0.1581
## 
## sigma^2 estimated as 0.006689:  log likelihood=133.75
## AIC=-261.49   AICc=-261.29   BIC=-253.01
checkresiduals(Autoarima)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,0)(2,0,0)[12]
## Q* = 17.457, df = 22, p-value = 0.7376
## 
## Model df: 2.   Total lags used: 24

Como podemos ver la propuesta del modelo autoarima coindicen en el propuesta 2, se rechaza la hipotesis nula por lo que se concluye que no hay autocorrelación serial.

EJERCICIO 9.

Presente la ecuacion final y describa.

\[ Y_(t)= \Phi (0.3204)_{et-1}+ \Phi (-0.3708)_{et-2}+e_t \]

EJERCICIO 10.

Crear un promositco a dos a??os

pronostico <- plot(forecast(Autoarima,h=24))

pronostico
## $mean
##           Jan      Feb      Mar      Apr      May      Jun      Jul
## 2020                                                               
## 2021 6.098404 6.098998 6.105401 6.070767 6.103618 6.081221 6.108295
## 2022 6.091444 6.088974 6.094098 6.081756 6.091854 6.083078 6.099270
##           Aug      Sep      Oct      Nov      Dec
## 2020          6.110696 6.115676 6.100016 6.126684
## 2021 6.092104 6.094132 6.095095 6.087213 6.111626
## 2022 6.084716                                    
## 
## $lower
##               80%      95%
## Sep 2020 6.005881 5.950395
## Oct 2020 5.967445 5.888976
## Nov 2020 5.918471 5.822367
## Dec 2020 5.917054 5.806082
## Jan 2021 5.864030 5.739960
## Feb 2021 5.842254 5.706343
## Mar 2021 5.828086 5.681285
## Apr 2021 5.774305 5.617368
## May 2021 5.789172 5.622715
## Jun 2021 5.749767 5.574306
## Jul 2021 5.760663 5.576638
## Aug 2021 5.729014 5.536806
## Sep 2021 5.705454 5.499699
## Oct 2021 5.682411 5.463949
## Nov 2021 5.651845 5.421375
## Dec 2021 5.654699 5.412816
## Jan 2022 5.613931 5.361151
## Feb 2022 5.591725 5.328498
## Mar 2022 5.577868 5.304593
## Apr 2022 5.547219 5.264253
## May 2022 5.539616 5.247279
## Jun 2022 5.513689 5.212273
## Jul 2022 5.513232 5.203002
## Aug 2022 5.482489 5.163689
## 
## $upper
##               80%      95%
## Sep 2020 6.215511 6.270997
## Oct 2020 6.263907 6.342375
## Nov 2020 6.281562 6.377666
## Dec 2020 6.336314 6.447285
## Jan 2021 6.332778 6.456848
## Feb 2021 6.355741 6.491653
## Mar 2021 6.382715 6.529517
## Apr 2021 6.367229 6.524166
## May 2021 6.418063 6.584520
## Jun 2021 6.412676 6.588137
## Jul 2021 6.455928 6.639953
## Aug 2021 6.455194 6.647402
## Sep 2021 6.482811 6.688566
## Oct 2021 6.507780 6.726241
## Nov 2021 6.522581 6.753051
## Dec 2021 6.568552 6.810435
## Jan 2022 6.568958 6.821738
## Feb 2022 6.586222 6.849449
## Mar 2022 6.610327 6.883603
## Apr 2022 6.616293 6.899260
## May 2022 6.644092 6.936429
## Jun 2022 6.652467 6.953883
## Jul 2022 6.685308 6.995537
## Aug 2022 6.686943 7.005743

El pronostico muestra que la serie mantendrá un comportamiento constante por lo que es probable (95%) que en los proximos 2 años el número de miles de kilometros recorridos por el transmetro de la ciudad de Monterrey no tendra una variacion significativa.