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?q=%2Fm%2F02vx4,%2Fm%2F0jm_&date=all&geo=US

library(readr)
añonuevo <- read_csv("añonuevo.csv")
## New names:
## * `` -> ...2
## Rows: 216 Columns: 2
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (2): Categoría: Todas las categorías, ...2
## 
## 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(añonuevo[, 2])
## # A tibble: 6 x 1
##   ...2                 
##   <chr>                
## 1 <NA>                 
## 2 año nuevo: (México)
## 3 18                   
## 4 1                    
## 5 0                    
## 6 1

tenemos un vector numerico llamado “geomap”

Grafiquemos los datos

plot(añonuevo[, 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

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

datos: (añonuevo[, 1]) 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(añonuevo.ts)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004  NA  37   5   3   2   3   2   2   3   2   3   3
## 2005  27  22   6   7   3   3   7   3   2   3  11  13
## 2006  21  26   8   7   3   3   3   3   7   3   7   7
## 2007  11  23   5  17   3   3   3   3   3   3  11   7
## 2008  21  23   9  13   3   3   3   3   1   3   7  11
## 2009  13  24  10   7   3   3   3   3   3   3   7   7
## 2010  17  31   9  17   3   3   3   7   3   3  11   7
## 2011  13  33  12  21   7   7   3   3   3   3   7   7
## 2012  13  36  14  11   7   3   3   3   3   3   7   7
## 2013  17  29  12  13   7   3   3   3   3   3   7   7
## 2014  13  35  15  11   7   3   3   3   3   3   7   7
## 2015  17  34  16  17   3   3   3   3   3   3   7   7
## 2016  17   4  22  13   7   7   3   3   3   3   7  11
## 2017  17  33  20   7   3   3   3   3   3   3   7   7
## 2018  17  32  19  27   3   7   3   3   3   7  11   7
## 2019  21  28  18  21   3   3   3   3   3   3  11  11
## 2020  17  25  30  11   7   7   7   7   3   3   7  11
## 2021  17  24  34  27   7   7   7   7   7   7   7   7

Ahora grafiquemos con respecto al tiempo

plot(añonuevo.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(añonuevo.ts ~ cycle(añonuevo.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 \]

añonuevo.ts.desc <- decompose(añonuevo.ts)
plot(añonuevo.ts.desc, xlab="year")

Esta descomposición se basa en métodos elementales: * la tendencia se calcula con una media móvil * el efecto estacional se calcula promediando los valores de cada unidad de tiempo para todos los periodos (por ejemplo, todos los meses de enero si la serie es mensual) y luego centrando el resultado. Finalmente * los residuos se obtienen restando a la serie observada las dos componentes anteriores

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(añonuevo.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:

\[ ∇xt=xt−xt−1 \]

x <- log(añonuevo.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:

\[ ∇12xt=xt−xt−12 \]

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