library(readxl)
## Warning: package 'readxl' was built under R version 3.4.4
library(forecast)
## Warning: package 'forecast' was built under R version 3.4.4
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.4.4
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 3.4.4
library(fpp2)
## Warning: package 'fpp2' was built under R version 3.4.4
## Loading required package: fma
## Warning: package 'fma' was built under R version 3.4.4
## Loading required package: expsmooth
## Warning: package 'expsmooth' was built under R version 3.4.4
library(TSA)
## Warning: package 'TSA' was built under R version 3.4.4
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library(readxl)
library(readxl)
Transmetro <- read_excel("C:/Users/Luis/Desktop/Transmetro.xls")
View(Transmetro)
Se seleccion el Recorrido a miles de kilometros del transmetro de la Ciudad de Monterrey en un periodo de diez años (2008-2018)
st<-ts(Transmetro$Km,frequency=12,start=c(2010,03))
plot(st,col="deeppink4",ylab="Km Recorridos",xlab="Años",lwd=.5,main="Km recorridos transmetro MTY",type="l",pch=7)
monthplot(st)
fit<-decompose(st)
plot(fit,col="magenta4",ylab="eje y",xlab="Años",lwd=.5,type="l",pch=9)
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.
Con base en la gráfica de la estacionalidad se puede apreciar que la serie no es estacional en el número de Km recorridos, lograr coincidir en el mes de abril la mayoria de los años, pero no sé lográ percatar una estacionalidad.
ggseasonplot(st)
Fuente: http://www.inegi.org.mx/sistemas/bie/
p1<-autoplot(st, series="Km")+autolayer(ma(st,3),series="3-MA")+xlab("Años")+ylab("Km recorridos")+ggtitle("Km recorridos transmetro MTY")
p2<-autoplot(st, series="Km")+autolayer(ma(st,5),series="5-MA")+xlab("Años")+ylab("Km recorridos")+ggtitle("Km recorridos transmetro MTY")
p3<-autoplot(st, series="Km")+autolayer(ma(st,7),series="7-MA")+xlab("Años")+ylab("Km recorridos")+ggtitle("Km recorridos transmetro MTY")
p4<-autoplot(st, series="Km")+autolayer(ma(st,9),series="9-MA")+xlab("Años")+ylab("Km recorridos")+ggtitle("Km recorridos transmetro MTY")
grid.arrange(p1,p2,p3,p4)
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 4 rows containing missing values (geom_path).
## Warning: Removed 6 rows containing missing values (geom_path).
## Warning: Removed 8 rows containing missing values (geom_path).
fit2<-decompose(st, type = "additive")
autoplot(fit2)
La gráfica menciona que existe estacionalidad pero para comprobar se realizará la gráfica de datos estacionalmente ajustados.
autoplot(st, series="Km")+autolayer(seasadj(fit), series="Seasonally adj. data") +xlab("Años") + ylab("Km recorridos")+ggtitle("Km recorridos transmetro MTY")
De esta manera no podemos hacer una comparación razonable ya que la serie no es estacional por lo tanto no puede ser desestacionalizada y las observaciones se distribuyen de la misma manera, es decir, que la serie esté dentro del patrón, tendencia- ciclo.
mes. <- season(st)
modelo1 <- lm(st ~ mes. + time(st) + I(time(st)^2))
summary(modelo1)
##
## Call:
## lm(formula = st ~ mes. + time(st) + I(time(st)^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -140.471 -21.568 0.636 27.128 94.576
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.070e+07 2.262e+06 -9.152 2.99e-15 ***
## mes.February 9.940e+00 2.284e+01 0.435 0.664
## mes.March 1.478e+00 2.234e+01 0.066 0.947
## mes.April -3.233e+01 2.233e+01 -1.448 0.151
## mes.May -5.725e+00 2.233e+01 -0.256 0.798
## mes.June -1.629e+01 2.233e+01 -0.729 0.467
## mes.July -1.524e-01 2.233e+01 -0.007 0.995
## mes.August -1.104e+01 2.233e+01 -0.495 0.622
## mes.September -4.980e+00 2.284e+01 -0.218 0.828
## mes.October -7.876e+00 2.284e+01 -0.345 0.731
## mes.November -2.167e+01 2.284e+01 -0.949 0.345
## mes.December 1.643e+01 2.284e+01 0.719 0.473
## time(st) 2.053e+04 2.244e+03 9.146 3.08e-15 ***
## I(time(st)^2) -5.089e+00 5.568e-01 -9.140 3.18e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 51.06 on 112 degrees of freedom
## Multiple R-squared: 0.6088, Adjusted R-squared: 0.5634
## F-statistic: 13.41 on 13 and 112 DF, p-value: < 2.2e-16
La regresión será la que unicamente el intercepto es estadisticamente signifiativo pero ninguno de los meses lo es, por lo tanto la serie no es una serie que pueda ser explicada en el tiempo
Por lo que refleja no existe estacionalidad en la serie conforme a los meses. Febrero es el coeficiente más alto de la serie y guardan una relacion negativa con el intercepto de 9.9% respectivamente la disminución de -2.07%
En promedio las medias estacionales explican en .56 la variacion el n??mero de Kilometros recorridos segun el resultado de la R cuadrada.
plot(y=rstandard(modelo1), x=time(st), type='l')
Esta es la gráfica de la regresión con media ajustada de la serie de Kilómetros recorridos del transmetro en la Cd. de Monterrey
qqnorm(rstandard(modelo1)); qqline(rstandard(modelo1))
ggAcf(rstandard(modelo1))
Estas dos gráficas muestran el grado de la correlacion que guardan los coeficientes estimados en la regresion. Podemos observar que el los primeros años y los ultimos años serán los momentos en los que los errores se salen de la media 0.
El gráfico de Q-q normal ratifica la conclusión anterior, ya que los valores observados no se situan sobre la recta esperada. Podemos observar que al inicio se muestra una gran magnitud de correlación.
hist(rstandard(modelo1))
La distribución de los errores no mantienen una normalidad como podemos observar con la curtosis no tiene una forma normal de campana sin embargo, también se concentran más hacia la derecha.
shapiro.test(rstandard(modelo1))
##
## Shapiro-Wilk normality test
##
## data: rstandard(modelo1)
## W = 0.91484, p-value = 7.257e-07
El valor de P es menor a 0.05 por lo que los errores no mantienen una distribucion de normalidad por lo que se rechazada la hipotesis nula del componente estocastico. Por lo tanto esté serie no puede ser explicada conforme al tiempo y no prsesenta estacionariedad.
\[ KmRecorridos=\beta_0+\beta_1tiempo+\beta_2meses^2+U \]