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.3.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## ── Attaching packages ────────────────────────────────────────────── fpp2 2.5 ──
## ✔ ggplot2   3.5.1      ✔ fma       2.5   
## ✔ forecast  8.22.0     ✔ expsmooth 2.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## Warning: package 'forecast' was built under R version 4.3.3
## Warning: package 'fma' was built under R version 4.3.3
## Warning: package 'expsmooth' was built under R version 4.3.3
## 
AirPassengers
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 1949 112 118 132 129 121 135 148 148 136 119 104 118
## 1950 115 126 141 135 125 149 170 170 158 133 114 140
## 1951 145 150 178 163 172 178 199 199 184 162 146 166
## 1952 171 180 193 181 183 218 230 242 209 191 172 194
## 1953 196 196 236 235 229 243 264 272 237 211 180 201
## 1954 204 188 235 227 234 264 302 293 259 229 203 229
## 1955 242 233 267 269 270 315 364 347 312 274 237 278
## 1956 284 277 317 313 318 374 413 405 355 306 271 306
## 1957 315 301 356 348 355 422 465 467 404 347 305 336
## 1958 340 318 362 348 363 435 491 505 404 359 310 337
## 1959 360 342 406 396 420 472 548 559 463 407 362 405
## 1960 417 391 419 461 472 535 622 606 508 461 390 432

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.

#data_serie <- ts(data_serie$Serie, frequency=12, start=2004)

file_path <- "C:/PRACTICAS ARCGIS/Arcgispro/PRECI/DATOSPRECI.CSV"
datamocache<- read.csv(file_path)
datamocache
##        DATOS
## 1   239.9000
## 2   281.2000
## 3   473.7000
## 4   430.2000
## 5   153.1000
## 6    23.4000
## 7     0.3000
## 8     2.5000
## 9     7.1000
## 10    9.1000
## 11   58.3000
## 12    7.7000
## 13  618.1000
## 14  288.2000
## 15  192.9000
## 16  507.1000
## 17  188.5000
## 18    1.5000
## 19    2.5000
## 20    0.0000
## 21    0.3000
## 22   11.8000
## 23   56.1000
## 24    1.1000
## 25  145.3000
## 26  540.1000
## 27  691.3000
## 28  627.3000
## 29  190.0000
## 30   12.9000
## 31    2.8000
## 32    0.6000
## 33   18.9000
## 34   72.6000
## 35  222.5000
## 36    1.9000
## 37  446.6000
## 38  386.7000
## 39  269.1000
## 40  344.4000
## 41  170.4000
## 42   23.6000
## 43   34.8000
## 44    8.8000
## 45   73.1000
## 46   53.3000
## 47  187.0000
## 48    1.1000
## 49  236.5000
## 50  204.2000
## 51  365.9000
## 52  284.1000
## 53  240.2000
## 54   12.4000
## 55    5.1000
## 56    2.0000
## 57   13.8000
## 58    2.1000
## 59   27.9000
## 60   18.1000
## 61  227.0000
## 62  245.7000
## 63  192.5000
## 64  462.0000
## 65    6.2000
## 66    0.9000
## 67    3.7000
## 68    0.5000
## 69    1.3000
## 70    3.4000
## 71  108.0000
## 72    2.0000
## 73  263.5000
## 74  629.5000
## 75  485.0000
## 76  144.7000
## 77   32.8000
## 78   17.1000
## 79    5.9000
## 80    9.2000
## 81    4.0000
## 82   28.4000
## 83   49.1000
## 84   11.2000
## 85  242.9000
## 86  272.9000
## 87  371.2000
## 88  407.6000
## 89  116.8000
## 90   29.7000
## 91   19.8000
## 92    0.7000
## 93    1.4000
## 94   21.7000
## 95   55.7000
## 96    0.5000
## 97  535.3000
## 98  490.2000
## 99  592.7000
## 100 320.5000
## 101 141.7000
## 102   8.8000
## 103   7.8000
## 104  67.2000
## 105  13.6000
## 106   9.9000
## 107  31.1000
## 108  10.8000
## 109 301.5000
## 110 288.4000
## 111 381.1000
## 112 201.0000
## 113 140.0000
## 114  13.5000
## 115   1.4000
## 116   0.6000
## 117   6.0000
## 118   0.1000
## 119  65.0000
## 120   0.3000
## 121 389.0000
## 122 835.3000
## 123 489.1000
## 124 694.4000
## 125 231.9000
## 126  18.7000
## 127  31.8000
## 128   1.5000
## 129   1.1000
## 130  24.8000
## 131 300.7000
## 132  13.8000
## 133 369.6000
## 134 490.5000
## 135 144.1000
## 136 725.7000
## 137   9.9000
## 138  48.4000
## 139  47.3000
## 140   1.1000
## 141   4.2000
## 142   4.8000
## 143 150.6000
## 144   4.2000
## 145 636.8000
## 146 782.6000
## 147 827.9000
## 148 440.5000
## 149 409.3000
## 150  30.6000
## 151   1.8000
## 152   1.3000
## 153   6.1000
## 154  15.7000
## 155  75.8000
## 156   0.9000
## 157 424.7000
## 158 491.6000
## 159 550.9000
## 160 435.1000
## 161  64.9000
## 162  12.8000
## 163   0.6000
## 164   2.2000
## 165   6.7000
## 166   0.3000
## 167  66.3000
## 168   4.9000
## 169 343.7000
## 170 398.2000
## 171 147.1000
## 172 271.3000
## 173 184.6000
## 174  50.3000
## 175   4.9000
## 176   0.9000
## 177  60.0000
## 178   2.5000
## 179  25.1000
## 180  12.5000
## 181 419.5000
## 182 553.5000
## 183 364.6000
## 184 489.0000
## 185 420.8000
## 186 238.7000
## 187  32.1000
## 188   1.0000
## 189  85.3000
## 190 181.3000
## 191 232.6000
## 192   1.2000
## 193 423.2000
## 194 383.7000
## 195 625.9000
## 196 441.1000
## 197 115.7000
## 198   6.2000
## 199   2.4000
## 200   1.9000
## 201   3.4000
## 202  13.3000
## 203  18.3000
## 204  28.2000
## 205 539.7000
## 206 577.3000
## 207 929.5000
## 208 720.3000
## 209 309.6000
## 210  52.3000
## 211   0.3000
## 212   4.6000
## 213  30.0000
## 214   5.1000
## 215  99.5000
## 216   2.2000
## 217 132.0000
## 218 550.7000
## 219 283.3000
## 220 281.7000
## 221 124.6000
## 222   1.3000
## 223   3.0000
## 224   0.5000
## 225   0.8000
## 226   7.7000
## 227 344.2000
## 228   0.8000
## 229 430.6000
## 230 750.8000
## 231 638.9000
## 232 544.4000
## 233 357.2000
## 234 130.5000
## 235  10.8000
## 236   0.8000
## 237   5.0000
## 238  99.5000
## 239 114.4105
## 240  23.4000
## 241 289.2000
## 242 826.6000
## 243 324.0000
## 244 438.6200
## 245 180.4100
## 246  23.2000
## 247   5.7000
## 248   3.5000
## 249  22.5000
## 250   1.4000
## 251 117.3637
## 252   0.7000
## 253 495.5000
## 254 482.2000
## 255 464.4000
## 256 328.7000
## 257 114.4000
## 258   6.4000
## 259   1.4000
## 260   5.1000
## 261  27.1000
## 262   5.7000
## 263 103.5000
## 264  10.1000
## 265 239.9000
## 266 281.2000
## 267 473.7000
## 268 430.2000
## 269 153.1000
## 270  23.4000
## 271   0.3000
## 272   2.5000
## 273   7.1000
## 274   9.1000
## 275  58.3000
## 276   7.7000
## 277 618.1000
## 278 288.2000
## 279 192.9000
## 280 507.1000
## 281 188.5000
## 282   1.5000
## 283   2.5000
## 284   0.0000
## 285   0.3000
## 286  11.8000
## 287  56.1000
## 288   1.1000
## 289 145.3000
## 290 540.1000
## 291 691.3000
## 292 627.3000
## 293 190.0000
## 294  12.9000
## 295   2.8000
## 296   0.6000
## 297  18.9000
## 298  72.6000
## 299 222.5000
## 300   1.9000
## 301 446.6000
## 302 386.7000
## 303 269.1000
## 304 344.4000
## 305 170.4000
## 306  23.6000
## 307  34.8000
## 308   8.8000
## 309  73.1000
## 310  53.3000
## 311 187.0000
## 312   1.1000
## 313 236.5000
## 314 204.2000
## 315 365.9000
## 316 284.1000
## 317 240.2000
## 318  12.4000
## 319   5.1000
## 320   2.0000
## 321  13.8000
## 322   2.1000
## 323  27.9000
## 324  18.1000
## 325 227.0000
## 326 245.7000
## 327 192.5000
## 328 462.0000
## 329   6.2000
## 330   0.9000
## 331   3.7000
## 332   0.5000
## 333   1.3000
## 334   3.4000
## 335 108.0000
## 336   2.0000
## 337 263.5000
## 338 629.5000
## 339 485.0000
## 340 144.7000
## 341  32.8000
## 342  17.1000
## 343   5.9000
## 344   9.2000
## 345   4.0000
## 346  28.4000
## 347  49.1000
## 348  11.2000
## 349 242.9000
## 350 272.9000
## 351 371.2000
## 352 407.6000
## 353 116.8000
## 354  29.7000
## 355  19.8000
## 356   0.7000
## 357   1.4000
## 358  21.7000
## 359  55.7000
## 360   0.5000
## 361 535.3000
## 362 490.2000
## 363 592.7000
## 364 320.5000
## 365 141.7000
## 366   8.8000
## 367   7.8000
## 368  67.2000
## 369  13.6000
## 370   9.9000
## 371  31.1000
## 372  10.8000
## 373 301.5000
## 374 288.4000
## 375 381.1000
## 376 201.0000
## 377 140.0000
## 378  13.5000
## 379   1.4000
## 380   0.6000
## 381   6.0000
## 382   0.1000
## 383  65.0000
## 384   0.3000
## 385 389.0000
## 386 835.3000
## 387 489.1000
## 388 694.4000
## 389 231.9000
## 390  18.7000
## 391  31.8000
## 392   1.5000
## 393   1.1000
## 394  24.8000
## 395 300.7000
## 396  13.8000
## 397 369.6000
## 398 490.5000
## 399 144.1000
## 400 725.7000
## 401   9.9000
## 402  48.4000
## 403  47.3000
## 404   1.1000
## 405   4.2000
## 406   4.8000
## 407 150.6000
## 408   4.2000
## 409 636.8000
## 410 782.6000
## 411 827.9000
## 412 440.5000
## 413 409.3000
## 414  30.6000
## 415   1.8000
## 416   1.3000
## 417   6.1000
## 418  15.7000
## 419  75.8000
## 420   0.9000
## 421 424.7000
## 422 491.6000
## 423 550.9000
## 424 435.1000
## 425  64.9000
## 426  12.8000
## 427   0.6000
## 428   2.2000
## 429   6.7000
## 430   0.3000
## 431  66.3000
## 432   4.9000
## 433 343.7000
## 434 398.2000
## 435 147.1000
## 436 271.3000
## 437 184.6000
## 438  50.3000
## 439   4.9000
## 440   0.9000
## 441  60.0000
## 442   2.5000
## 443  25.1000
## 444  12.5000
## 445 419.5000
## 446 553.5000
## 447 364.6000
## 448 489.0000
## 449 420.8000
## 450 238.7000
## 451  32.1000
## 452   1.0000
## 453  85.3000
## 454 181.3000
## 455 232.6000
## 456   1.2000
## 457 423.2000
## 458 383.7000
## 459 625.9000
## 460 441.1000
## 461 115.7000
## 462   6.2000
## 463   2.4000
## 464   1.9000
## 465   3.4000
## 466  13.3000
## 467  18.3000
## 468  28.2000
## 469 539.7000
## 470 577.3000
## 471 929.5000
## 472 720.3000
## 473 309.6000
## 474  52.3000
## 475   0.3000
## 476   4.6000
## 477  30.0000
## 478   5.1000
## 479  99.5000
## 480   2.2000
## 481 132.0000
## 482 550.7000
## 483 283.3000
## 484 281.7000
## 485 124.6000
## 486   1.3000
## 487   3.0000
## 488   0.5000
## 489   0.8000
## 490   7.7000
## 491 344.2000
## 492   0.8000
## 493 430.6000
## 494 750.8000
## 495 638.9000
## 496 544.4000
## 497 357.2000
## 498 130.5000
## 499  10.8000
## 500   0.8000
## 501   5.0000
## 502  99.5000
## 503  58.3000
## 504  23.4000
## 505 239.9000
## 506 281.2000
## 507 473.7000
## 508 430.2000
## 509 153.1000
## 510  23.4000
## 511   0.3000
## 512   2.5000
## 513   7.1000
## 514   9.1000
## 515  58.3000
## 516   7.7000
## 517 618.1000
## 518 288.2000
## 519 192.9000
## 520 507.1000
## 521 188.5000
## 522   1.5000
## 523   2.5000
## 524   0.0000
## 525   0.3000
## 526  11.8000
## 527  56.1000
## 528   1.1000
## 529 145.3000
## 530 540.1000
## 531 691.3000
## 532 627.3000
## 533 190.0000
## 534  12.9000
## 535   2.8000
## 536   0.6000
## 537  18.9000
## 538  72.6000
## 539 222.5000
## 540   1.9000
## 541 446.6000
## 542 386.7000
## 543 269.1000
## 544 344.4000
## 545 170.4000
## 546  23.6000
## 547  34.8000
## 548   8.8000
## 549  73.1000
## 550  53.3000
## 551 187.0000
## 552   1.1000
## 553 239.9000
## 554 281.2000
## 555 473.7000
## 556 430.2000
## 557 153.1000
## 558  23.4000
## 559   0.3000
## 560   2.5000
## 561   7.1000
## 562   9.1000
## 563  58.3000
## 564   7.7000
## 565 618.1000
## 566 288.2000
## 567 192.9000
## 568 507.1000
## 569 188.5000
## 570   1.5000
## 571   2.5000
## 572   0.0000
## 573   0.3000
## 574  11.8000
## 575  56.1000
## 576   1.1000
## 577 145.3000
## 578 540.1000
## 579 691.3000
## 580 627.3000
## 581 190.0000
## 582  12.9000
## 583   2.8000
## 584   0.6000
## 585  18.9000
## 586  72.6000
## 587 222.5000
## 588   1.9000
## 589 446.6000
## 590 386.7000
## 591 269.1000
## 592 344.4000
## 593 170.4000
## 594  23.6000
## 595  34.8000
## 596   8.8000
## 597  73.1000
## 598  53.3000
## 599 187.0000
## 600   1.1000
## 601 236.5000
## 602 204.2000
## 603 365.9000
## 604 284.1000
## 605 240.2000
## 606  12.4000
## 607   5.1000
## 608   2.0000
## 609  13.8000
## 610   2.1000
## 611  27.9000
## 612  18.1000
## 613 227.0000
## 614 245.7000
## 615 192.5000
## 616 462.0000
## 617   6.2000
## 618   0.9000
## 619   3.7000
## 620   0.5000
## 621   1.3000
## 622   3.4000
## 623 108.0000
## 624   2.0000
## 625 263.5000
## 626 629.5000
## 627 485.0000
## 628 144.7000
## 629  32.8000
## 630  17.1000
## 631   5.9000
## 632   9.2000
## 633   4.0000
## 634  28.4000
## 635  49.1000
## 636  11.2000
## 637 242.9000
## 638 272.9000
## 639 371.2000
## 640 407.6000
## 641 116.8000
## 642  29.7000
## 643  19.8000
## 644   0.7000
## 645   1.4000
## 646  21.7000
## 647  55.7000
## 648   0.5000
## 649 535.3000
## 650 490.2000
## 651 592.7000
## 652 320.5000
## 653 141.7000
## 654   8.8000
## 655   7.8000
## 656  67.2000
## 657  13.6000
## 658   9.9000
## 659  31.1000
## 660  10.8000
## 661 301.5000
## 662 288.4000
## 663 381.1000
## 664 201.0000
## 665 140.0000
## 666  13.5000
## 667   1.4000
## 668   0.6000
## 669   6.0000
## 670   0.1000
## 671  65.0000
## 672   0.3000
## 673 389.0000
## 674 835.3000
## 675 489.1000
## 676 694.4000
## 677 231.9000
## 678  18.7000
## 679  31.8000
## 680   1.5000
## 681   1.1000
## 682  24.8000
## 683 300.7000
## 684  13.8000
## 685 369.6000
## 686 490.5000
## 687 144.1000
## 688 725.7000
## 689   9.9000
## 690  48.4000
## 691  47.3000
## 692   1.1000
## 693   4.2000
## 694   4.8000
## 695 150.6000
## 696   4.2000
## 697 636.8000
## 698 782.6000
## 699 827.9000
## 700 440.5000
## 701 409.3000
## 702  30.6000
## 703   1.8000
## 704   1.3000
## 705   6.1000
## 706  15.7000
## 707  75.8000
## 708   0.9000
## 709 424.7000
## 710 491.6000
## 711 550.9000
## 712 435.1000
## 713  64.9000
## 714  12.8000
## 715   0.6000
## 716   2.2000
## 717   6.7000
## 718   0.3000
## 719  66.3000
## 720   4.9000
## 721 343.7000
## 722 398.2000
## 723 147.1000
## 724 271.3000
## 725 184.6000
## 726  50.3000
## 727   4.9000
## 728   0.9000
## 729  60.0000
## 730   2.5000
## 731  25.1000
## 732  12.5000
## 733 419.5000
## 734 553.5000
## 735 364.6000
## 736 489.0000
## 737 420.8000
## 738 238.7000
## 739  32.1000
## 740   1.0000
## 741  85.3000
## 742 181.3000
## 743 232.6000
## 744   1.2000
## 745 423.2000
## 746 383.7000
## 747 625.9000
## 748 441.1000
## 749 115.7000
## 750   6.2000
## 751   2.4000
## 752   1.9000
## 753   3.4000
## 754  13.3000
## 755  18.3000
## 756  28.2000
## 757 539.7000
## 758 577.3000
## 759 929.5000
## 760 720.3000
## 761 309.6000
## 762  52.3000
## 763   0.3000
## 764   4.6000
## 765  30.0000
## 766   5.1000
## 767  99.5000
## 768   2.2000
## 769 132.0000
## 770 550.7000
## 771 283.3000
## 772 281.7000
## 773 124.6000
## 774   1.3000
## 775   3.0000
## 776   0.5000
## 777   0.8000
## 778   7.7000
## 779 344.2000
## 780   0.8000
## 781 430.6000
## 782 750.8000
## 783 638.9000
## 784 544.4000
## 785 357.2000
## 786 130.5000
## 787  10.8000
## 788   0.8000
## 789   5.0000
## 790  99.5000
## 791 114.4105
## 792  23.4000
## 793 289.2000
## 794 826.6000
## 795 324.0000
## 796 438.6200
## 797 180.4100
## 798  23.2000
## 799   5.7000
## 800   3.5000
## 801  22.5000
## 802   1.4000
## 803 117.3637
## 804   0.7000
## 805 495.5000
## 806 482.2000
## 807 464.4000
## 808 328.7000
## 809 114.4000
## 810   6.4000
## 811   1.4000
## 812   5.1000
## 813  27.1000
## 814   5.7000
## 815 103.5000
## 816  10.1000
data_serie <- ts(datamocache$DATOS, frequency=12, start=1946)
plot(data_serie)

#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 = "Serie de tiempo",       
             x = "Tiempo",
             y = "Valor",
             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 = "Descomposicion de la serie de tiempo",                   
             x = "Tiempo",
             y = "Valor",
             colour = "Gears")+
        theme_bw()

library(highcharter)
## Warning: package 'highcharter' was built under R version 4.3.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="Serie tiempo") + 
        autolayer(trendcycle(fit), series="Tendencia") +
        labs(title = "Serie de tiempo",      
             x = "Tiempo",
             y = "Valor"
        ) + 
        theme_bw()
## Warning: Removed 12 rows containing missing values or values outside the scale range
## (`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)
## Warning: package 'TSstudio' was built under R version 4.3.3
ts_seasonal(data_serie, type = "all")
ts_heatmap(data_serie)
#Graficar la autocorrelacion 
acf(data_serie, lag=35, col="2",main ="",
    xlab="Lag",ylab="Valores")

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

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

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

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

#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)))

library(forecast) #Ajuste automático de los coeficientes

#Ajuste automático de los coeficientes




ARIMAmodel <- auto.arima(diff(log(data_serie)))
ARIMAmodel

Pronóstico Métodos simples




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

# graficando el pronóstico
autoplot(m1)

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

# verificando los residuales
checkresiduals(m1)

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

Método regresión Para el pronóstico de series de tiempo mediante regresión, la libreria fpp2 nos brinda la función tslm(). Esta función la emplearemos para crear una regresión de la serie de tiempo con los datos de la descomposición estacional y/o tendencia. Entonces:

Si observamos solo tendencia usaremos : tslm(data_serie ~ trend) Si observamos solo estacionalidad usaremos : tslm(data_serie ~ season) Si observamos tendencia y estacionalidad usaremos : tslm(data_serie ~ trend + season) Luego con la función forecast realizamos el pronostico. El argumento a colocar en estas funcion es la regresión y el valor de h. Este valor de h es la cantidad de datos que deseamos pronosticar.

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

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

library(tseries)
## Warning: package 'tseries' was built under R version 4.3.3
# elaborando la regresion
regresion <- tslm(data_serie ~ trend + season)

# elaborando el pronostico
m2 <- forecast(regresion)

# graficando el pronóstico
autoplot(m2)

# verificando el ajuste del método
autoplot(m2)+autolayer(fitted(m2), series="Ajuste")

# verificando los residuales
checkresiduals(m2)

## 
##  Ljung-Box test
## 
## data:  Residuals from Linear regression model
## Q* = 208.73, df = 24, p-value < 2.2e-16
## 
## Model df: 0.   Total lags used: 24