Análisis de serie de tiempo utilizando datos de google trends.

Análisis básico de series de tiempo.

Segundo ejemplo.

Para este segundo ejemplo usaremos datos de busquedas de la palabra “Día del niño”, desde 2004.

library(readr)
diaNiño <- read_csv("diaNiño.csv")
## Rows: 213 Columns: 1
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (1): 0
## 
## 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.
View(diaNiño)

Grafiquemos los datos.

plot(diaNiño)
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introducidos por coerción

Para tratar este vector numerico como una serie de tiempo, utilizaremos el comando ts (time-series objects).

diaNiño.ts <- ts(diaNiño, start = c(2004,1), frequency = 12)
print(diaNiño.ts)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004  12  24  19  12   2   8   2   9   2   8   3   2
## 2005   3  29  22  12   2   2   8   2   2   8   3   3
## 2006   3  29  14  20   3   2   3   3   1   2   1   3
## 2007   8  18  13  12   8   3   3   1   3   8   3   3
## 2008   8  24  16  12   8   1   3   3   3   3   3   3
## 2009   8  20  10  15   8   3   3   3   3   3   3   3
## 2010   8  15  14  15   8   3   3   3   3   3   1   3
## 2011   8  20  11  20   9   3   3   3   8   3   3   8
## 2012   8  18  17  24   9   3   3   3   3   3   3   3
## 2013   9  15  21  29  12   3   3   3   8   3   3   3
## 2014  12  24  25   6   9   3   3   3   3   3   8   3
## 2015   9  24  31   7   9   3   3   3   8   3   3   8
## 2016  12  24  30   4   8   3   3   3   3   3   3   8
## 2017   9  29  26  29   9   3   3   3   3   8   8   8
## 2018   8  20  27  29   8   3   3   3   3   3   3   3
## 2019   8  24  23  29   8   3   3   3   3   3   3   3
## 2020   8  12  28  29   8   3   3   3   8   3   3   3
## 2021   8  15   5  24   8   3   3   3   8

Ahora que tenemos una variable que es un objeto orientado a tiempo, podemos tener una gráfica en la cual se entienda la periodicidad de los aumentos de la búsqueda por año.

plot (diaNiño.ts)

  • En esta gráfica se representa una serie de tiempo, donde se puede observar como los datos siempre han sido similares, y la mayor cantidad de busquedas es cada dia del año en el que es dia del niño

Ahora haremos una comparación interanual del aumento de las búsquedas.

boxplot(diaNiño.ts~cycle(diaNiño.ts))

  • En esta gráfica se puede observar que los datos son muy variables, ya que algunas cajas son más grandes que otras, además de tener muchos valores extremos, es decir valores que son tan atipicos que el gráfico no los toma en cuenta, esto es debido a que, como mencionaba anteriormente, la mayor cantidad de busquedas de este dia, es el mismo dia.

Entendamos los ciclos del comportamiento de esta búsqueda en google trends.

cycle (diaNiño.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

DESCOMPOSICIÓN DE UNA SERIE DE TIEMPO.

Componentes estructurales de una serie de tiempo.

Serie observada = Tendencia + Efecto Estacional + Residuos.

diaNiño.ts.desc <- decompose(diaNiño.ts)
plot (diaNiño.ts.desc, xlab = "Year")

TRANSFORMACIONES BÁSICAS DE UNA SERIE DE TIEMPO.

Antes de hacer la estabilización de la varianza, transformaremos nuestra serie a una logaritmica.

plot (log(diaNiño.ts))

Eliminación de la tendencia.

x <- log(diaNiño.ts)
dif1.x <- diff(x)
plot(dif1.x)

Eliminación de la estacionalidad.

  • Determina donde la tendencia es normal y donde la tendencia es anormal.
dif12.dif1.x <- diff(dif1.x, log=12)
plot (dif12.dif1.x)

  • En este gráfico se puede observar como la tendencia es normal

Las funciones de autocovarianza y autocorrelaciones.

Transformamos la serie del consumo de gasolina de manera que un modelo estacionario sea apropiado para la serie transformada. El siguiente código se puede utilizar para representar el correlograma de la serie. El correlograma es una representación gráfica de las autocorrelaciones ρ(k) , es decir, las correlaciones entre xt y xt+k en función de k.

y = dif12.dif1.x
acf(y)

Siempre se tiene que ρ(0)=1 . Las líneas discontinuas representan las bandas de confianza de ρ(k) de nivel 95% bajo la hipótesis de que la serie es un ruido blanco (incorrelada). En el ejemplo las autocorrelaciones más significativas son las correlaciones entre la observación de un mes y la del mes siguiente, y la observación de un mes con la del mismo mes del año siguiente.

Conclusión.

Las busqudas de el “Dia del niño” en Google Trends desde 2004 no han sido muy variables, todos los años, por las mismas fechas en las que es el dia del niño se han hecho busquedas de esta palabra, ya que la gente quiere saber más acerca de este día.