Manejo de series de tiempo

Cargamos las librerias a usar

library(ggplot2)
library(rmarkdown)
library(fpp2)
library(forecast)
library(timeDate)

Cargamos las bases de datos, para esto, se procede primero a obtener el enlace url de la pĂĄgina o repositorio en donde se encuentra almacenada la base, para luego asignarla a un nuevo objeto de la siguiente manera:

Base 1
url2 <- "https://raw.githubusercontent.com/pablogaibor/ESPE/main/depositosBP.csv"
depositosBP <- read.csv(url2,header = T,sep = ",")
vista.ts<-ts(depositosBP[,4],frequency=12,start=c(2006,12),end=c(2014,12)) 

Operador de rezagos

La funciĂłn lag() construye una versiĂłn desfasada de la serie temporal, retardando (o adelantando) los valores de la serie en la magnitud de la desfase especificada. Concretamente:

\(lag(X_t,k)=X_(t+k)\)

Si no se especifica, el valor del desfase por defecto es 1.

A modo de ejemplo, mostramos seguidamente el efecto de desfasar en uno y dos meses (hacia delante y hacia atrĂĄs) la serie de depĂłsitos a la vista de un banco comercial:

head(cbind(lag(vista.ts,-2),lag(vista.ts,-1), vista.ts,lag(vista.ts),lag(vista.ts,2)))
##          lag(vista.ts, -2) lag(vista.ts, -1) vista.ts lag(vista.ts)
## Oct 2006                NA                NA       NA            NA
## Nov 2006                NA                NA       NA       1869132
## Dec 2006                NA                NA  1869132       1828284
## Jan 2007                NA           1869132  1828284       1793480
## Feb 2007           1869132           1828284  1793480       1802139
## Mar 2007           1828284           1793480  1802139       1884264
##          lag(vista.ts, 2)
## Oct 2006          1869132
## Nov 2006          1828284
## Dec 2006          1793480
## Jan 2007          1802139
## Feb 2007          1884264
## Mar 2007          1906419

Estacionariedad

Visualizamos la serie de tiempo de depĂłsitos a la vista de un Banco Comercial con un grĂĄfico.

autoplot(vista.ts)

Como podemos ovservar, esta serie de tiempo no es estacionaria a primera vista, puesto que sigue una tendencia creciente y su media ya no serĂ­a constante. Para obsrvar una serie de datos estacionaria, podemos descomponer la misma con lo trabajado en clases anteriores. Entonces, realizamos una descomposiciĂłn aditiva.

descomposicion <- vista.ts %>% 
  decompose(type="additive") 
descomposicion
## $x
##          Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep
## 2006                                                                        
## 2007 1828284 1793480 1802139 1884264 1906419 1914654 1927008 1996518 2016049
## 2008 2209341 2205114 2274739 2450095 2447068 2428415 2454923 2627309 2540110
## 2009 2649603 2640097 2579042 2663681 2688717 2621371 2717503 2701678 2673670
## 2010 3040136 3013800 3079857 3191070 3215880 3241045 3260787 3301530 3267198
## 2011 3576321 3707447 3786592 3945072 3898454 3906166 3961259 3953918 3949530
## 2012 4130888 4123876 4256531 4309706 4374381 4265083 4298725 4347211 4293234
## 2013 4562199 4548393 4649187 4650046 4785389 4814330 4773788 4825168 4669571
## 2014 5088041 5126294 5221554 5216026 5225005 5222524 5296446 5398575 5373291
##          Oct     Nov     Dec
## 2006                 1869132
## 2007 2054591 2132280 2265445
## 2008 2686883 2798192 2813439
## 2009 2731358 2789532 3071536
## 2010 3430476 3526268 3729823
## 2011 3880330 3832492 4144093
## 2012 4281588 4296088 4741232
## 2013 4767754 4876321 5351795
## 2014 5361012 5506423 5839022
## 
## $seasonal
##             Jan        Feb        Mar        Apr        May        Jun
## 2006                                                                  
## 2007   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2008   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2009   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2010   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2011   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2012   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2013   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
## 2014   8086.610 -16721.066  11970.863  54905.571  45025.616 -17291.778
##             Jul        Aug        Sep        Oct        Nov        Dec
## 2006                                                        170808.847
## 2007 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2008 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2009 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2010 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2011 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2012 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2013 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 2014 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736 170808.847
## 
## $trend
##          Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep
## 2006                                                                        
## 2007      NA      NA      NA      NA      NA 1943581 1975972 2009000 2045843
## 2008 2222552 2270831 2318950 2367131 2421223 2471803 2512980 2549448 2580252
## 2009 2657888 2671928 2680591 2688009 2689502 2699895 2726921 2758764 2795203
## 2010 2978226 3025856 3075580 3129441 3189268 3247394 3297164 3348407 3406756
## 2011 3640531 3696900 3752513 3799688 3831191 3861212 3901580 3942038 3978970
## 2012 4112568 4143017 4173725 4204765 4240801 4284998 4327850 4363509 4397558
## 2013 4542096 4581805 4617401 4653338 4697772 4747388 4794738 4840728 4888655
## 2014 5052097 5097767 5150980 5205021 5255995 5302550      NA      NA      NA
##          Oct     Nov     Dec
## 2006                      NA
## 2007 2089111 2135215 2179148
## 2008 2601831 2620799 2638907
## 2009 2838044 2881984 2929769
## 2010 3467620 3527477 3583631
## 2011 4013744 4048767 4083552
## 2012 4428100 4459406 4499417
## 2013 4936087 4977986 5013312
## 2014      NA      NA      NA
## 
## $random
##              Jan         Feb         Mar         Apr         May         Jun
## 2006                                                                        
## 2007          NA          NA          NA          NA          NA  -11635.648
## 2008  -21297.136  -48996.105  -56181.933   28058.051  -19180.634  -26095.315
## 2009  -16371.821  -15109.927 -113520.305  -79233.593  -45810.335  -61232.439
## 2010   53823.913    4664.754   -7694.293    6723.919  -18413.126   10942.783
## 2011  -72296.114   27268.185   22107.518   90478.899   22237.040   62246.377
## 2012   10233.135   -2419.532   70835.156   50035.413   88555.012   -2622.794
## 2013   12015.791  -16690.742   19815.611  -58197.714   42591.264   84233.246
## 2014   27856.695   45247.829   58602.710  -43900.513  -76014.759  -62733.967
##              Jul         Aug         Sep         Oct         Nov         Dec
## 2006                                                                      NA
## 2007  -29367.273   -4978.305   67039.803   41983.128   53411.651  -84512.709
## 2008  -38460.753   85364.950   56692.252  161555.017  233739.691    3723.076
## 2009   10178.586  -49582.401  -24698.000  -30183.539  -36105.829  -29041.941
## 2010  -16779.827  -39372.969  -42723.444   39359.362   55137.164  -24616.793
## 2011   79275.865   19383.749   67394.513  -56911.015 -159928.063 -110268.554
## 2012   -9527.991   -8794.743   -7490.027  -70008.963 -106971.059   71006.987
## 2013   -1354.145   -8055.818 -122250.634  -91829.527  -45319.092  167674.396
## 2014          NA          NA          NA          NA          NA          NA
## 
## $figure
##  [1] 170808.847   8086.610 -16721.066  11970.863  54905.571  45025.616
##  [7] -17291.778 -19596.600  -7503.969 -96834.274 -76503.083 -56346.736
## 
## $type
## [1] "additive"
## 
## attr(,"class")
## [1] "decomposed.ts"

Una vez descompuesta la serie de tiempo, podemos trabajar solo con los residuos, que en teorĂ­a, deberĂ­an ser estacionarios.

serie_estacionaria <- descomposicion$random

Ahora, graficamos y visualizamos si la serie es estacionaria.

autoplot(serie_estacionaria)

Ahora tenemos una serie de tiempo estacionaria, al menos visualmente, mĂĄs adelante sabremos cĂłmo determinar si una serie de tiempo es estacionaria o no formalmente.

Ruido Blanco

Para representar el ruido blanco vamos a generar un proceso de este tipo:

n   <-1000
mu  <- 0
sdt <- 2
w <- rnorm(n,mu,sdt)
wn_ts <- ts(w,frequency=12,start=c(1939,11)) 
autoplot(wn_ts)

En el cĂłdigo anterior creamos una serie de tiempo con los siguientes parĂĄmetros: “n” correspondiente al nĂșmero de observaciones “mu” la media del proceso, que en este caso es cero “sdt” la desviaciĂłn estĂĄndar del proceso correspondiente a 2 Luego, generamos un proceso normal con los parĂĄmetros antes mencionados y finalmente los adaptamos al formato de serie de tiempo.

FunciĂłn de AutocorrelaciĂłn (ACF)

Para confirmar que es un ruido blanco el proceso antes generado, podemos utilizar la funciĂłn de autocorrelaciĂłn acf(wn_ts)

acf(wn_ts)

Como se puede observar, los lags del ACF no salen de la banda de confianza, por lo que, grĂĄficamente se puede determinar que es un ruido blanco.

FunciĂłn de AutocorrelaciĂłn Parcial (PACF)

Para confirmar que es un ruido blanco el proceso antes generado, podemos utilizar la funciĂłn de autocorrelaciĂłn parcial pacf(wn_ts)

pacf(wn_ts)

De igual manera, se puede observar que ningĂșn rezago sale fuera de las bandas de confianza, por lo que se confirma que es un ruido blanco.