Análisis y pronóstico de series de tiempo con R

Introducción

En este documento se explica lo relacionado al pronóstico de series de tiempo. Lo cual comprende:

Elaborando la serie de tiempo en R Análisis de la serie de tiempo Pronóstico de la serie de tiempo Estimación de errores de pronóstico Para el análisis de series de tiempo en R, existen una gran variedad de librerias. En este tutorial se emplea la libreria fpp2, la cual contiene contiene:

La libreria forecast, que contiene funciones de pronóstico La libreria ggplot2, que contiene funciones para gráficos Esta libreria se instala y se carga mediante install.packages(“fpp2”)y library(fpp2) respectivamente.

Elaborando la serie de tiempo en R Cargando librerias y datos Recordemos que se puede leer datos directamente desde una API, SQL u otros medios. Para este tutorial empleo la lectura de datos desde Excel. Entonces para ello emplearemos las siguientes funciones:

La función head() nos muestra los primeros datos de nuestra tabla de datos

library(fpp2)
## Warning: package 'fpp2' was built under R version 4.1.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## -- Attaching packages ---------------------------------------------- fpp2 2.5 --
## v ggplot2   3.4.2     v fma       2.5  
## v forecast  8.21      v expsmooth 2.3
## Warning: package 'ggplot2' was built under R version 4.1.3
## Warning: package 'forecast' was built under R version 4.1.3
## Warning: package 'fma' was built under R version 4.1.3
## Warning: package 'expsmooth' was built under R version 4.1.3
## 

Creando el objeto de serie de tiempo La serie de tiempo se debe almacenar en el objeto ts empleando la función ts(). El empleo de esta función es de la siguiente forma : serie <- ts(data, frequency= ,start=). Donde el primer agumento es un vector de datos. Luego los dos siguientes argumentos se indican de acuerdo a la siguiente tabla.

Frecuencia frequency= start=
Anual 1 2000
Trimestral 4 c(2000,2)
Mensual 12 c(2000,9)
Diario 7 o 365.25 1 o c(2000,234)
Semanal 52.18 c(2000,23)
Horario 24 o 168 o 8766 1
Cada 30 min 48 o 336 o 17532 1

En el siguiente fragmento de código definimos el objeto de la serie de tiempo y lo almacenaremos en data_serie.

file_path <- "C:/Users/wagne/Documents/Datos/DatosPrecipitacion.csv"
dataeliana<- read.csv(file_path)
dataeliana
##     DatosPrecip
## 1      258.5000
## 2      266.0000
## 3      147.7000
## 4      488.8000
## 5      396.7000
## 6       30.7000
## 7        1.7000
## 8        1.4000
## 9        4.5000
## 10      17.6000
## 11      28.3000
## 12     109.4000
## 13     258.8000
## 14     476.9000
## 15     745.8000
## 16     140.4000
## 17       4.4000
## 18      50.8000
## 19       0.4000
## 20       1.3000
## 21      18.4000
## 22      10.8000
## 23      15.1000
## 24     123.4000
## 25     418.0000
## 26     489.8000
## 27     541.6000
## 28     374.4000
## 29     188.9000
## 30     360.1000
## 31      38.4000
## 32      67.6000
## 33      23.7000
## 34      37.2000
## 35      55.2000
## 36     297.9000
## 37     396.5000
## 38     393.2000
## 39     526.9000
## 40     545.2000
## 41     222.6000
## 42      23.1000
## 43       4.2000
## 44       4.3000
## 45      21.6000
## 46      10.1000
## 47      10.9000
## 48     168.0000
## 49     181.6000
## 50     353.5000
## 51     307.9000
## 52     419.6000
## 53      55.5000
## 54       7.0000
## 55       1.5000
## 56       1.1000
## 57      14.6000
## 58      17.3000
## 59      12.4000
## 60     272.4000
## 61     494.6000
## 62     655.0000
## 63     650.8000
## 64     391.2000
## 65      30.4000
## 66      41.8000
## 67       8.8000
## 68       6.9000
## 69       1.8000
## 70      20.6000
## 71       9.5000
## 72      77.1000
## 73     507.5000
## 74     586.3000
## 75     717.8000
## 76     535.8000
## 77     246.3000
## 78      49.4000
## 79       5.8000
## 80       5.2000
## 81       5.2000
## 82      26.6000
## 83       1.9000
## 84     230.7000
## 85     398.0000
## 86     326.4000
## 87     573.7000
## 88     219.1000
## 89      34.9000
## 90     126.3000
## 91       3.0000
## 92       0.9000
## 93      30.8000
## 94       6.2000
## 95       0.2000
## 96     156.6000
## 97     297.0000
## 98     376.4000
## 99     298.7000
## 100    270.8000
## 101    184.5000
## 102      6.1000
## 103      4.4000
## 104      0.9000
## 105     13.6000
## 106      2.8000
## 107     14.5000
## 108     64.6000
## 109    183.2000
## 110    339.5000
## 111    346.8000
## 112    234.5000
## 113     29.8000
## 114     23.7000
## 115      0.2000
## 116      0.9000
## 117      7.8000
## 118      9.7000
## 119      4.6000
## 120      4.3000
## 121    338.2000
## 122    478.1000
## 123    380.3000
## 124    513.6000
## 125    206.6000
## 126      0.8000
## 127      0.0000
## 128      1.3000
## 129      3.0000
## 130      7.4000
## 131      6.2000
## 132     50.7000
## 133    244.9000
## 134    464.0000
## 135    441.2000
## 136    200.0000
## 137      9.0000
## 138      1.3000
## 139     13.3000
## 140      1.3000
## 141      8.6000
## 142      1.3000
## 143     56.2000
## 144     48.4000
## 145    850.3000
## 146    599.0000
## 147    704.6000
## 148    493.0000
## 149    612.9000
## 150    505.5000
## 151    547.5000
## 152     96.7000
## 153    143.3000
## 154     29.9000
## 155    124.5000
## 156    114.3000
## 157    119.2000
## 158    551.9000
## 159     61.9000
## 160    293.0000
## 161      7.6000
## 162     67.0000
## 163      2.4000
## 164      4.9000
## 165     13.1000
## 166      5.4000
## 167     19.0000
## 168    199.6000
## 169    270.6000
## 170    257.6000
## 171    293.1000
## 172    115.7000
## 173     47.6000
## 174     13.2000
## 175      1.2000
## 176      4.4000
## 177     39.2000
## 178      1.6000
## 179     13.1000
## 180    274.3000
## 181    625.2000
## 182    370.6000
## 183    208.8000
## 184    393.6000
## 185     40.4000
## 186      0.7000
## 187      1.7000
## 188      3.5000
## 189      7.2000
## 190     68.4000
## 191      9.1000
## 192    108.9000
## 193    505.1000
## 194    380.6000
## 195    564.7000
## 196    581.5000
## 197    262.4000
## 198      0.1000
## 199      2.0000
## 200     55.5000
## 201     12.1000
## 202     10.2000
## 203     31.9000
## 204     92.0000
## 205    423.6000
## 206    513.1000
## 207    111.1000
## 208    248.0000
## 209    203.1000
## 210     15.3000
## 211      4.6000
## 212      3.6000
## 213     15.5000
## 214      8.1000
## 215      9.7000
## 216    112.7000
## 217    459.5000
## 218    487.7000
## 219    471.9000
## 220    486.1000
## 221    146.7000
## 222     15.4000
## 223      7.8000
## 224      0.7000
## 225      1.6000
## 226     30.5000
## 227     13.8000
## 228    114.5000
## 229    184.0000
## 230    558.9000
## 231    226.3000
## 232    218.1000
## 233     42.0000
## 234     25.5000
## 235      7.9000
## 236      0.0000
## 237      0.8000
## 238     19.3000
## 239      9.6000
## 240    109.7000
## 241    293.4000
## 242    653.2000
## 243    352.9000
## 244    250.4000
## 245     46.6000
## 246      8.1000
## 247      1.1000
## 248      0.3000
## 249      0.8000
## 250      6.4000
## 251     26.3000
## 252    214.6000
## 253    543.4000
## 254    443.4000
## 255    678.2000
## 256    831.1000
## 257    363.9000
## 258     92.1000
## 259     21.0000
## 260      0.9000
## 261      7.3000
## 262      4.3000
## 263      3.9000
## 264     86.8000
## 265    427.0000
## 266    656.6000
## 267    459.4000
## 268    521.2000
## 269     80.8000
## 270     36.0000
## 271      1.4000
## 272      5.3000
## 273      6.8000
## 274     26.6000
## 275      0.8000
## 276    176.2000
## 277    441.2000
## 278    426.8000
## 279    376.5000
## 280    303.5000
## 281     76.3000
## 282     13.0000
## 283      0.2000
## 284      0.1000
## 285      2.7000
## 286     73.5000
## 287      8.4000
## 288    197.2000
## 289    280.3000
## 290    481.7000
## 291    436.3000
## 292    232.0000
## 293     16.3000
## 294      3.0000
## 295     12.3000
## 296      8.1000
## 297      0.3000
## 298      2.7000
## 299     10.4000
## 300     73.9000
## 301    267.5000
## 302    411.5000
## 303    485.8000
## 304    378.1000
## 305    285.0000
## 306    267.9000
## 307    345.5000
## 308    116.8000
## 309    388.1000
## 310    206.3000
## 311   1134.8000
## 312    666.6000
## 313   1011.2000
## 314    668.1000
## 315   1072.7000
## 316    775.2000
## 317    708.3000
## 318    284.2000
## 319    130.7000
## 320      7.3000
## 321      6.1000
## 322     11.8000
## 323     66.8000
## 324     42.5000
## 325    135.3000
## 326    569.3000
## 327    750.4000
## 328    395.4000
## 329    371.6000
## 330      5.8000
## 331      5.6000
## 332      1.0000
## 333     99.9000
## 334     13.3000
## 335     21.9000
## 336    140.4000
## 337    239.9000
## 338    281.2000
## 339    473.7000
## 340    430.2000
## 341    152.8000
## 342     23.4000
## 343      0.3000
## 344      2.5000
## 345      7.7000
## 346      7.1000
## 347      9.1000
## 348     58.3000
## 349    618.1000
## 350    288.2000
## 351    275.0000
## 352    507.1000
## 353    188.5000
## 354      1.5000
## 355      2.5000
## 356      0.0000
## 357      1.1000
## 358      0.3000
## 359     11.8000
## 360     56.1000
## 361    144.8000
## 362    540.1000
## 363    691.3000
## 364    627.3000
## 365    190.0000
## 366     12.9000
## 367      2.8000
## 368      0.6000
## 369      1.9000
## 370     18.9000
## 371     72.6000
## 372    222.5000
## 373    446.6000
## 374    386.7000
## 375    269.1000
## 376    344.4000
## 377    170.4000
## 378     23.6000
## 379     34.8000
## 380      8.8000
## 381      1.1000
## 382     73.1000
## 383     53.3000
## 384    187.0000
## 385    236.5000
## 386    204.2000
## 387    365.9000
## 388    288.4000
## 389    240.2000
## 390     12.4000
## 391      5.1000
## 392      2.0000
## 393      8.2000
## 394     13.8000
## 395      2.1000
## 396     27.9000
## 397    227.0000
## 398    245.7000
## 399    192.5000
## 400    462.0000
## 401      6.3000
## 402      0.9000
## 403      3.7000
## 404      0.5000
## 405      2.0000
## 406      1.3000
## 407      3.4000
## 408    108.0000
## 409    263.5000
## 410    639.5000
## 411    485.0000
## 412    144.7000
## 413     32.9000
## 414     17.1000
## 415      5.9000
## 416      9.2000
## 417     10.9000
## 418      3.8000
## 419     28.4000
## 420     49.1000
## 421    243.4000
## 422    272.9000
## 423    371.2000
## 424    407.7000
## 425    116.8000
## 426     29.7000
## 427     19.8000
## 428      0.7000
## 429      0.5000
## 430      1.4000
## 431     19.8000
## 432     55.7000
## 433    301.5000
## 434    288.4000
## 435    381.1000
## 436    201.1000
## 437    140.0000
## 438     13.5000
## 439      1.4000
## 440      0.6000
## 441      0.3000
## 442      0.6000
## 443      0.1000
## 444     65.0000
## 445    389.0000
## 446    835.3000
## 447    489.1000
## 448    694.4000
## 449    231.9000
## 450     18.7000
## 451     31.8000
## 452      1.5000
## 453     13.8000
## 454      1.1000
## 455     21.8000
## 456    300.9000
## 457    369.6000
## 458    489.5000
## 459    144.1000
## 460    725.6000
## 461      9.9000
## 462     48.4000
## 463     47.3000
## 464      1.1000
## 465      4.2000
## 466      4.2000
## 467      4.8000
## 468    150.6000
## 469    636.8000
## 470    782.6000
## 471    827.9000
## 472    440.5000
## 473    409.3000
## 474     30.6000
## 475      1.8000
## 476      1.3000
## 477      1.0000
## 478      6.1000
## 479     15.7000
## 480     75.8000
## 481    424.7000
## 482    491.6000
## 483    550.9000
## 484    435.1000
## 485     64.9000
## 486     12.8000
## 487      0.6000
## 488      2.2000
## 489      4.9000
## 490      6.7000
## 491      0.3000
## 492     66.3000
## 493    343.7000
## 494    398.2000
## 495    147.1000
## 496    271.3000
## 497    148.6000
## 498     50.2000
## 499      4.9000
## 500     86.9000
## 501     12.5000
## 502     60.0000
## 503      2.5000
## 504     25.1000
## 505    419.5000
## 506    555.1000
## 507    364.6000
## 508    489.0000
## 509    420.8000
## 510    238.7000
## 511     32.1000
## 512      0.5000
## 513      1.2000
## 514     85.3000
## 515    181.3000
## 516    232.6000
## 517    423.2000
## 518    383.7000
## 519    625.9000
## 520    441.1000
## 521    115.7000
## 522      6.2000
## 523      2.4000
## 524      1.9000
## 525     28.2000
## 526      3.4000
## 527     13.3000
## 528     18.3000
## 529    539.7000
## 530    577.3000
## 531    929.5000
## 532    720.3000
## 533    309.6000
## 534     52.3000
## 535      0.3000
## 536      4.6000
## 537      2.2000
## 538     30.0000
## 539      5.1000
## 540     99.5000
## 541    132.0000
## 542    550.7000
## 543    283.3000
## 544    281.7000
## 545    124.6000
## 546      1.3000
## 547      3.0000
## 548      0.5000
## 549      0.8000
## 550      0.8000
## 551      7.7000
## 552    344.2000
## 553    430.6000
## 554    750.8000
## 555    638.9000
## 556    544.4000
## 557    357.2000
## 558    130.5000
## 559     10.8000
## 560      0.8000
## 561     23.4000
## 562      5.0000
## 563     99.5000
## 564    122.5800
## 565    289.2000
## 566    826.6000
## 567    324.0000
## 568    410.7574
## 569    177.6915
## 570     23.2000
## 571      5.7000
## 572      3.5000
## 573      0.7000
## 574     22.5000
## 575      1.4000
## 576    121.8000
## 577    495.5000
## 578    482.2000
## 579    464.4000
## 580    328.7000
## 581    114.4000
## 582      6.4000
## 583      1.4000
## 584      5.1000
## 585     10.1000
## 586     27.1000
## 587      5.7000
## 588    103.5000
data_serie <- ts(dataeliana$DatosPrecip, frequency=12, start=1972)
data_serie
##            Jan       Feb       Mar       Apr       May       Jun       Jul
## 1972  258.5000  266.0000  147.7000  488.8000  396.7000   30.7000    1.7000
## 1973  258.8000  476.9000  745.8000  140.4000    4.4000   50.8000    0.4000
## 1974  418.0000  489.8000  541.6000  374.4000  188.9000  360.1000   38.4000
## 1975  396.5000  393.2000  526.9000  545.2000  222.6000   23.1000    4.2000
## 1976  181.6000  353.5000  307.9000  419.6000   55.5000    7.0000    1.5000
## 1977  494.6000  655.0000  650.8000  391.2000   30.4000   41.8000    8.8000
## 1978  507.5000  586.3000  717.8000  535.8000  246.3000   49.4000    5.8000
## 1979  398.0000  326.4000  573.7000  219.1000   34.9000  126.3000    3.0000
## 1980  297.0000  376.4000  298.7000  270.8000  184.5000    6.1000    4.4000
## 1981  183.2000  339.5000  346.8000  234.5000   29.8000   23.7000    0.2000
## 1982  338.2000  478.1000  380.3000  513.6000  206.6000    0.8000    0.0000
## 1983  244.9000  464.0000  441.2000  200.0000    9.0000    1.3000   13.3000
## 1984  850.3000  599.0000  704.6000  493.0000  612.9000  505.5000  547.5000
## 1985  119.2000  551.9000   61.9000  293.0000    7.6000   67.0000    2.4000
## 1986  270.6000  257.6000  293.1000  115.7000   47.6000   13.2000    1.2000
## 1987  625.2000  370.6000  208.8000  393.6000   40.4000    0.7000    1.7000
## 1988  505.1000  380.6000  564.7000  581.5000  262.4000    0.1000    2.0000
## 1989  423.6000  513.1000  111.1000  248.0000  203.1000   15.3000    4.6000
## 1990  459.5000  487.7000  471.9000  486.1000  146.7000   15.4000    7.8000
## 1991  184.0000  558.9000  226.3000  218.1000   42.0000   25.5000    7.9000
## 1992  293.4000  653.2000  352.9000  250.4000   46.6000    8.1000    1.1000
## 1993  543.4000  443.4000  678.2000  831.1000  363.9000   92.1000   21.0000
## 1994  427.0000  656.6000  459.4000  521.2000   80.8000   36.0000    1.4000
## 1995  441.2000  426.8000  376.5000  303.5000   76.3000   13.0000    0.2000
## 1996  280.3000  481.7000  436.3000  232.0000   16.3000    3.0000   12.3000
## 1997  267.5000  411.5000  485.8000  378.1000  285.0000  267.9000  345.5000
## 1998 1011.2000  668.1000 1072.7000  775.2000  708.3000  284.2000  130.7000
## 1999  135.3000  569.3000  750.4000  395.4000  371.6000    5.8000    5.6000
## 2000  239.9000  281.2000  473.7000  430.2000  152.8000   23.4000    0.3000
## 2001  618.1000  288.2000  275.0000  507.1000  188.5000    1.5000    2.5000
## 2002  144.8000  540.1000  691.3000  627.3000  190.0000   12.9000    2.8000
## 2003  446.6000  386.7000  269.1000  344.4000  170.4000   23.6000   34.8000
## 2004  236.5000  204.2000  365.9000  288.4000  240.2000   12.4000    5.1000
## 2005  227.0000  245.7000  192.5000  462.0000    6.3000    0.9000    3.7000
## 2006  263.5000  639.5000  485.0000  144.7000   32.9000   17.1000    5.9000
## 2007  243.4000  272.9000  371.2000  407.7000  116.8000   29.7000   19.8000
## 2008  301.5000  288.4000  381.1000  201.1000  140.0000   13.5000    1.4000
## 2009  389.0000  835.3000  489.1000  694.4000  231.9000   18.7000   31.8000
## 2010  369.6000  489.5000  144.1000  725.6000    9.9000   48.4000   47.3000
## 2011  636.8000  782.6000  827.9000  440.5000  409.3000   30.6000    1.8000
## 2012  424.7000  491.6000  550.9000  435.1000   64.9000   12.8000    0.6000
## 2013  343.7000  398.2000  147.1000  271.3000  148.6000   50.2000    4.9000
## 2014  419.5000  555.1000  364.6000  489.0000  420.8000  238.7000   32.1000
## 2015  423.2000  383.7000  625.9000  441.1000  115.7000    6.2000    2.4000
## 2016  539.7000  577.3000  929.5000  720.3000  309.6000   52.3000    0.3000
## 2017  132.0000  550.7000  283.3000  281.7000  124.6000    1.3000    3.0000
## 2018  430.6000  750.8000  638.9000  544.4000  357.2000  130.5000   10.8000
## 2019  289.2000  826.6000  324.0000  410.7574  177.6915   23.2000    5.7000
## 2020  495.5000  482.2000  464.4000  328.7000  114.4000    6.4000    1.4000
##            Aug       Sep       Oct       Nov       Dec
## 1972    1.4000    4.5000   17.6000   28.3000  109.4000
## 1973    1.3000   18.4000   10.8000   15.1000  123.4000
## 1974   67.6000   23.7000   37.2000   55.2000  297.9000
## 1975    4.3000   21.6000   10.1000   10.9000  168.0000
## 1976    1.1000   14.6000   17.3000   12.4000  272.4000
## 1977    6.9000    1.8000   20.6000    9.5000   77.1000
## 1978    5.2000    5.2000   26.6000    1.9000  230.7000
## 1979    0.9000   30.8000    6.2000    0.2000  156.6000
## 1980    0.9000   13.6000    2.8000   14.5000   64.6000
## 1981    0.9000    7.8000    9.7000    4.6000    4.3000
## 1982    1.3000    3.0000    7.4000    6.2000   50.7000
## 1983    1.3000    8.6000    1.3000   56.2000   48.4000
## 1984   96.7000  143.3000   29.9000  124.5000  114.3000
## 1985    4.9000   13.1000    5.4000   19.0000  199.6000
## 1986    4.4000   39.2000    1.6000   13.1000  274.3000
## 1987    3.5000    7.2000   68.4000    9.1000  108.9000
## 1988   55.5000   12.1000   10.2000   31.9000   92.0000
## 1989    3.6000   15.5000    8.1000    9.7000  112.7000
## 1990    0.7000    1.6000   30.5000   13.8000  114.5000
## 1991    0.0000    0.8000   19.3000    9.6000  109.7000
## 1992    0.3000    0.8000    6.4000   26.3000  214.6000
## 1993    0.9000    7.3000    4.3000    3.9000   86.8000
## 1994    5.3000    6.8000   26.6000    0.8000  176.2000
## 1995    0.1000    2.7000   73.5000    8.4000  197.2000
## 1996    8.1000    0.3000    2.7000   10.4000   73.9000
## 1997  116.8000  388.1000  206.3000 1134.8000  666.6000
## 1998    7.3000    6.1000   11.8000   66.8000   42.5000
## 1999    1.0000   99.9000   13.3000   21.9000  140.4000
## 2000    2.5000    7.7000    7.1000    9.1000   58.3000
## 2001    0.0000    1.1000    0.3000   11.8000   56.1000
## 2002    0.6000    1.9000   18.9000   72.6000  222.5000
## 2003    8.8000    1.1000   73.1000   53.3000  187.0000
## 2004    2.0000    8.2000   13.8000    2.1000   27.9000
## 2005    0.5000    2.0000    1.3000    3.4000  108.0000
## 2006    9.2000   10.9000    3.8000   28.4000   49.1000
## 2007    0.7000    0.5000    1.4000   19.8000   55.7000
## 2008    0.6000    0.3000    0.6000    0.1000   65.0000
## 2009    1.5000   13.8000    1.1000   21.8000  300.9000
## 2010    1.1000    4.2000    4.2000    4.8000  150.6000
## 2011    1.3000    1.0000    6.1000   15.7000   75.8000
## 2012    2.2000    4.9000    6.7000    0.3000   66.3000
## 2013   86.9000   12.5000   60.0000    2.5000   25.1000
## 2014    0.5000    1.2000   85.3000  181.3000  232.6000
## 2015    1.9000   28.2000    3.4000   13.3000   18.3000
## 2016    4.6000    2.2000   30.0000    5.1000   99.5000
## 2017    0.5000    0.8000    0.8000    7.7000  344.2000
## 2018    0.8000   23.4000    5.0000   99.5000  122.5800
## 2019    3.5000    0.7000   22.5000    1.4000  121.8000
## 2020    5.1000   10.1000   27.1000    5.7000  103.5000

#Nota: Los resultados de esta guía corresponden a Data1 del archivo excel. Sugiero que tambien practiques con las otras series de tiempo como Data2 o Data3.

Análisis de la serie de tiempo Para el análisis de datos, esta libreria fpp2 nos permite emplear las siguientes funciones:

autoplot(), para graficar la serie de tiempo ggseasonplot(), para graficar la estacionalidad de una serie de tiempo ggsubseriesplot(), para graficar subseries ggAcf(), para graficar la autocorrelación decompose(), permite realizar una descomposición de estacionalidad y tendencia. Grafico de la serie de tiempo Para el gráfico simple de la serie de tiempo empleamos la funcion autoplot(). Donde solo se requiere ingresar el objeto de la serie de tiempo.

autoplot(data_serie)+
        labs(title = "Time Series",       
             x = "Years",
             y = "Values",
             colour = "#00a0dc")+
        theme_bw() 

Descomposición de la serie de tiempo Para la descomposición de la serie de tiempo se emplea la función decompose(). Donde se debe indicar el objeto de la serie de tiempo y el tipo de descomposición. Los tipos de descomposición que acepta esta función es additive y multiplicative.

Aditivo: Serie=T + S + I

Multiplicativo: Serie=T x S x I

Donde:

T: Tendencia

S: Estacionalidad

I: Irregular o error

# Descomposición de la serie de tiempo. Se almacena en el objeto fit
fit <- decompose(data_serie, type='additive')
#fit <- decompose(data_serie, type='multiplicative')

# Para graficar esta descomposición volvemos a emplear la funcion autoplot, pero con el objeto fit
autoplot(fit)+
        labs(title = "Decomposition of The Time Series",                   
             x = "Years",
             y = "Values",
             colour = "Gears")+
        theme_bw()

library(highcharter)
## Warning: package 'highcharter' was built under R version 4.1.3
hchart(stl(data_serie, s.window='periodic'))
## Warning: Deprecated function. Use the `create_axis` function.

Grafico de la serie de tiempo con su tendencia El siguiente fragmento de código nos permite graficar la serie de tiempo con su tendencia. Notese que emplea el objeto fit en el cual guardamos previamente los valores de la descomposición. Nótese que se emplea la funcion trendcycle() para obtener los datos de tendencia del objeto fit.

autoplot(data_serie, series="Time Series") + 
        autolayer(trendcycle(fit), series="Trend") +
        labs(title = "Time Series",      
             x = "Years",
             y = "Values"
        ) + 
        theme_bw()
## Warning: Removed 12 rows containing missing values (`geom_line()`).

Grafico de estacionalidad Para realizar el gráfico de estacionalidad empleamos la función ggseasonplot. Donde el argumento es el objeto que contiene la serie de tiempo.

ggseasonplot(data_serie)

library(TSstudio)
ts_seasonal(data_serie, type = "all")
ts_heatmap(data_serie)
#Graficar la autocorrelacion 
acf(data_serie, lag=35, col="2",main ="",
    xlab="Lag",ylab="Values")

#Graficar la autocorrelacion parcial
pacf(data_serie, lag=35, col="2",main ="",
     xlab="Lag",ylab="Values")

#Como hay confirmación de tendencia se hace la diferencia (1 lag)
plot(diff(data_serie),xlab="Tiempo",ylab="Values")

acf(diff(data_serie), lag=35, col="2",main = "",
    xlab="Lag", ylab="Values")

pacf(diff(data_serie), lag=35,col="2",main = "",
     xlab="Lag",ylab="Values")

#Como la variancia se ve incrementa en el tiempo se debe sacar logaritmo natural de la serie
plot(diff(log(data_serie)),xlab="Years",ylab="Values")

#Augmented Dickey-Fuller test para ver no estacionaridad
#Devuelve la probabilidad de ser no estacionaria
#Si es mayor que 0.05 la serie es no estacionaria (tiene tendencia)
#Si es menor que 0.05 es estacionaria (No hay tendencia)

# library(aTSA)
aTSA::adf.test(diff(log(data_serie)))
## Augmented Dickey-Fuller Test 
## alternative: stationary 
##  
## Type 1: no drift no trend 
##      lag   ADF p.value
## [1,]   0 -25.1    0.01
## [2,]   1 -16.0    0.01
## [3,]   2 -13.8    0.01
## [4,]   3 -12.9    0.01
## [5,]   4 -15.3    0.01
## [6,]   5 -18.7    0.01
## Type 2: with drift no trend 
##      lag   ADF p.value
## [1,]   0 -25.1    0.01
## [2,]   1 -16.0    0.01
## [3,]   2 -13.7    0.01
## [4,]   3 -12.9    0.01
## [5,]   4 -15.3    0.01
## [6,]   5 -18.7    0.01
## Type 3: with drift and trend 
##      lag   ADF p.value
## [1,]   0 -25.1    0.01
## [2,]   1 -16.0    0.01
## [3,]   2 -13.7    0.01
## [4,]   3 -12.9    0.01
## [5,]   4 -15.3    0.01
## [6,]   5 -18.7    0.01
## ---- 
## Note: in fact, p.value = 0.01 means p.value <= 0.01

Pronóstico Métodos simples Para el pronóstico de series de tiempo mediante métodos básicos, la libreria fpp2 nos brinda las siguientes funciones:

naive(), metodo de naive simple ses(), exponential smoothing meanf(), media movil snaive(), metodo naive considerando estacionalidad El argumento a colocar en estas funciones es la serie de tiempo y el valor de h. Este valor de h es la cantidad de datos que deseamos pronosticar. Por ejemplo si deseamos pronosticar 12 datos, se debe indicar h=12.

Finalmente, para verificar el ajuste del método podemos emplear las siguientes funciones:

fitted(), obtiene un ajuste con la data historica checkresiduals(), permite analizar los residuales

# elaborando el método
m1 <- snaive(data_serie, h=115)

# graficando el pronóstico
autoplot(m1)

# verificando el ajuste del método
autoplot(m1)+autolayer(fitted(m1), series="Adjustment")
## Warning: Removed 12 rows containing missing values (`geom_line()`).

# verificando los residuales
checkresiduals(m1)

## 
##  Ljung-Box test
## 
## data:  Residuals from Seasonal naive method
## Q* = 572.68, df = 24, p-value < 2.2e-16
## 
## Model df: 0.   Total lags used: 24