Análisis básico de series de tiempo
Para este trabajo usare datos de google trends, los datos correpsonden a las busquedas de “Halloween” desde 2004, las busquedas se centran en Estados Unidos:
library(readr)
hal<- read_csv("Halloween2.csv")
## Rows: 214 Columns: 1
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## dbl (1): Halloween
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
hal
## # A tibble: 214 x 1
## Halloween
## <dbl>
## 1 1
## 2 1
## 3 1
## 4 1
## 5 1
## 6 1
## 7 2
## 8 5
## 9 22
## 10 94
## # ... with 204 more rows
Para tratar este vector numerico como una serie de tiempo, utilizaremos el comando ts (time-series objects) frecuency= 12 meses es igual a 1 año. start = 2004, año de inicio.
hal.ts<- ts(hal, start=c(2004,1), frequency = 12)
hal.ts
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004 1 1 1 1 1 1 2 5 22 94 6 1
## 2005 1 1 1 1 1 2 2 6 22 95 7 1
## 2006 1 1 1 1 1 1 2 6 27 100 8 1
## 2007 1 1 1 2 1 2 3 9 30 96 8 2
## 2008 1 1 1 1 1 2 3 7 29 93 8 2
## 2009 2 2 1 2 2 2 3 9 27 94 9 2
## 2010 2 1 1 1 1 2 3 6 23 81 8 3
## 2011 3 2 1 1 1 2 3 7 26 93 11 4
## 2012 3 1 1 1 1 2 3 7 25 83 9 2
## 2013 2 1 1 1 1 2 3 6 24 86 11 2
## 2014 2 1 1 2 2 2 3 6 24 83 11 2
## 2015 2 2 1 1 2 2 3 8 25 96 12 2
## 2016 2 2 2 2 2 2 3 7 24 87 10 2
## 2017 2 2 2 2 2 2 4 8 24 87 9 2
## 2018 2 2 2 2 2 4 4 9 29 100 14 3
## 2019 3 2 2 2 2 3 4 9 26 80 11 2
## 2020 2 2 2 2 3 2 4 9 26 83 9 2
## 2021 2 2 2 2 2 3 6 12 33 73
La siguiente grafica representa la periocidad de las busquedas.
plot(hal.ts, ylab="Busquedas")
La siguiente grafica representa el total de las busquedas por mes en todos los años transcurridos.
boxplot(hal.ts ~ cycle(hal.ts))
Ciclos del comportamiento de las busquedas
cycle(hal.ts)
## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004 1 2 3 4 5 6 7 8 9 10 11 12
## 2005 1 2 3 4 5 6 7 8 9 10 11 12
## 2006 1 2 3 4 5 6 7 8 9 10 11 12
## 2007 1 2 3 4 5 6 7 8 9 10 11 12
## 2008 1 2 3 4 5 6 7 8 9 10 11 12
## 2009 1 2 3 4 5 6 7 8 9 10 11 12
## 2010 1 2 3 4 5 6 7 8 9 10 11 12
## 2011 1 2 3 4 5 6 7 8 9 10 11 12
## 2012 1 2 3 4 5 6 7 8 9 10 11 12
## 2013 1 2 3 4 5 6 7 8 9 10 11 12
## 2014 1 2 3 4 5 6 7 8 9 10 11 12
## 2015 1 2 3 4 5 6 7 8 9 10 11 12
## 2016 1 2 3 4 5 6 7 8 9 10 11 12
## 2017 1 2 3 4 5 6 7 8 9 10 11 12
## 2018 1 2 3 4 5 6 7 8 9 10 11 12
## 2019 1 2 3 4 5 6 7 8 9 10 11 12
## 2020 1 2 3 4 5 6 7 8 9 10 11 12
## 2021 1 2 3 4 5 6 7 8 9 10
Descomposicion de la serie de tiempo:
hal.ts.desc <- decompose(hal.ts)
plot(hal.ts.desc, xlab = "Año")
Podemos observar que la tendencia parece estabilizarse por ciertos periodos de tiempo para despues aumentar o decrecer exponencialmente, y volver a estabilizarse.
plot(log(hal.ts))
Eliminamos la tendencia:
x <- log(hal.ts)
dif1.x <- diff(x)
plot(dif1.x)
Eliminamos la estacionalidad:
dif12.dif1.x <- diff(dif1.x, lag=12)
plot(dif12.dif1.x)
y <- dif12.dif1.x
acf(y)
De acuerdo con el análisis de los datos, y los resultados que este arrojo, así como las gráficas, hay un aumento exponencial bastante notable de las búsquedas de “Halloween” en el mes de octubre, junto con otros relativamente significantes en los meses de septiembre y noviembre. Esto nos indica la existencia de un ciclo, cuya importancia radica en las fechas cercanas al día de Halloween, pues anualmente es cuando se presenta el interés de las personas en la fecha. El resto de los meses del año se observa un interés mínimo, de si acaso una búsqueda de “Halloween” por mes.