Como detectar e quantificar uma quebra estrutural nas séries temporais (R)

10

fundo

Então, primeiro, alguns antecedentes para avaliar o nível de entendimento que eu possa ter. Atualmente, concluindo a tese de mestrado, as estatísticas têm sido uma parte insignificante disso, embora eu tenha um entendimento básico. Minha pergunta atual me faz duvidar do que posso / devo fazer na prática, ler cada vez mais on-line e na literatura parece ser contraproducente.

O que estou tentando alcançar?

Então, para minha tese, entrei para uma empresa e a pergunta geral que estou tentando responder é essencialmente como um processo preditivo é afetado pela implementação de determinado sistema (que afeta os dados usados ​​para o processo preditivo).

O resultado desejado é entender:

  1. Existe uma mudança perceptível? (por exemplo, prova estatística)
  2. Quão grande é a mudança? (em média e variância)
  3. Quais fatores são importantes nesse processo preditivo (também como a influência dos fatores muda antes e depois do intervalo)

Para responder 1 e 2, obtive dados históricos na forma de um objeto de série temporal (e mais, porém irrelevante, nesta fase). O uso de software I é R .

Dados

Os dados englobam uma pontuação ponderada para cada dia (2,5 anos), indicando quão ruim foi o processo preditivo (desvio do evento real). Esse objeto de série temporal contém a pontuação ponderada para as previsões que ocorreram de uma hora antes até a ocorrência real do evento (intervalo de 1 hora) para esses 2,5 anos (para que cada dia tenha uma pontuação ponderada para esse intervalo). Da mesma forma, existem várias séries temporais construídas para outros intervalos (por exemplo, 1-2, 2-3 horas, etc.)

myts1 <- structure(c(412.028462047, 468.938224875, 372.353242472, 662.26844965, 
                 526.872020535, 396.434818388, 515.597528222, 536.940884418, 642.878650146, 
                 458.935314286, 544.096691918, 544.378838523, 486.854043968, 478.952935122, 
                 533.171083451, 507.543369365, 475.992539251, 411.626822157, 574.256785085, 
                 489.424743512, 558.03917366, 488.892234577, 1081.570101272, 488.410996801, 
                 420.058151274, 548.43547725, 759.563191992, 699.857042552, 505.546581256, 
                 2399.735167563, 959.058553387, 565.776425823, 794.327364085, 
                 1060.096712241, 636.011672603, 592.842508666, 643.576323635, 
                 639.649884944, 420.788373053, 506.948276856, 503.484363746, 466.642585817, 
                 554.521681602, 578.44355769, 589.29487224, 636.837396631, 647.548662447, 
                 740.222655163, 391.545826142, 537.551842222, 908.940523615, 590.446686171, 
                 543.002925217, 1406.486794264, 1007.596435757, 617.098818856, 
                 633.848676718, 576.040175894, 881.49475483, 687.276105325, 628.977801859, 
                 1398.136047241, 749.644445942, 639.958039461, 649.265606673, 
                 645.57852203, 577.862446744, 663.218073256, 593.034544803, 672.096591437, 
                 544.776355324, 720.242877214, 824.963939263, 596.581822515, 885.215989867, 
                 693.456405627, 552.170633931, 618.855329732, 1030.291011295, 
                 615.889921256, 799.498196448, 570.398558528, 680.670975027, 563.404802085, 
                 494.790365745, 756.684436338, 523.051238729, 535.502475619, 520.8344231, 
                 623.971011973, 928.274580287, 639.702434094, 583.234364572, 623.144865566, 
                 673.342687695, 567.501447619, 602.473664361, 655.181508321, 593.662768316, 
                 617.830786992, 652.461315007, 496.505155747, 550.24687917, 588.952116381, 
                 456.603281447, 425.963966309, 454.729462342, 487.22846023, 613.269432488, 
                 474.916140657, 505.93051487, 536.401546008, 555.824475073, 509.429036303, 
                 632.232746263, 677.102831732, 506.605957979, 701.99882145, 499.770942819, 
                 555.599224002, 557.634152694, 448.693828549, 661.921921922, 447.00540349, 
                 561.194112634, 590.797954608, 590.739061378, 445.949400588, 725.589882976, 
                 480.650749378, 587.03144903, 483.054524693, 428.813155209, 540.609606719, 
                 495.756149832, 409.713220791, 492.43287131, 618.492643291, 723.203623076, 
                 461.433833742, 420.414959481, 480.501175081, 564.955582744, 453.0704893, 
                 506.711353939, 521.12661934, 487.509966405, 483.442305774, 506.932771141, 
                 442.871555249, 873.285819221, 1201.628963682, 1392.479592817, 
                 693.292446258, 629.477998542, 660.777526646, 414.376675251, 475.517946081, 
                 501.626384564, 470.216781646, 444.195433559, 697.258566625, 546.966755779, 
                 428.945521943, 388.203080434, 579.759476551, 548.433130604, 453.950530959, 
                 460.613845164, 534.329569431, 560.663080722, 660.799405665, 432.3134958, 
                 569.59842379, 518.195281689, 650.007266105, 521.642137647, 442.763872575, 
                 687.470213886, 951.651918891, 589.611971045, 493.203713291, 431.966577408, 
                 616.912296912, 685.80916291, 502.518373775, 595.630289879, 563.104035749, 
                 523.383707347, 532.042896625, 470.949823756, 603.408124923, 615.301428799, 
                 708.26541245, 725.853182875, 705.777543119, 530.351781147, 698.828825921, 
                 462.173187592, 366.411986505, 848.613888761, 502.940599188, 456.044881766, 
                 605.321231272, 629.861109863, 431.130428123, 509.672767868, 457.598828697, 
                 553.932034119, 610.181457495, 581.59017099, 540.788638119, 705.226962669, 
                 610.670142045, 566.392016015, 611.086310256, 603.256299175, 766.372982953, 
                 801.921868916, 761.708239486, 580.712445849, 575.53616943, 540.066255921, 
                 608.133122153, 735.063468208, 637.091441112, 778.874033589, 689.350099602, 
                 1003.219851026, 624.107808848, 635.887051641, 420.915060155, 
                 511.460563095, 817.08209288, 603.089908306, 772.6493477, 797.148459813, 
                 588.255963229, 499.050860875, 502.059987, 565.524637543, 1663.182976069, 
                 2281.49950544, 1442.687607103, 1024.355834401, 899.519857882, 
                 988.585993922, 612.834835776, 641.686600038, 717.951451466, 746.441686309, 
                 1147.770724052, 596.279691286, 932.861076555, 497.228997645, 
                 764.895725484, 659.054003787, 1148.227820587, 1403.462969143, 
                 624.733620842, 803.199038618, 839.637983048, 1278.286165347, 
                 774.363457936, 662.767213211, 627.251799204, 650.180035442, 1296.405174964, 
                 662.928010153, 523.095967567, 620.727894789, 650.876097695, 509.534317267, 
                 479.922326477, 613.743251306, 430.117763379, 1825.108688714, 
                 744.708270099, 455.818978039, 370.908485795, 771.317824437, 688.219350724, 
                 468.16351523, 791.649828808, 666.360829114, 1427.809117119, 2861.163543428, 
                 1090.887950582, 621.942045727, 397.381382335, 397.697308586, 
                 494.441558442, 474.314526966, 888.812606506, 476.031636688, 651.907747324, 
                 389.95997873, 680.776897408, 1499.093314237, 1077.571595752, 
                 765.690897368, 571.545469449, 590.64855754, 492.371592484, 580.811781306, 
                 873.628734717, 602.958435426, 549.877214337, 546.66120979, 394.75285753, 
                 520.238244635, 517.217468365, 903.057976974, 528.477241796, 378.958677302, 
                 491.589659729, 548.665964908, 453.512746452, 481.081050678, 491.499714029, 
                 628.539705456, 672.540312912, 1686.825394554, 1367.577856001, 
                 600.373039737, 417.511405109, 511.75535978, 440.677427555, 493.430816323, 
                 533.025975459, 547.429120615, 432.168874608, 555.098163047, 521.644301834, 
                 667.159371501, 421.591007887, 757.218378664, 615.572602597, 433.961482908, 
                 528.813953729, 633.228715271, 519.648748842, 437.342815473, 551.877832301, 
                 703.377801948, 536.673383258, 658.597165739, 1449.850501569, 
                 615.204142853, 499.197033946, 853.692014263, 490.213941347, 812.68824521, 
                 521.364349414, 818.757704456, 848.59674442, 646.819554339, 471.051626838, 
                 598.326620222, 782.58569568, 754.880939869, 636.572395084, 686.076138643, 
                 530.158582782, 524.696479569, 525.441231521, 593.834663615, 415.830854949, 
                 590.135594493, 591.019407595, 503.321975981, 515.371205208, 494.805384342, 
                 567.397190671, 482.180658052, 724.099533838, 791.107121538, 564.673191002, 
                 572.551388184, 729.46937136, 943.538757014, 519.051645932, 994.190842696, 
                 866.69659257, 610.021553913, 547.791568399, 578.854543644, 684.826681706, 
                 815.179238308, 617.050464226, 623.818649573, 537.163825262, 529.850027242, 
                 926.531531345, 588.578930644, 457.329084489, 380.160216157, 494.287689357, 
                 463.885244047, 451.611520014, 762.508948042, 773.74942889, 1642.691010358, 
                 555.226392541, 659.433830806, 454.348720108, 388.274823265, 650.63824747, 
                 632.327400443, 584.93699748, 484.815917524, 733.153950316, 471.349864174, 
                 418.755413722, 547.060192029, 742.028289483, 521.119798289, 1176.207996336, 
                 524.730544122, 430.009783422, 558.479383664, 574.162550914, 526.08247269, 
                 611.207728202, 551.202548069, 472.046973518, 517.490179087, 556.135143079, 
                 628.084374004, 413.677676623, 439.814082201, 1011.775306843, 
                 684.443831473, 546.421742134, 578.853727684, 517.693483714, 638.112468944, 
                 631.531739664, 501.897019514, 661.11860926, 521.695715961, 474.403897254, 
                 463.294645328, 559.583511974, 531.953658919, 740.412596176, 534.815607516, 
                 462.329096628, 637.941748843, 702.69170843, 471.390065606, 590.458408612, 
                 617.006573387, 565.411288964, 472.986933034, 567.745850996, 596.925622448, 
                 474.068038429, 653.56453828, 612.893376781, 711.545758298, 527.783301631, 
                 478.530081662, 519.751192408, 536.550807025, 443.437342694, 587.403769673, 
                 601.15805729, 556.497167238, 374.228230116, 477.027420471, 494.984999444, 
                 879.314339401, 704.997313272, 626.546803934, 653.296523326, 435.581408863, 
                 633.048339362, 403.889616794, 488.214190958, 575.631003993, 430.984422675, 
                 437.83561603, 522.277281965, 475.602597701, 527.12160277, 944.139469794, 
                 474.50403295, 579.478722386, 459.088134733, 503.246692031, 610.022771263, 
                 446.143895372, 625.022916127, 517.435543013, 891.375454252, 555.864115385, 
                 474.764739145, 921.714956231, 645.896256587, 1536.221634415, 
                 816.575921465, 596.491670621, 503.56011064, 720.743463226, 905.835642175, 
                 1360.481537034, 653.224092421, 633.505228314, 546.064475635, 
                 482.454025258, 962.715357696, 618.202090733, 803.895156435, 668.047995992, 
                 594.566585046, 839.597813143, 457.375793588, 631.863607862, 475.266615122, 
                 664.569635822, 481.886574644, 1614.962054217, 869.212340286, 
                 501.400781534, 478.670649186, 521.824073342, 684.720851031, 597.124676952, 
                 605.903108456, 491.358096619, 430.812042311, 388.350092055, 488.132638097, 
                 413.131448595, 391.891460495, 430.760685279, 731.99097305, 382.200799877, 
                 511.48361093, 560.620999712, 528.369543055, 536.348770159, 721.297750609, 
                 491.321646454, 509.521489714, 561.318889907, 553.24041301, 459.235996646, 
                 354.741174128, 339.775552834, 432.548724483, 438.672630955, 508.177204773, 
                 496.199702536, 643.867549669, 611.460979278, 861.190516859, 662.56052508, 
                 524.398593443, 529.585928069, 607.575374022, 495.001029442, 700.371352785, 
                 794.753142167, 466.792229932, 435.426320832, 450.903747896, 622.562955777, 
                 1562.215153595, 725.069249874, 612.357398912, 418.579228487, 
                 381.667629501, 528.173266471, 687.876352966, 655.845568131, 423.589678964, 
                 612.545707971, 951.362478322, 1800.162370822, 600.672989388, 
                 531.048286916, 527.565406977, 402.380659606, 607.699770367, 1486.296473731, 
                 686.560841226, 4176.136413427, 3086.067140966, 1872.815975088, 
                 771.413460362, 843.791946967, 652.825527602, 642.443948966, 726.208291336, 
                 641.092848676, 488.237988698, 606.154989706, 1426.027951807, 
                 959.347533388, 649.856202928, 527.580884911, 400.545393834, 568.268813107, 
                 631.257023117, 515.755741256, 682.375587555, 583.855170876, 506.146152757, 
                 517.095094378, 563.415777949, 801.015579658, 649.56360904, 732.097267107, 
                 456.626323752, 499.170138889, 549.393587002, 556.589070013, 590.180621262, 
                 667.709332802, 421.738377899, 661.178862228, 570.833727593, 631.139001868, 
                 545.835879493, 559.918523671, 1364.379214546, 985.777069008, 
                 644.949427255, 493.066294248, 476.852498787, 379.716401582, 715.333935018, 
                 459.326945313, 621.665546323, 476.317803131, 519.803138696, 409.241665463, 
                 465.206511176, 594.689036224, 443.841857849, 399.830019307, 570.65982956, 
                 516.562325113, 381.909941529, 532.130831616, 650.329631588, 661.055942562, 
                 1136.942413908, 508.543555485, 976.852889691, 1461.16921717, 
                 646.062436059, 593.093537367, 624.839875084, 453.453385269, 584.633165187, 
                 507.616009915, 516.857276979, 434.651983821, 572.755844368, 454.901132196, 
                 707.698546138, 760.341584614, 449.252091224, 623.217222998, 625.061550699, 
                 2030.045687713, 1582.036383383, 677.325281969, 571.588930686, 
                 493.235172445, 556.291968991, 424.360693057, 436.333980583, 484.105667103, 
                 505.231040152, 378.767240615, 495.943549377, 321.856525703, 363.651848067, 
                 557.201599565, 603.658298878, 558.958198405, 789.717963533, 480.370977054, 
                 509.366153138, 467.526623793, 576.508422894, 661.322171003, 520.804998847, 
                 342.109381368, 473.512224982, 984.139466992, 487.586712759, 605.914245454, 
                 459.190981983, 678.728907858, 342.511103348, 436.746013478, 520.896987467, 
                 818.078350515, 527.494249096, 713.52499017, 610.365469264, 462.965548015, 
                 362.931986459, 810.610193032, 393.455578799, 536.720944152, 551.490260933, 
                 464.369987186, 275.832746918, 513.723009815, 491.945195301, 438.865839297, 
                 257.252871794, 615.513481211, 420.507536576, 392.035094971, 392.963333027, 
                 435.276624468, 253.431425091, 592.873595776, 500.615067792, 503.491101855, 
                 475.352827724, 1135.11762886, 723.666909467, 712.259187274, 559.738346197, 
                 490.958692763, 435.998397207, 729.341315271, 406.369683231, 632.626098862, 
                 565.318329487, 394.031553179, 356.627786519, 374.075606064, 336.505546227, 
                 393.168901965, 480.183256037, 573.840777708, 187.680483645, 170.978544639, 
                 209.134883957, 193.039610198, 224.362544607, 210.946012575, 166.006351727, 
                 201.500604051, 160.008039339, 229.847327915, 193.655724693, 255.575881835, 
                 207.0547762, 186.835573846, 247.776981217, 574.489201771, 602.683083111, 
                 202.592131296, 205.827635803, 279.139480224, 367.898232724, 245.75114848, 
                 304.004111775, 231.706217872, 159.750034155, 207.584399879, 239.854118732, 
                 212.711257914, 181.755353255, 225.98761652, 206.570825973, 193.940523176, 
                 203.851963746, 170.700301226, 226.41517367, 183.87542452, 206.640800387, 
                 218.953856594, 176.127748987, 168.205878516, 201.718224491, 171.421791143, 
                 193.065350731, 235.118975292, 217.002358158, 197.563916607, 219.266588546, 
                 168.044251777, 182.1752633, 172.514392523, 192.250197416, 171.023249603, 
                 151.848998035, 151.678097242, 173.28609604, 194.852548067, 178.742929426, 
                 180.591580951, 189.241987711, 206.960325123, 207.639468123, 307.389246296, 
                 197.203559504, 201.143394951, 313.861245405, 215.87226561, 218.500147257, 
                 201.993836847, 204.461813487, 180.04803872, 305.301279156, 214.880173012, 
                 250.930811019, 284.90370816, 212.518096229, 195.034955147, 190.236951118, 
                 257.088555132, 189.502428671, 239.652450054, 243.53269907, 289.820554649, 
                 249.011846483, 279.393483142, 194.006529415, 214.59905786, 247.746491522, 
                 224.723467084, 191.086994265, 271.654470268, 183.455652269, 327.307813653, 
                 149.721791725, 170.538132352, 192.954323882, 172.459631548, 199.829129152, 
                 163.257916856, 179.33550074, 207.618752518, 191.969484656, 191.506188821, 
                 176.446694609, 194.818608621, 167.891653012, 167.000377869, 201.869893803, 
                 183.895614224, 148.510174938, 157.27033831, 166.573696008, 309.557485177, 
                 595.559287832, 232.318746483, 188.295593138, 157.721093739, 177.753625321, 
                 214.844940799, 226.812056373, 213.910815993, 188.973729833, 243.306529363, 
                 202.733401293, 197.296870477, 182.523989567, 170.428625204, 172.593507241, 
                 151.926342178, 283.415923815, 163.456408737, 172.273699114, 159.382452668, 
                 182.158974043, 156.532047405, 182.768725504, 239.318216814, 151.579013694, 
                 148.216885776, 241.346766195, 257.110058666, 147.931152011, 186.2508302, 
                 197.379372605, 155.69798218, 147.370235658, 180.961415272, 168.372900875, 
                 297.9454882, 177.640856836, 170.535749604, 166.211309731, 178.463064513, 
                 175.035906056, 179.971897406, 162.858094293, 164.056675362, 250.151933362, 
                 195.49943188, 175.281720263, 182.392087534, 144.341091392, 241.466298465, 
                 184.806150673, 167.932448156, 150.621075732, 178.510315062, 209.913152992, 
                 222.798716921, 153.536476868, 190.326281004, 173.708412622, 148.075945402, 
                 149.147879365, 181.5851776, 141.012604897, 157.982751461, 159.364653673, 
                 151.777006477, 191.065323099, 139.076429662, 172.452344359, 182.482693518, 
                 287.424045314, 169.327943406, 298.970852166, 145.238645275, 175.211717467, 
                 165.116950464, 187.006564993, 160.959119092, 198.552333833, 170.406040157, 
                 162.10770001, 146.356131036, 170.336552623, 163.095730104, 155.192077125, 
                 217.182324478, 231.270198833, 256.905250226, 184.59676245, 175.557146633, 
                 164.246298131, 221.695058452, 197.911691457, 188.427830442, 259.361745153, 
                 164.243672823, 190.67188784, 182.331604811, 190.352555581, 248.738493256, 
                 196.854564795, 164.974185334, 332.650385373, 169.081552611, 193.578840033, 
                 192.166911863, 214.174943222, 271.287900593, 224.675083031, 171.950208574, 
                 173.867031268, 139.260432794, 177.012491325, 171.268066406, 132.714578168, 
                 197.224558817, 152.561299656, 143.415562042), .Tsp = c(2016.3306010929, 
                                                                        2018.99909424358, 365), class = "ts")

Processar até agora

Agora eu tinha entendido que, para a pergunta 1, posso aplicar um teste para uma quebra estrutural para determinar se e quando a interrupção ocorreu (com uma data conhecida). Para isso, uso o pacote strucchange no R e utilizo a função de pontos de interrupção .

No entanto, o teste CUSUM (para datas desconhecidas) também foi recomendado pelo meu supervisor. Não sabe o que é melhor aqui?

EDITAR:

Vejo que o teste supF de Andrew conduz o teste de Chow para todos os intervalos possíveis. Em seguida, rejeita se o máximo das estatísticas F (ou Chow) se tornar muito grande. (Encontrado - execute teste de comida em séries temporais )

Código para obter uma data de intervalo usando struccchange

library(strucchange)
test2 <- Fstats(myts1~1) #Gets a sequence of fstatistics for all possible 
# break points within the middle 70% of myts1
myts1.fs <- test2$Fstats #These are the fstats
bp.myts1 <- breakpoints(myts1~1) #Gets the breakpoint based on the F-stats
plot(myts1) #plots the series myts1
lines(bp.myts1) #plots the break date implied by the sup F test
bd.myts1 <- breakdates(bp.myts1) #Obtains the implied break data (2018.35, 
# referring to day 128 (0.35*365 = day number))
sctest(test2) #Obtains a p-value for the implied breakpoint
ci.myts1 <- confint(bp.myts1) #95% CI for the location break date
plot(myts1)
lines(ci.myts1) #This shows the interval around the estimated break date

Com isso, posso obter uma data de intervalo e um IC de 95% , o que indica que ocorreu um intervalo. No entanto, essa quebra está na média, pois a fórmula é myts1 ~ 1, refletindo uma regressão em uma constante. Se eu entendi isso corretamente, os resíduos são os valores menosprezados de myts1 e, portanto, estou observando uma mudança na média. O gráfico visualiza os dados com a data de interrupção e um intervalo de confiança.

enredo

Questões

Q0: Antes de iniciar esta análise, eu queria saber se eu deveria me preocupar com como esses erros de previsão são distribuídos e corretos para certas características. Parece um processo bastante estável, além da interrupção ocorrida e de alguns outliers.

Q1: como posso calcular uma alteração na variação ? Eu posso imaginar uma mudança na variação também pode ocorrer em um ponto no tempo diferente do que a média? É correto dizer que uma quebra na variação também é uma quebra na média, mas depois uma quebra na média da série reduzida ao quadrado? Não há muito a descobrir sobre isso.

P2: Como já obtive evidências suficientes de uma quebra na média e na variância, como posso quantificar essa alteração? por exemplo, a variação mudou de X para Y após a data do intervalo? É tão simples quanto dividir a série temporal ao longo da data do intervalo e resumir as estatísticas sobre as duas partes?

Q3: se eu executar novamente a análise de intervalo para outros intervalos de tempo, como faço para comparar como a mudança na média e na variação evolui para os diferentes horizontes de previsão. Isso é mais uma vez simplesmente um resumo das estatísticas ou existe um teste que avalia quão diferentes são os erros?

adição Q3: ##

Na criação dessas séries temporais, são considerados erros de previsão até 10 horas antes da ocorrência do evento previsto.

Tomando um dia como exemplo: as previsões são separadas em compartimentos de 1 hora (cria 10 compartimentos) e, em cada compartimento, todas as previsões são resumidas em um valor médio ponderado (ponderado com base em uma variável diferente). Isso significa que para cada dia há uma pontuação ponderada por posição (total de 10).

Traduzir isso para o objeto de série temporal que forneci nesta postagem (myts1, cobrindo a última hora) produz o seguinte: Uma série temporal em que cada ponto corresponde ao valor médio ponderado para esse dia no intervalo de tempo especificado. Essencialmente, cada compartimento contém 975 dias separados com um valor médio ponderado para cada um (puramente histórico).

Minha opinião sobre esta parte: adicionei uma imagem contendo 9 posições em 10, o que mostra claramente que a interrupção se torna menos perceptível ainda mais no tempo. Dadas essas 10 séries temporais, executei novamente o teste "Score-CUSUM" (média / variância) para cada uma. A partir daí, pode-se determinar a que horas o efeito desse sistema se torna "perceptível" (como na mudança absoluta na média / variância) e utilizável do ponto de vista operacional.

insira a descrição da imagem aqui

Q3.1 Faz sentido analisar as séries temporais dessa maneira? Suponho que não importa que eu execute novamente o teste SCORE-CUSUM 10 vezes?
Q3.1 Como lido com um IC de 95% que dura 6 meses ao segmentar o intervalo? (encontrado nos compartimentos de 4
horas ) Q3.2 Devo me preocupar em comparar os diferentes modelos (erros) nesses 10 intervalos de tempo?

Espero que minha explicação seja suficiente, possa fornecer mais informações, se necessário.

EDIT: eu adicionei um arquivo csv (separado por;) no formato colunar, isso também inclui o número de eventos que ocorreram todos os dias; no entanto, parece não haver correlação quando plotado. Link: https://www.dropbox.com/s/5pilmn43bps9ss4/Data.csv?dl=0

EDIT2: deve-se acrescentar que a implementação real ocorreu por volta do ponto do tempo no dia 136 do dia 136 nas séries temporais.

EDIT3: Adicionado o segundo intervalo de previsão da hora 1 a 2 como um objeto TS no R no pastebin: https://pastebin.com/50sb4RtP (limitações nos caracteres da postagem principal)

Bas
fonte
Talvez olhe para modelos de garch que são usados ​​(ou pelo que me disseram) em finanças para modelar (e prever) variação dinâmica? Pesquise neste site, vale a pena tentar!
precisa saber é o seguinte
Uma quebra estrutural na série temporal pode ocorrer de várias maneiras. 1. pontos no tempo em que o intercepto implícito no modelo muda 2. pontos no tempo em que a tendência muda 3. pontos no tempo em que um ou mais parâmetros de arma mudam 4. pontos no tempo em que a variação do erro muda deterministicamente 5. pode haver um dia da semana, um dia do mês, uma semana do mês, um mês do ano, efeitos em torno dos feriados etc que talvez precisem ser controlados. Os testes de comida simples para uma mudança média são bastante ingênuos. se você postar seus dados de uma forma colunar como um arquivo CSV que eu poderia ser capaz de ajudar furt
IrishStat
@kjetilbhalvorsen Já vi esses modelos serem sugeridos em contextos financeiros, no entanto, não fiquei convencido após uma leitura e discussão com meu supervisor acadêmico sobre isso. Obrigado pela sugestão!
Bas
@IrishStat Estava me perguntando se existem efeitos sazonais também (analisarei isso hoje e adicionará mais informações à medida que encontro). Adicionado um link para um arquivo csv usando o dropbox na postagem principal.
Bas

Respostas:

11

Questões

Q0: A série temporal parece bastante inclinada para a direita e a mudança de nível é acompanhada por uma mudança de escala. Portanto, eu analisaria as séries temporais em logs em vez de níveis, ou seja, com erros multiplicativos e não aditivos. Nos logs, parece que um modelo AR (1) funciona muito bem em cada segmento. Ver, por exemplo acf()e pacf()antes e após o intervalo.

pacf(log(window(myts1, end = c(2018, 136))))
pacf(log(window(myts1, start = c(2018, 137))))

Q1: Para uma série temporal sem interrupções na média, você pode simplesmente usar os resíduos quadráticos (ou absolutos) e executar um teste para mudanças de nível novamente. Como alternativa, você pode executar testes e estimativa de ponto de interrupção com base em um modelo de máxima verossimilhança, em que a variação de erro é outro parâmetro do modelo, além dos coeficientes de regressão. Este é Zeileis et al. (2010, doi: 10.1016 / j.csda.2009.12.005 ). Os testes CUSUM baseados em pontuação correspondentes também estão disponíveis strucchange, mas a estimativa do ponto de interrupção está em fxregime. Finalmente, na ausência de regressores, ao procurar apenas alterações na média e variância, o changepointpacote R também fornece funções dedicadas.

Dito isto, parece que uma abordagem de mínimos quadrados (tratar a variação como um parâmetro incômodo) é suficiente para a série temporal que você publicou. Ver abaixo.

P2: Sim. Eu simplesmente ajustaria modelos separados para cada segmento e analisaria esses "como sempre" Bai & Perron (2003, Journal of Applied Econometrics ) também argumentam que isso é justificado assintoticamente devido à convergência mais rápida das estimativas de ponto de interrupção (com taxa vez de ).nn

Q3: Não tenho muita certeza do que você está procurando aqui. Se você deseja executar os testes sequencialmente para monitorar os dados recebidos, adote uma abordagem formal de monitoramento. Isso também é discutido em Zeileis et al. (2010).

Fragmentos de código de análise:

Combine as séries de log com seus atrasos para posterior regressão.

d <- ts.intersect(y = log(myts1), y1 = lag(log(myts1), -1))

Teste com supF e testes CUSUM baseados em pontuação:

fs <- Fstats(y ~ y1, data = d)
plot(fs)
lines(breakpoints(fs))

Fstats

sc <- efp(y ~ y1, data = d, type = "Score-CUSUM")
plot(sc, functional = NULL)

gefp

Isso destaca que os coeficientes de interceptação e autocorrelação mudam significativamente no momento visível na série temporal original. Há também alguma variação na variação, mas isso não é significativo no nível de 5%.

Um namoro baseado no BIC também encontra claramente esse ponto de interrupção:

bp <- breakpoints(y ~ y1, data = d)
coef(bp)
##                       (Intercept)        y1
## 2016(123) - 2018(136)    3.926381 0.3858473
## 2018(137) - 2019(1)      3.778685 0.2845176

Claramente, a média cai, mas também a autocorrelação ligeiramente. O modelo ajustado nos logs é então:

plot(log(myts1), col = "lightgray", lwd = 2)
lines(fitted(bp))
lines(confint(bp))

pontos de interrupção

A remontagem do modelo para cada segmento pode ser feita através de:

summary(lm(y ~ y1, data = window(d, end = c(2018, 136))))
## Call:
## lm(formula = y ~ y1, data = window(d, end = c(2018, 136)))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.73569 -0.18457 -0.04354  0.12042  1.89052 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.92638    0.21656   18.13   <2e-16 ***
## y1           0.38585    0.03383   11.40   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2999 on 742 degrees of freedom
## Multiple R-squared:  0.1491, Adjusted R-squared:  0.148 
## F-statistic: 130.1 on 1 and 742 DF,  p-value: < 2.2e-16

 

summary(lm(y ~ y1, data = window(d, start = c(2018, 137))))
## Call:
## lm(formula = y ~ y1, data = window(d, start = c(2018, 137)))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.43663 -0.13953 -0.03408  0.09028  0.99777 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.61558    0.33468   10.80  < 2e-16 ***
## y1           0.31567    0.06327    4.99  1.2e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2195 on 227 degrees of freedom
## Multiple R-squared:  0.09883,    Adjusted R-squared:  0.09486 
## F-statistic:  24.9 on 1 and 227 DF,  p-value: 1.204e-06
Achim Zeileis
fonte
Obrigado pela sua resposta detalhada. P1: Entendo que usando os resíduos quadrados, a execução do teste novamente detecta uma quebra na variação, mas apenas sem quebras na média. Fui aconselhado a um artigo que analisa esse problema quando há uma quebra na média. O artigo propõe um teste especial, no entanto, meu conhecimento em avaliar o conteúdo não é suficiente: tandfonline.com/doi/abs/10.1198/073500103288619269 (seção 3.1) Assim, pergunto-me se essa opção deve ser explorada ou mantenha o caminho de usar o método CUSUM com base em pontuação, conforme descrito. T3: adicionando esclarecimentos no post principal
Bas
1
Minha impressão sobre o primeiro trimestre é que a maioria dos testes encontrará evidências claras de uma pausa. E, considerando o intervalo, você pode caracterizar os segmentos resultantes em relação à média, variação, autocorrelação etc. Re: Q3. Parece realmente que você deseja ter um procedimento de "monitoramento" ou "teste seqüencial" para o qual várias ferramentas foram propostas sob diferentes rótulos em diferentes comunidades. O controle estatístico do processo ou controle de qualidade pode ser outro rótulo relevante.
Achim Zeileis 11/03/19
RE Q3: Isso faz sentido e também é destacado em Zeileis et al. (2010). Vou dar uma olhada e ver como posso aplicar isso, obrigado.
Bas
re Q3: Talvez eu tenha criado alguma confusão com minha edição em relação aos dados em si. Eu mencionei que esses erros agregados são para um determinado intervalo de tempo, justificadamente, você sugeriu um teste seqüencial para monitorar os dados recebidos à medida que se tornam disponíveis (leitura da vinheta Strucchange e Zeileis et al. (2010)). Atualizei o terceiro trimestre na postagem principal, que agora (pelo que entendi) não funciona com um teste seqüencial.
Bas
3

Não querendo adicionar muita informação na postagem original, a resposta aqui é uma resposta a @Achim Zeleis que segue esta parte:

"Os testes CUSUM baseados em pontuação correspondentes também estão disponíveis strucchange, mas a estimativa do ponto de interrupção está em fxregime"

E a pergunta 3, que foi mal formulada (agora atualizada no post original):

"Re: Q3. Parece realmente que você deseja ter um procedimento de" monitoramento "ou" teste seqüencial "para o qual várias ferramentas foram propostas sob diferentes rótulos em diferentes comunidades. O controle estatístico do processo ou o controle de qualidade pode ser outro rótulo relevante."

Depois de ler a vinheta fxregimee obter strucchangeuma estimativa de data de ruptura, é obtida.
https://cran.r-project.org/web/packages/fxregime/vignettes/CNY.pdf
https://cran.r-project.org/web/packages/fxregime/fxregime.pdf

As perguntas associadas a esta parte são as seguintes:
1. Como traduzir a estimativa de uma data de intervalo encontrada pelo fxregime para as mudanças na interceptação e na correlação automática?
2. A lógica / método que eu usei para obter essa estimativa de quebra está fxregimecorreta?
3. Devo esperar duas datas de intervalo ou as duas alterações na interceptação e na correlação automática ocorrem na mesma data? (por exemplo, e se a variação mudar em uma data de intervalo diferente, recebo duas - três datas de intervalo diferentes?
4. A pergunta 3 da postagem original se aplica (atualizada)
5. Devo me preocupar com os efeitos sazonais, conforme sugerido por @Irish Stat (resposta excluída)? Suponho apenas quando quero modelar isso depois, e não durante o teste de interrupção?

Fragmentos de código de análise para myts1:

Combine as séries de log com seus atrasos para posterior regressão.
d <- ts.intersect(y = log(myts1), y1 = lag(log(myts1), -1))

Fazendo o mesmo teste "Score-CUSUM":

sc <- efp(y ~ y1, data = d, type = "Score-CUSUM")
plot(sc, functional = NULL)

Teste CUSUM baseado em pontuação para sc

Estimativa da data de quebra usando fxregime:
1. O gráfico LWZ e Log-Probabilidade verossímil mostra o número ideal de quebras de 1
2. A data de intervalo com um intervalo de confiança indica uma quebra na observação 744

bd <- fxregimes(y~y1, data = d)
plot(bd) #LWZ and Negative Log-Likelihood plot indicating optimal number of breakpoints is 1 (following vignette information)
ci <- confint(bd, level = 0.95)
ci #show confidence interval for break date(s)

##         Confidence intervals for breakpoints
##         of optimal 2-segment partition: 
##
## Call:
## confint.fxregimes(object = bd, level = 0.95)
##
## Breakpoints at observation number:
##  2.5 % breakpoints 97.5 %
## 1   742         744    746
##
## Corresponding to breakdates:
##     2.5 % breakpoints   97.5 %
## 1 2018.363    2018.369 2018.374

LWZ e log-verossimilhança negativo bd

Então, com coefeu posso obter os coeficientes de cada segmento.

coef(bd)
## 
##                                       (Intercept) y1     (Variance)
## 2016.33334081892--2018.36895725728    3.926381 0.3858473 0.08969063
## 2018.37169698331--2018.99909424358    3.778685 0.2845176 0.04813337

A partir daqui, eu diria que também a variação caiu um pouco, mas não sei como interpretar isso corretamente, dada uma estimativa de data de intervalo única e a não significância no teste Score-CUSUM?

Parte 2, relacionada à pergunta 3 no PO

Agora, como mencionado no terceiro trimestre da publicação original (atualizada), há várias séries temporais, a seguinte é para a previsão do intervalo de 1 a 2 horas por 975 dias consecutivos, com cada dia tendo uma pontuação média ponderada.

Fragmentos de código de análise para myts2:
Em relação a Q0: reavaliação das séries temporais. Referindo-se a segunda imagem no post original, a inclinação direito ainda é um pouco aparente e olhando para o acf()e pacf()antes e após o intervalo ainda indica que um (1) modelo AR iria funcionar muito bem (eu penso, gráficos semelhantes).

pacf(log(window(myts2, end = c(2018, 136))))
pacf(log(window(myts2, start = c(2018, 137))))

Mais uma vez, combine as séries de log com seus atrasos para posterior regressão.
e <- ts.intersect(y = log(myts2), y1 = lag(log(myts2), -1))

Teste "Score-CUSUM":

sc2 <- efp(y ~ y1, data = e, type = "Score-CUSUM")
plot(sc2, functional = NULL)

Teste CUSUM baseado em pontuação para sc2 Semelhante à primeira série temporal, o coeficiente de interceptação e correlação automática muda significativamente no ponto visível na série temporal original. No entanto, dessa vez também há uma flutuação visível na variação significativa ao nível de 5%, não correspondendo diretamente ao ponto de interceptação e correlação automática.

Estimativa da data de quebra usando fxregime:
1. O gráfico LWZ e Log Negativo-Verossimilhança mostra o número ideal de quebras de 1 devido ao declínio acentuado da LWZ e à torção na NLL após o ponto de interrupção 1.
2. A data de intervalo com um intervalo de confiança indica uma quebra na observação 736

d <- fxregimes(y~y1, data = d)
plot(bd) #LWZ and Negative Log-Likelihood plot indicating optimal number of breakpoints is 1 (following vignette information)
ci <- confint(bd, level = 0.95)
ci #show confidence interval for break date(s)
# Confidence intervals for breakpoints  

# of optimal 2-segment partition: 
#   
#   Call:
#   confint.fxregimes(object = bd1, level = 0.95)
# 
# Breakpoints at observation number:
#   2.5 % breakpoints 97.5 %
#   1   730         736    750
# 
# Corresponding to breakdates:
#   2.5 % breakpoints   97.5 %
#   1 2018.331    2018.347 2018.385
# > breakdates(ci)
# 2.5 % breakpoints   97.5 %
#   1 2018.331    2018.347 2018.385

LWZ e Log-Probabilidade Negativa bd1
Então, com coefeu posso obter os coeficientes de cada segmento.

coef(bd1)
#                                       (Intercept) y1     (Variance)
# 2016.33334081892--2018.34703944906    3.853897 0.3985997 0.07925990
# 2018.34977917509--2018.99909424358    3.106076 0.4773263 0.04625951

Para avaliar esta parte do myts2 (intervalo de previsão de 1-2 horas), a variação caiu bastante, mas a alteração é menor em comparação ao myts1. Além disso, há uma mudança perceptível nos coeficientes da interceptação e na correlação automática.

Também aqui a questão é como isso deve ser interpretado? Como essa estimativa de data de intervalo único reflete os intervalos visualmente vistos no teste Score-CUSUM?

* também viu que a refitfunção ajustará regressões segmentadas a partir da função fxregimes, que pode ser usada para comparar como mencionado anteriormente por @Achim Zeileis.
É possível comparar modelos (Q3) nas séries temporais (myts1-10)? Presumo apenas quando eles estão compartilhando a mesma escala, pois não se pode comparar um modelo que possui um log versus outro que não.

Bas
fonte