Conformalized Forecasting using Machine
Leaning models 2
(res2 <- ahead::mlf(AirPassengers, h=25L, lags=15L,
type_pi="kde", B=250L))
## Point Forecast Lo 95 Hi 95
## Jan 1961 460.2157 385.1324 570.6067
## Feb 1961 423.2877 346.7835 513.9668
## Mar 1961 448.7656 376.4624 556.3026
## Apr 1961 493.9682 419.8559 613.2063
## May 1961 529.5625 455.0006 626.5372
## Jun 1961 584.2230 504.3983 694.1163
## Jul 1961 681.5042 614.2395 792.7455
## Aug 1961 658.4954 585.7598 761.6206
## Sep 1961 561.1623 479.9491 675.5470
## Oct 1961 502.7355 428.7241 604.7186
## Nov 1961 430.8452 360.5704 536.2181
## Dec 1961 469.5734 384.0792 575.6052
## Jan 1962 494.5805 418.0330 597.7645
## Feb 1962 453.7158 378.8465 558.7620
## Mar 1962 476.5171 397.5826 562.2505
## Apr 1962 531.2383 463.2526 627.2389
## May 1962 572.0854 499.1660 663.0207
## Jun 1962 637.5260 565.4585 756.0907
## Jul 1962 742.6750 673.1668 831.4791
## Aug 1962 715.1415 638.6169 806.6096
## Sep 1962 616.7858 538.2935 725.0534
## Oct 1962 538.8315 466.9625 641.0818
## Nov 1962 473.2208 404.3596 583.5686
## Dec 1962 500.7060 436.4639 622.1696
## Jan 1963 529.7078 451.1332 639.8503
(res3 <- ahead::mlf(fdeaths, h=25L, lags=15L,
type_pi="kde", B=250L))
## Point Forecast Lo 95 Hi 95
## Jan 1980 738.3803 483.7579 972.2429
## Feb 1980 768.1488 490.0596 1042.3561
## Mar 1980 689.2663 429.2867 939.5061
## Apr 1980 594.7102 364.3839 853.5802
## May 1980 512.1141 261.3169 771.2413
## Jun 1980 450.9838 181.8641 707.9208
## Jul 1980 411.5862 168.8262 666.4668
## Aug 1980 418.3016 171.3724 660.5458
## Sep 1980 405.2975 112.8757 668.1534
## Oct 1980 433.0452 192.5523 677.9280
## Nov 1980 500.3941 243.2378 738.3525
## Dec 1980 605.3976 347.5227 882.5821
## Jan 1981 680.0974 446.8777 952.9346
## Feb 1981 725.2946 470.9961 989.1541
## Mar 1981 673.6532 420.7839 972.2387
## Apr 1981 602.6292 360.7824 862.0861
## May 1981 510.0039 272.9706 756.4047
## Jun 1981 479.3524 208.7614 743.0630
## Jul 1981 428.7199 178.0314 688.9748
## Aug 1981 413.2095 163.8202 694.0200
## Sep 1981 424.7080 190.7713 677.4749
## Oct 1981 450.2358 161.2617 724.0660
## Nov 1981 538.1649 276.3705 798.1206
## Dec 1981 586.5090 362.7278 844.2893
## Jan 1982 650.1907 417.8179 910.6355
par(mfrow=c(1, 2))
plot(res2)
plot(res3)

fit_func <- function(x, y, ...)
{
df <- data.frame(y=y, x) # naming of columns is mandatory for `predict`
colnames(df) <- c("y", paste0("X", seq_len(ncol(x))))
ranger::ranger(y ~ ., data=df, ...)
}
predict_func <- function(obj, newx)
{
colnames(newx) <- paste0("X", seq_len(ncol(newx))) # mandatory, linked to df in fit_func
predict(object=obj, data=newx)$predictions # only accepts a named newx
}
(res2 <- ahead::mlf(AirPassengers, h=25L, lags=15L, fit_func=fit_func, predict_func=predict_func, type_pi="kde", B=250L))
## Point Forecast Lo 95 Hi 95
## Jan 1961 456.3789 318.5626 666.9887
## Feb 1961 461.7948 333.2885 647.5682
## Mar 1961 463.5282 342.0107 677.1755
## Apr 1961 500.1423 367.7418 722.6364
## May 1961 542.4850 407.8611 738.2748
## Jun 1961 557.2213 417.5466 758.8596
## Jul 1961 559.2849 435.9916 768.7281
## Aug 1961 543.9938 415.6735 741.2660
## Sep 1961 524.9379 386.7883 737.2095
## Oct 1961 506.2585 379.4496 711.6281
## Nov 1961 463.2249 332.9924 664.7892
## Dec 1961 457.5622 315.2344 660.7715
## Jan 1962 490.7141 356.9024 690.1009
## Feb 1962 508.9902 370.8140 713.6041
## Mar 1962 514.5357 380.0794 679.2279
## Apr 1962 532.3639 410.9114 709.3610
## May 1962 538.7488 425.0603 708.6190
## Jun 1962 536.3641 412.5097 746.1029
## Jul 1962 541.9387 424.3131 714.7611
## Aug 1962 530.6778 398.5910 704.5319
## Sep 1962 531.4149 394.9306 733.3889
## Oct 1962 521.6829 388.4511 703.1259
## Nov 1962 508.1580 390.2009 708.5920
## Dec 1962 501.9020 386.3162 730.0746
## Jan 1963 520.3460 383.0088 731.2567
(res3 <- ahead::mlf(fdeaths, h=25L, lags=15L, fit_func=fit_func, predict_func=predict_func, type_pi="kde", B=250L))
## Point Forecast Lo 95 Hi 95
## Jan 1980 699.5128 513.9370 766.6191
## Feb 1980 706.7372 536.5223 778.5103
## Mar 1980 643.2606 462.0299 717.6746
## Apr 1980 566.5189 458.5590 637.2802
## May 1980 489.9280 346.3819 563.2270
## Jun 1980 439.2002 348.0748 517.4427
## Jul 1980 416.6216 240.4183 496.3519
## Aug 1980 409.8647 314.2224 491.4099
## Sep 1980 408.6902 221.3606 488.2713
## Oct 1980 427.2051 259.6464 511.6554
## Nov 1980 488.9813 318.0214 561.4720
## Dec 1980 611.0195 501.6107 684.8846
## Jan 1981 642.9757 526.5768 722.9290
## Feb 1981 652.4744 486.8568 736.3078
## Mar 1981 628.5840 534.8260 699.3343
## Apr 1981 550.1154 437.1427 630.3685
## May 1981 464.3170 360.5079 540.6060
## Jun 1981 443.7953 349.0024 509.9642
## Jul 1981 418.5928 268.9856 497.9665
## Aug 1981 411.8030 250.1095 490.1978
## Sep 1981 418.0032 247.7746 492.9707
## Oct 1981 435.1195 267.7688 527.7576
## Nov 1981 530.0899 429.4134 606.1159
## Dec 1981 610.5985 505.2038 690.9582
## Jan 1982 632.5582 524.3089 717.4256
par(mfrow=c(1, 2))
plot(res2)
plot(res3)
