ARDL model with Rolling Origin in R

I have this data frame where I have used the ARDL model previous but now I want to validate the model with rolling origin in which I don't have any experience. I have tried to do it with rolling origin but it gives me an error. Can anyone please help me with this one anything will be highly appreciated?

Data:

structure(list(Date = structure(c(289094400, 297043200, 304992000, 
312854400, 320716800, 328665600, 336614400, 344476800, 352252800, 
360201600, 368150400, 376012800, 383788800, 391737600, 399686400, 
407548800, 415324800, 423273600, 431222400, 439084800, 446947200, 
454896000, 462844800, 470707200, 478483200, 486432000, 494380800, 
502243200, 510019200, 517968000, 525916800, 533779200, 541555200, 
549504000, 557452800, 565315200, 573177600, 581126400, 589075200, 
596937600, 604713600, 612662400, 620611200, 628473600, 636249600, 
644198400, 652147200, 660009600, 667785600, 675734400, 683683200, 
691545600, 699408000, 707356800, 715305600, 723168000, 730944000, 
738892800, 746841600, 754704000, 762480000, 770428800, 778377600, 
786240000, 794016000, 801964800, 809913600, 817776000, 825638400, 
833587200, 841536000, 849398400, 857174400, 865123200, 873072000, 
880934400, 888710400, 896659200, 904608000, 912470400, 920246400, 
928195200, 936144000, 944006400, 951868800, 959817600, 967766400, 
975628800, 983404800, 991353600, 999302400, 1007164800, 1014940800, 
1022889600, 1030838400, 1038700800, 1046476800, 1054425600, 1062374400, 
1070236800, 1078099200, 1086048000, 1093996800, 1101859200, 1109635200, 
1117584000, 1125532800, 1133395200, 1141171200, 1149120000, 1157068800, 
1164931200, 1172707200, 1180656000, 1188604800, 1196467200, 1204329600, 
1212278400, 1220227200, 1228089600, 1235865600, 1243814400, 1251763200, 
1259625600, 1267401600, 1275350400, 1283299200, 1291161600, 1298937600, 
1306886400, 1314835200, 1322697600, 1330560000, 1338508800, 1346457600, 
1354320000, 1362096000, 1370044800, 1377993600, 1385856000, 1393632000, 
1401580800, 1409529600, 1417392000, 1425168000, 1433116800, 1441065600, 
1448928000, 1456790400, 1464739200, 1472688000, 1480550400, 1488326400, 
1496275200, 1504224000, 1512086400, 1519862400, 1527811200, 1535760000, 
1543622400, 1551398400, 1559347200, 1567296000, 1575158400, 1583020800, 
1590969600, 1598918400, 1606780800, 1614556800, 1622505600, 1630454400, 
1638316800), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    Industrialproduction = c(8.2, 8.79, 0.94, 1.53, -3.18, -8.66, 
    -8.96, -11.93, -8.14, -4.5, 1.53, 2.06, 2.39, 2.02, 2.01, 
    1.68, 2.16, 2.15, 3.77, 5.95, 3.58, 0.81, -1.58, -1.72, 3.62, 
    9.78, 8.51, 3.49, 1.97, -1.02, 1.92, 6.13, 3.87, 3.54, 2.76, 
    4.19, 4.73, 4.84, 6.64, 3.88, 2.05, 1.36, 0.53, 1.47, 1.61, 
    3.22, -1.45, -2.76, -3.83, -5.06, -4.01, -1.76, -0.27, -0.82, 
    2.23, 0.69, 1.38, 2.07, 2.32, 4.1, 4.61, 5.68, 6.13, 5.91, 
    2.85, 1.66, 1, 0.37, 2.52, 1.26, 1.24, 1.48, 0.37, 2.24, 
    2.7, 4.38, 7.6, 3.89, 0.84, -0.82, -0.46, 5.61, 9.48, 5.06, 
    1.95, 2.1, 1.08, 6.27, 1.46, 2.28, 3.21, 3.37, 12.94, -1.06, 
    -2.07, -6.22, -5.19, 6.65, 6.78, 4.35, -2.69, -1.31, -2.08, 
    3.44, -3.08, -0.92, -1.62, -0.91, 8.32, 2.57, 4.33, 2.44, 
    1.52, -1.3, -4.94, -3.97, -3.59, -1.83, 1.77, -1.86, -4.86, 
    -5.07, -7.55, -5.37, -0.33, -1.2, -0.11, -1.11, -8.39, -5.4, 
    -5.52, -4.16, 0.12, -0.7, -0.58, -0.59, 0.48, 3.87, 5.29, 
    7.91, 7.21, -0.45, -2.23, -1.86, 4.19, 5.9, 5.94, 2.45, 0, 
    -0.75, -1.08, 1.63, -3.28, -0.22, 3.49, 1.07, 1.53, 5.3, 
    4.21, 6.14, 10.24, 2.26, 0.71, -1.3, -8.9, -12.36, -5.02, 
    -2.83, 3.76, 9.86, 1.9, 0.94), Householdconsumption = c(30.09, 
    32.53, 33.35, 35.23, 37.18, 37.59, 38.89, 39.82, 41.56, 42.7, 
    43.74, 45.03, 46.19, 46.95, 48.29, 49.84, 51.26, 52.15, 53.5, 
    54.36, 55.4, 56.7, 57.05, 58.88, 60.09, 61.44, 63.27, 64.74, 
    66.63, 68.35, 69.55, 70.81, 72.3, 74.29, 76.65, 78.82, 81.51, 
    83.81, 86.53, 88.4, 90.29, 92.46, 93.95, 95.99, 97.85, 100.83, 
    102.42, 104.05, 106.08, 107.79, 109.33, 110.63, 111.71, 113.52, 
    114.9, 116.02, 118.31, 119.4, 122.27, 124.05, 125.13, 125.99, 
    127.59, 129.19, 130.16, 132.29, 135.06, 136.61, 139.34, 142.14, 
    144.59, 146.95, 149.43, 151.71, 155.34, 156.37, 158.39, 160.69, 
    164.47, 164.41, 167.54, 169.48, 170.09, 172.51, 176.26, 177.61, 
    179.44, 180.28, 182.96, 184.01, 186.83, 186.34, 188.79, 190.18, 
    191.94, 194.56, 196.46, 198.86, 201.75, 203.09, 205.24, 208.26, 
    210.84, 213.9, 216.18, 217.54, 220.61, 222.9, 223.67, 227.66, 
    230.62, 232.57, 234.8, 237.82, 241.91, 244.47, 248.84, 248.63, 
    248.14, 243.9, 241.46, 239.04, 240.72, 243.03, 241.87, 248, 
    249.95, 251.91, 254.92, 254.81, 257.17, 261.11, 262.28, 265.29, 
    266.74, 271.42, 274.28, 277.61, 282.48, 282.94, 285.76, 290.21, 
    292.88, 294.9, 296.07, 299.14, 302.58, 302.82, 309.63, 313.2, 
    318.64, 320.87, 323.41, 325.57, 326.56, 329.67, 335.95, 337.61, 
    341.08, 345.09, 346.16, 350.18, 350.23, 347.89, 339.85, 270.86, 
    325.65, 320.28, 311.3, 341.24, 354.61, 361.47), Investmentgrowth = c(17.3, 
    22.73, 25.8, 29.99, 21.59, 15.49, 11.11, 6.04, 4.23, 4.42, 
    4.28, 3.51, 6.53, 8.81, 10.52, 12.63, 14.6, 8.04, 7.42, 10.72, 
    11.15, 16.11, 15.45, 11.36, 18.41, 8.32, 8.99, 8.18, 0.86, 
    5.04, 9.07, 14.27, 11.11, 19.61, 23.14, 19.47, 27.16, 24.6, 
    17.45, 16.17, 20.57, 17.01, 17.76, 15.36, 8.28, 7.05, 2.92, 
    2.83, -3.08, -4.32, -7.48, -6.69, -3.71, -4.64, -3.87, -4.88, 
    -1.72, -0.38, 1.97, 4.65, 2.84, 2.98, 3.68, 2.88, 0.69, 3.5, 
    4.91, 5.66, 11.3, 13.85, 10.87, 4.01, -5.63, -8.06, -3.81, 
    3.94, 10.74, 9.14, 3.83, 3.36, 3.29, 3.24, 7.59, 3.43, 7.05, 
    13.14, 1.12, 7.68, 4.22, 1.34, 9.27, 0.78, 0.66, -1.52, 4.17, 
    12.34, 11.74, 5.2, 1.89, -1.56, 2.26, 5.89, 5.79, 4.84, 3.44, 
    7.15, 7.27, 7.31, 6.11, 5.7, 8.15, 6.96, 7.79, 10.05, 2.71, 
    9.61, 4.63, 2.72, 1.13, -6.1, -8.98, -14.36, -9.8, -11.41, 
    -3.13, 1.28, 3.81, 9.18, 1.62, 2.05, 2.14, 2.03, 7.32, 3.88, 
    0.09, 3.44, -1.27, 6.8, 10.41, 5.73, 12.93, 7.89, 6.8, 7.92, 
    8.2, 9.32, 6.18, 7.39, 5.22, 6.07, 9.44, 5.64, 6.8, 7.2, 
    4.77, 6.83, 3.74, 1.63, 2.59, 1.17, 4.39, 3.28, 3.78, 2.18, 
    -1.93, -19.78, -7.51, -2.54, -0.99, 23.33, 6.54, 4.25), ConsumerPriceIndex = c(24.88, 
    25.94, 27.55, 28.28, 29.79, 31.39, 31.92, 32.55, 33.55, 34.94, 
    35.55, 36.48, 37.02, 38.14, 38.14, 38.45, 38.73, 39.54, 40.1, 
    40.49, 40.76, 41.57, 41.99, 42.35, 43.25, 44.46, 44.46, 44.74, 
    45.06, 45.58, 45.81, 46.42, 46.88, 47.49, 47.72, 48.14, 48.44, 
    49.43, 49.83, 50.33, 50.82, 52.02, 52.42, 53.11, 53.91, 55.6, 
    56.69, 57.09, 57.59, 60.27, 60.67, 61.27, 61.67, 62.56, 62.56, 
    62.86, 63.16, 64.05, 64.45, 64.35, 64.55, 65.35, 65.45, 65.64, 
    66.24, 67.04, 67.34, 67.63, 68.03, 68.63, 68.93, 69.13, 69.13, 
    69.82, 70.22, 70.32, 70.7, 71.3, 71.5, 71.8, 71.9, 72.3, 
    72.4, 72.6, 72.3, 72.9, 73.1, 73.2, 73, 74.1, 74.1, 74, 74.1, 
    74.6, 74.8, 75.2, 75.3, 75.4, 75.9, 76.2, 76.1, 76.6, 76.7, 
    77.4, 77.5, 78.1, 78.6, 78.9, 78.9, 80.1, 80.5, 81.3, 81.4, 
    82, 81.9, 83, 83.4, 85.2, 86.1, 85.5, 85.8, 86.7, 87.1, 88, 
    88.7, 89.5, 89.8, 91.2, 92.2, 93.3, 94.4, 95.1, 95.4, 95.5, 
    96.5, 97.6, 98.1, 98.3, 99.1, 99.6, 99.7, 100.2, 100.3, 100.1, 
    99.7, 100.2, 100.2, 100.3, 100.2, 100.6, 101.1, 101.9, 102.7, 
    103.5, 104.3, 105, 105.1, 105.9, 106.6, 107.1, 107, 107.9, 
    108.4, 108.5, 108.6, 108.8, 109.2, 109.4, 109.7, 111.4, 112.4, 
    114.7), NORTH = c(4.06976744186047, 5.51675977653633, 7.2799470549305, 
    4.75015422578655, 4.59363957597172, 3.15315315315317, 1.2008733624454, 
    -0.377562028047452, -0.108283703302655, 0.650406504065032, 
    0.969305331179318, 0.106666666666688, 3.09003729355352, 2.11886304909562, 
    2.32793522267207, 5.68743818001977, -1.46934955545156, 3.95611702127658, 
    5.19438987619354, -0.0912012507600199, 2.81677896109541, 
    3.97412590369087, 1.30118326353028, 3.31553807249226, 1.32872294960955, 
    2.93700394923507, 0.908853875665812, 1.81241002546971, -1.3414545718222, 
    4.81772747317361, -3.4743890895067, 4.63823913990992, 0.857370960463727, 
    1.78620594713658, 0.527472527472524, -4.05973562947765, -0.136726966764838, 
    3.16657890117607, 5.95161125667812, 8.01002055498458, 10.5501040737437, 
    13.4138468987035, 2.93371279497212, 8.84291046495554, -6.87764606265876, 
    2.90741287990725, 3.71548486856639, 1.23317430567388, -1.1153443739474, 
    4.31313207880924, -1.64273763383666, 0.751373343751978, -3.21877014345816, 
    1.16314882913623, -3.59065232516701, -4.65283582701413, 4.98489115166134, 
    3.18459755147199, -3.72875180849018, 2.20137289784552, -4.22488416879167, 
    -0.706371260732776, -2.33320725244584, -2.77596063540517, 
    9.48636128308308, -2.15172116987927, -5.71766285746257, 1.92271571537407, 
    0.655934629757954, 4.01517293049256, -2.89270965830984, 3.910032505864, 
    -1.31616434600239, 1.51533020314829, 3.09793915477058, 1.00146317751519, 
    -0.516295759142123, 4.36356154298765, -0.254418667464494, 
    -1.38015492270122, -0.375369475589906, 3.79511767246943, 
    1.67693295616696, 0.197127124553074, -1.01758464617007, 5.70477696100394, 
    -1.37564670926045, 1.39335708665185, 2.29473337483174, -1.40489357721877, 
    10.7514355294201, -0.403985348024547, -0.0106181613732362, 
    10.6504339189417, 7.72602065226992, 6.66622841015428, 7.3618861388054, 
    7.20852539277177, 7.17954849482943, 5.47999408979134, 9.96115783870405, 
    6.960515961579, 4.82626274289161, -0.428385428540776, 1.6283388103162, 
    2.07440844957785, -0.707412409361252, -4.9247119657169, 4.3311229522328, 
    2.53158682305453, -0.8800288960527, 2.40275362264064, 0.67520264383003, 
    3.97711266595697, 0.00749650524863867, -0.990038901876062, 
    -0.63991866618197, -2.00199671222057, -5.15098853828302, 
    -3.65317386916235, -4.67277715297035, -0.564594703469009, 
    3.29526766976492, 0.0888482310529472, -0.524228981506815, 
    3.04012050839788, -1.53185447929528, -0.338917708381546, 
    -2.5450727924491, 3.36238295093309, -0.918735392055365, -0.766840492430499, 
    -0.767135363240273, 0.0468961039030733, 1.51618073336643, 
    -2.02356670927575, -1.11584500803018, 2.45568937824186, 0.989863990072745, 
    -0.4214032191629, 2.8219393653178, 4.51474479784726, -2.49049271581373, 
    -0.41346860604498, 3.13864420514751, -0.0877964623534655, 
    -0.674347043417658, -0.143267961613368, -0.243406512930108, 
    0.0402054219496719, 0.12912750657269, 0.168664845016241, 
    -0.713623226415894, 1.49163339466038, 1.57747101133233, -2.10536689354583, 
    3.12980292320487, -0.90833324273064, -1.71375697178543, 0.582188469928239, 
    2.89692448021907, 0.0768238907010953, -1.53392147948349, 
    1.23622644511851, -0.0506227154778281, 0.327869614383542, 
    2.62019966395382, 3.48629495563575, 0.593740862165774, 4.09560684327741, 
    2.32207959691005, 0.506809670097958), YORKSANDTHEHUMBER = c(4.0121120363361, 
    5.45851528384282, 9.52380952380951, 6.04914933837431, 3.03030303030299, 
    5.42099192618225, 2.78993435448577, -0.53219797764768, 1.97966827180309, 
    1.15424973767052, 0.466804979253115, -1.96179659266907, 2.42232754081095, 
    0.719794344473031, -0.306278713629415, 3.37941628264209, 
    2.74393263992076, 3.91920555341303, 1.91585099967527, 0.892125625853447, 
    2.91888477848958, 3.78293078507868, 0.109815847271484, 6.83486625601216, 
    0.722691730511011, 3.56008625759656, -0.227160867754524, 
    2.69419041475355, -1.17134094520194, 2.78546324684064, 1.01487759630426, 
    1.54843356139717, 4.15602836879435, 4.43619773934357, -0.309698451507728, 
    -1.45519947678222, -1.09839057574248, 9.08267346664877, 11.8913598474363, 
    13.9511229623114, 9.71243848306475, 7.66524473371739, 6.46801731884651, 
    -2.26736490763654, -4.35729847494552, -2.93870179974964, 
    -7.72353426221536, -7.01127302722023, 2.02543627323513, 2.51245245873873, 
    0.712134856164617, -2.74951902189779, 3.20525370229387, -2.17225212432703, 
    0.304311135936791, -5.21962007478405, -1.22771231792975, 
    5.62676205566459, -0.0988236572110239, 0.865912760888606, 
    -3.71050647202427, 1.5475703474865, -3.43233328040058, -2.86288061069106, 
    -0.551968808874026, 2.05442655433966, 0.388675938226524, 
    -2.60493926554792, -2.23312255163324, 5.04817095211292, 1.43656632546456, 
    2.53687507970646, -2.37376845704496, 4.95419269721737, 2.5486061891899, 
    -0.64046817419928, 1.75846231104579, 0.542834308795226, -0.322606591645488, 
    -2.67961743436791, 3.57498650723638, 2.89743475977992, 1.28567849851333, 
    1.828392232888, -0.335580970541442, 5.34860062451308, -2.98213938289875, 
    3.55468980520775, 2.76514398982056, 3.45832186518539, 1.32470422187813, 
    2.79428923624948, 3.8093136923264, 9.02544568216825, 7.65854560247412, 
    11.0775256253873, -0.658987130155868, 10.726463566155, 5.35747018223358, 
    4.66387144397987, 5.14763674355188, 10.581371911713, 3.46926043870116, 
    -0.000369065205607915, 0.924675325682334, 3.681119585314, 
    -0.0731638011738147, 0.690177922935143, 1.33427941484383, 
    2.65734876034112, 1.62515008951355, 1.48038293242949, 0.494192527588077, 
    2.39510739408179, 0.818557817036399, -1.1083492547105, -1.89465779498896, 
    -3.74953204588813, -3.7238074999174, -4.9788025925358, -4.65464963206228, 
    3.34588197167384, 2.20886725349025, 1.99954661835316, -0.777545762347822, 
    3.58681336123701, -2.96757202302368, -3.36310924643208, 2.01483012871867, 
    2.4154475314586, -0.642314624781054, -2.0920093049768, -1.73904001349183, 
    1.69071701857513, 0.201962934561265, -2.66472457335063, 0.323680874793625, 
    1.37879437405697, 3.26467995053582, 2.21645486418079, -0.646736928898328, 
    2.06516965491332, 1.8250141624007, -1.68545096699093, -0.818973277015041, 
    4.05215303886115, -1.16233786449552, -1.56747999678074, 0.67708495662531, 
    2.92754908797974, 1.50505329502891, -1.12667258046976, -0.765034978617734, 
    2.67854615526131, -0.306294171526678, 0.175047038539941, 
    1.56451236885344, 0.618844724791642, 3.34585295985361, -1.76420421213768, 
    -0.079420811764984, 1.56942028744185, 0.407910173531572, 
    -0.268243129544691, 2.57107118459526, -0.758721256899304, 
    3.03713057699041, 2.68699850192726, 1.88666482868311, 4.78697689266296, 
    2.43248653386118, 1.27252711337855)), row.names = c(NA, -172L
), class = "data.frame")

Code:

library(tidyverse)
library(ARDL)
library(dLagM)

# ARDL MODELING AND FORECASTING
in_sampleARDL <- data %>% 
  filter(Date < '2020-03-01')

out_sampleARDL <-data %>% 
  filter(Date >= '2020-03-01')
# create the formulas
indep_vars <- expression(Industrialproduction,Householdconsumption,Investmentgrowth,ConsumerPriceIndex)
dep_vars   <- expression(NORTH,YORKSANDTHEHUMBER)
# formulae with diff()
formulae <- unlist(lapply(dep_vars, \(x) lapply(indep_vars, \(y) bquote(.(x)~diff(.(y))))))
# without diff()
formulae2 <- unlist(lapply(dep_vars, \(x) lapply(indep_vars, \(y) bquote(.(x)~.(y)))))

result <- vector('list', length = length(formulae))
names(result) <- formulae2
for (i in seq_along(formulae)){
  # auto_ardl
  result[[i]][[1]] <- auto_ardl(formula(formulae2[[i]]),
                                data = in_sampleARDL, max_order = 4, selection = 'BIC')
  # prediction
  result[[i]][[2]] <- forecast(ardlDlm(formula = formula(formulae[[i]]), data = in_sampleARDL, p = 3),
                               x = out_sampleARDL |> select(sub("\\s~.*", "", formula(formulae[[i]]))) |> pull(), h = 4)
  # error
  result[[i]][[3]] <- mean((out_sampleARDL |> select(sub("\\s~.*", "", formula(formulae[[i]]))) |> pull() |> (\(x) x[1:4])() - result[[i]][[2]][["forecasts"]])^2)
  
  # set names
  names(result[[i]]) <- c('auto_ardl','forecast','error')
}

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.