- Importar librerias
library(pacman)
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc","readr", "knitr","DT","dplyr", "ggplot2")ANALISIS DE SERIES DE TIEMPO
Para este ejercicio usaremos datos de la comida “sabritas” como un termino de busqueda
setwd("~/Aplicada")
library(readr)
Sabritas_ <- read_csv("Sabritas..csv")## Rows: 214 Columns: 1
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## dbl (1): sabritas: (Todo el mundo)
##
## 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(Sabritas_)tenemos un vector numerico llamado “sabritas”
Grafiquemos los datos
plot(Sabritas_)Ahora transformaremos este vector numerico a un objeto de serie de tiempo
Sabritas_.ts <- ts(Sabritas_, start = c(2004,1), frequency = 12 )datos: sabritas 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(Sabritas_.ts)## Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2004 68 47 78 31 52 56 32 9 74 56 60 7
## 2005 13 84 35 55 48 31 32 64 61 60 40 33
## 2006 22 62 62 45 54 44 38 38 45 44 47 24
## 2007 26 35 28 37 46 23 23 43 45 65 55 29
## 2008 27 55 48 42 28 36 31 47 49 43 41 24
## 2009 26 40 45 39 37 42 31 44 57 61 49 23
## 2010 37 50 34 48 59 35 34 37 41 36 37 22
## 2011 32 34 43 32 33 39 32 78 84 58 49 38
## 2012 47 65 48 55 100 66 39 44 54 59 47 23
## 2013 35 50 39 50 45 38 35 41 42 45 42 29
## 2014 31 39 58 57 48 43 34 35 45 61 49 32
## 2015 34 41 53 44 43 42 32 37 44 49 43 32
## 2016 36 41 42 47 40 34 37 38 44 44 35 27
## 2017 36 50 46 39 38 37 34 36 34 47 40 33
## 2018 48 86 61 50 52 37 39 37 37 72 74 40
## 2019 39 41 46 37 36 41 41 48 60 68 52 40
## 2020 52 60 47 50 53 61 79 68 63 77 70 54
## 2021 64 64 59 64 56 54 56 60 60 60
Ahora grafiquemos con respecto al tiempo
plot(Sabritas_.ts)Ahora para hacer una comparacion entre los meses de cada año todos los eneros por ejemplo seran una poblacion
esto lo haremos a traves de un grafico de caja y bigote
boxplot(Sabritas_.ts ~ cycle(Sabritas_.ts))DECOMPOSICION DE SERIES DE TIEMPO USANDO DATOS DE LOS BENEFICIOS TRIMESTRALES DE LA EMPRESA JJ
http://verso.mat.uam.es/~joser.berrendero/datos/jj.dat
analizamos una serie de tiempo desde sus componentes estructurales
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
$$
Sabritas_.ts.desc <- decompose(Sabritas_.ts)
plot(Sabritas_.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 sabritas_.ts se observa que la serie no es estacionaria. La serie presenta una tendencia aparentemente lineal y una estacionalidad muy marcada (el consumo aumenta los meses de verano). 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(Sabritas_.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(Sabritas_.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)Conclusión
Como se puede observar en los graficas proporcionadas con anterioridad, el termino de busqueda llamado “sabritas” disminuyó a partir del 2006 esto se debe a la concientizacion hacia los efectos de comer comida chatarra, por lo que a partir del 2010 se proporcionaron unas busquedas mas estables respecto a este termino.