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)
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)
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.
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.
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.
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.
km<- log(km)
ggtsdisplay(diff(km,12))
ggtsdisplay(diff(km,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
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
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.
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.
\[ Y_(t)= \Phi (0.3204)_{et-1}+ \Phi (-0.3708)_{et-2}+e_t \]
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.