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