Para este ejercicio usaremos datos importados de Google Trens sobre “Liga Mexicana de futbol”
futbol <- scan(https://trends.google.es/trends/explore?date=today%205-y&geo=MX&q=Liga%20Mexicana%20de%20futbol)
library(readr)
<- read_csv("futbol.csv") futbol
## 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.
Tenemos un vector numerico llamado “Liga Mexicana de futbol” Con dicho vector graficaremos los datos.
Ahora transformaremos este vector numerico a un objeto de serie de tiempo
<- ts(futbol, start = c(2004,1), frequency = 12 ) futbol.ts
datos: Los juegos en linea que salierón con tiempo incial (start): 2004 con una frecuancia la mes ( frecquency = 12)
print(futbol.ts)
## Categoría: Todas las categorías ...2
## Jan 2004 NA NA
## Feb 2004 215 78
## Mar 2004 1 1
## Apr 2004 2 75
## May 2004 3 46
## Jun 2004 4 1
## Jul 2004 5 1
## Aug 2004 6 32
## Sep 2004 7 74
## Oct 2004 8 4
## Nov 2004 9 22
## Dec 2004 10 24
## Jan 2005 11 1
## Feb 2005 12 60
## Mar 2005 13 22
## Apr 2005 14 1
## May 2005 15 19
## Jun 2005 16 18
## Jul 2005 17 36
## Aug 2005 18 1
## Sep 2005 19 65
## Oct 2005 20 1
## Nov 2005 21 11
## Dec 2005 22 41
## Jan 2006 23 28
## Feb 2006 24 33
## Mar 2006 25 27
## Apr 2006 26 1
## May 2006 27 20
## Jun 2006 28 39
## Jul 2006 29 19
## Aug 2006 30 7
## Sep 2006 31 8
## Oct 2006 32 41
## Nov 2006 33 36
## Dec 2006 34 33
## Jan 2007 35 77
## Feb 2007 36 64
## Mar 2007 37 41
## Apr 2007 38 73
## May 2007 39 27
## Jun 2007 40 75
## Jul 2007 41 48
## Aug 2007 42 17
## Sep 2007 43 9
## Oct 2007 44 61
## Nov 2007 45 35
## Dec 2007 46 46
## Jan 2008 47 48
## Feb 2008 48 35
## Mar 2008 49 32
## Apr 2008 50 60
## May 2008 51 68
## Jun 2008 52 58
## Jul 2008 53 52
## Aug 2008 54 28
## Sep 2008 55 56
## Oct 2008 56 59
## Nov 2008 57 38
## Dec 2008 58 59
## Jan 2009 59 42
## Feb 2009 60 17
## Mar 2009 61 45
## Apr 2009 62 54
## May 2009 63 23
## Jun 2009 64 52
## Jul 2009 65 54
## Aug 2009 66 3
## Sep 2009 67 28
## Oct 2009 68 56
## Nov 2009 69 51
## Dec 2009 70 60
## Jan 2010 71 70
## Feb 2010 72 57
## Mar 2010 73 37
## Apr 2010 74 50
## May 2010 75 57
## Jun 2010 76 63
## Jul 2010 77 29
## Aug 2010 78 18
## Sep 2010 79 49
## Oct 2010 80 49
## Nov 2010 81 39
## Dec 2010 82 63
## Jan 2011 83 71
## Feb 2011 84 62
## Mar 2011 85 50
## Apr 2011 86 72
## May 2011 87 44
## Jun 2011 88 70
## Jul 2011 89 52
## Aug 2011 90 16
## Sep 2011 91 27
## Oct 2011 92 42
## Nov 2011 93 31
## Dec 2011 94 67
## Jan 2012 95 55
## Feb 2012 96 19
## Mar 2012 97 40
## Apr 2012 98 39
## May 2012 99 60
## Jun 2012 100 66
## Jul 2012 101 47
## Aug 2012 102 39
## Sep 2012 103 48
## Oct 2012 104 50
## Nov 2012 105 16
## Dec 2012 106 26
## Jan 2013 107 49
## Feb 2013 108 12
## Mar 2013 109 23
## Apr 2013 110 31
## May 2013 111 33
## Jun 2013 112 29
## Jul 2013 113 32
## Aug 2013 114 8
## Sep 2013 115 18
## Oct 2013 116 31
## Nov 2013 117 17
## Dec 2013 118 21
## Jan 2014 119 11
## Feb 2014 120 13
## Mar 2014 121 15
## Apr 2014 122 16
## May 2014 123 11
## Jun 2014 124 35
## Jul 2014 125 17
## Aug 2014 126 5
## Sep 2014 127 30
## Oct 2014 128 23
## Nov 2014 129 17
## Dec 2014 130 22
## Jan 2015 131 20
## Feb 2015 132 12
## Mar 2015 133 12
## Apr 2015 134 13
## May 2015 135 13
## Jun 2015 136 16
## Jul 2015 137 22
## Aug 2015 138 8
## Sep 2015 139 6
## Oct 2015 140 19
## Nov 2015 141 12
## Dec 2015 142 6
## Jan 2016 143 13
## Feb 2016 144 11
## Mar 2016 145 10
## Apr 2016 146 18
## May 2016 147 7
## Jun 2016 148 18
## Jul 2016 149 17
## Aug 2016 150 53
## Sep 2016 151 15
## Oct 2016 152 18
## Nov 2016 153 12
## Dec 2016 154 11
## Jan 2017 155 15
## Feb 2017 156 3
## Mar 2017 157 11
## Apr 2017 158 15
## May 2017 159 10
## Jun 2017 160 13
## Jul 2017 161 20
## Aug 2017 162 34
## Sep 2017 163 7
## Oct 2017 164 11
## Nov 2017 165 7
## Dec 2017 166 16
## Jan 2018 167 11
## Feb 2018 168 62
## Mar 2018 169 10
## Apr 2018 170 7
## May 2018 171 7
## Jun 2018 172 13
## Jul 2018 173 53
## Aug 2018 174 2
## Sep 2018 175 3
## Oct 2018 176 11
## Nov 2018 177 15
## Dec 2018 178 7
## Jan 2019 179 10
## Feb 2019 180 3
## Mar 2019 181 62
## Apr 2019 182 3
## May 2019 183 9
## Jun 2019 184 13
## Jul 2019 185 13
## Aug 2019 186 62
## Sep 2019 187 3
## Oct 2019 188 11
## Nov 2019 189 10
## Dec 2019 190 11
## Jan 2020 191 9
## Feb 2020 192 5
## Mar 2020 193 53
## Apr 2020 194 12
## May 2020 195 69
## Jun 2020 196 25
## Jul 2020 197 43
## Aug 2020 198 14
## Sep 2020 199 76
## Oct 2020 200 3
## Nov 2020 201 3
## Dec 2020 202 9
## Jan 2021 203 3
## Feb 2021 204 3
## Mar 2021 205 69
## Apr 2021 206 62
## May 2021 207 7
## Jun 2021 208 8
## Jul 2021 209 5
## Aug 2021 210 34
## Sep 2021 211 3
## Oct 2021 212 8
## Nov 2021 213 76
## Dec 2021 214 3
plot(futbol.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(futbol.ts ~ cycle(futbol.ts))
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 los años, 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 \]
<- decompose(futbol.ts)
futbol.ts.desc plot(futbol.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 gas.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(futbol.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:
x_t = x_t -x_{t-1}
<- log(futbol.ts)
x <- diff(x)
dif1.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:
{12} x_t = x_t - x{t-12}
<- diff(dif1.x, lag=12)
dif12.dif1.x plot(dif12.dif1.x)