AI8UC1_10

Jose Nunez

10/8/2021


ANALISIS DE SERIES DE TIEMPO

Para este ejercicio usaremos datos de Busqueda de Calabaza en mexico del año 2004 a 2021

Datos usados en este ejercicio

xfun::embed_file(path = "docs/Busqueda_Calabaza.csv")

Download Busqueda_Calabaza.csv

library(readr)
calabaza <- read_csv("docs/Busqueda_Calabaza.csv")
## Rows: 213 Columns: 1
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## dbl (1): 20
## 
## 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.

Tenemos un vector numerico llamado “Calabaza”

Grafiquemos los datos

plot(calabaza)

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

calabaza.ts <- ts(calabaza , start = c(2004,1), frequency = 12)

Datos: Calabaza Empieza la serie de tiempo (start): 2004 Cada año se compone de un ciclo de 12 meses: frequency = 12

Ahora vemos los datos que ya son una serie de tiempo

print(calabaza.ts)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004   4   0   0   7   7   0  10  11  28  12   7  11
## 2005   5  14  19   6   6   9   2  10  18  11   6   9
## 2006   7   5   6   2  11   6  10  16  24  12  12   6
## 2007   8   3   3   7   3   4   7  11  26  15   7   6
## 2008   4   4   7   8   8   6   6   9  26  15   8   6
## 2009   7   9   9   8   8  11  15  23  50  40  35  25
## 2010  18  18  15  12  11  15  15  17  32  23  12  11
## 2011   9  13  11  11  10  10  12  16  48  22  12  14
## 2012  14  12  12  13   9  11  12  15  47  25  14  12
## 2013  12  11  10  13  14  13  12  18  54  27  13  15
## 2014  17  15  13  12  14  13  16  18  65  29  17  14
## 2015  14  15  15  14  15  13  17  21  65  31  16  13
## 2016  16  14  15  15  14  14  15  23  67  35  14  17
## 2017  16  16  15  18  16  16  18  20  62  35  17  15
## 2018  19  19  18  15  17  17  20  25  76  39  19  19
## 2019  18  20  18  20  19  24  20  30  88  40  18  21
## 2020  21  21  29  29  27  30  29  35 100  48  25  25
## 2021  26  28  26  22  24  25  28  36  69

Ahora grafiquemos con respecto al tiempo

plot(calabaza.ts, bg="blue", pch = 21, col="red", cex=0.7, xlab="anios",ylab="Busqueda")

Ahora para hacer una comparacion entre los meses de cada año todos los eneros por ejemplo seran una poblacion buscando comida

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

boxplot(calabaza.ts ~ cycle(calabaza.ts), bg="red", pch = 21, col="blue", cex=1, xlab="Meses",ylab="Busquedas")

DECOMPOSICION DE SERIES DE TIEMPO

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 \]

calabaza.ts.desc <- decompose(calabaza.ts)
plot(calabaza.ts.desc, xlab="year", col="red" )

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 calabaza.ts se observa que la serie es estacionaria. Su tendencia es incremental apartir del 2010 volviendose mas fuerta la tendencia. Esto es debido a la relacion que tiene Halloween con las Calabazas, es utilizada como adorno para esas fechas en Octubre creando la consistenacia de busqueda en ese Mes, tal y como se observa al Grafico de Caja Bigote.

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(calabaza.ts), col ="red")

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(calabaza.ts)
dif1.x <- diff(x)
plot(dif1.x,col="red", type="o", cex=0.6, bg="black",pch=21)

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)

y = dif12.dif1.x



y <-y[-c(1,2,3,4,5,6),] ## Se eliminan del arreglo los datos con resultado INF, NAN, -INF 

acf(y, main="Auto Correlacion y Covarianza")