ANALISIS DE SERIES DE TIEMPO

Para este ejercicio usaremos datos de las busquedas de año nuevo en el periodo de 2004-2020. Estos datos se encuentran disponibles en: https://trends.google.es/trends/explore?date=all&geo=MX&q=a%C3%B1o%20nuevo

library(readr)
NEWYEAR <- read_csv("NEWYEAR.csv")
## Rows: 214 Columns: 2
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (2): Mes, año nuevo
## 
## 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.
#gas <- scan("http://verso.mat.uam.es/~joser.berrendero/datos/gas6677.dat")
head(NEWYEAR[, 2])
## # A tibble: 6 x 1
##   `año nuevo`
##   <chr>      
## 1 18         
## 2 1          
## 3 0          
## 4 1          
## 5 0          
## 6 0

tenemos un vector numerico llamado “NEWYEAR”

Grafiquemos los datos

plot(NEWYEAR[, 2])
## Warning in xy.coords(x, y, xlabel, ylabel, log): NAs introducidos por coerción

Ahora transformaremos este vector numerico a un objeto de serie de tiempo

NEWYEAR.ts <- ts(NEWYEAR[, 2], start = c(2004,1), frequency = 12  )

datos: (NEWYEAR[, 2]) empieza la serie de tiempo (start): enero de 2004 cada año se compone de un ciclo de 12 meses: frequency = 12

ahora vemos los datos que ya son una serie d tiempo

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

Ahora grafiquemos con respecto al tiempo

plot(NEWYEAR.ts)

Ahora para hacer una comparacion entre los meses de cada anio todos los eneros por ejemplo seran una poblacion

esto lo haremos a traves de un grafico de caja y bigote

boxplot(NEWYEAR.ts ~ cycle(NEWYEAR.ts))

Componentes estructurales de una serie de tiempo:

Serie observada = Tendencia + Efecto Estacional + Residuos

En este modelo, la serie observada es el resultado de sumar una tendencia que representa el comportamiento a largo plazo de la serie, un efecto estacional que describe sus fluctuaciones periódicas y un componente residual que describe las variaciones a corto plazo, normalmente impredecibles.

Con R es muy sencillo obtener una descomposición estructural de este tipo. Se usa el comando decompose:

$$ serie observada = Tendencia + efecto estacional + residuos

$$

NEWYEAR.ts.desc <- decompose(NEWYEAR.ts)
plot(NEWYEAR.ts.desc, xlab="year")

Esta descomposición se basa en métodos elementales:

La descomposicion solo es totalmente adecuada si se dispone de un número completo de periodos (por ejemplo, un múltiplo de 12 si la serie es mensual).

TRANSFORMACIONES BASICAS DE UNA SERIE

En el gráfico de NEWYEAR.ts se observa que la serie no es estacionaria. La serie presenta una tendencia aparentemente lineal y una estacionalidad muy marcada (las busquedas aumentan en el mes de diciembre). Además, la amplitud de las fluctuaciones aumenta con el tiempo por lo que la variabilidad tampoco es constante. Sin embargo, muchos modelos importantes de series temporales corresponden a series estacionarias (es decir, sin tendencia ni estacionalidad y con variabilidad constante). Antes de ajustar un modelo estacionario tenemos que transformar la serie original.

Estabilización de la varianza: Para estabilizar la variabilidad se suelen tomar logaritmos. Esta transformación funcionará bien cuando la variabilidad sea aproximadamente proporcional al nivel de la serie. Representamos la serie transformada mediante

plot(log(NEWYEAR.ts))

Eliminacion de la tendencia: Una forma sencilla de eliminar una tendencia aproximadamente lineal es diferenciar la serie, es decir, considerar la serie de diferencias entre una observación y la anterior en lugar de la serie original. Si xt es una serie contenida en x, para calcular:

\[ \nabla x_t = x_t -x_{t-1} \]

x <- log(NEWYEAR.ts)
dif1.x <- diff(x)
plot(dif1.x)

Eliminación de estacionalidad: Para eliminar la estacionalidad de una serie mensual se pueden tomar diferencias estacionales de orden 12. Si xt es la serie que queremos desestacionalizar, se trata de calcular:

\[ \nabla_{12} x_t = x_t - x_{t-12} \]

dif12.dif1.x <- diff(dif1.x, lag=12)
plot(dif12.dif1.x)