Previsão de séries temporais irregulares (com R)

8

Existem vários métodos para fazer previsões de séries temporais equidistantes (por exemplo, Holt-Winters, ARIMA, ...). No entanto, atualmente estou trabalhando no seguinte conjunto de dados espaçados irregulares, que possui uma quantidade variável de pontos de dados por ano e sem intervalos regulares entre esses pontos:

Sinopse: enredo Dados da amostra:

structure(list(date = structure(c(664239600, 665449200, 666658800, 
670888800, 672184800, 673394400, 674517600, 675727200, 676936800, 
678146400, 679356000, 680565600, 682984800, 684194400, 685404000, 
686613600, 687823200, 689036400, 690246000, 691455600, 692665200, 
695084400, 696294000, 697503600, 698713200, 699922800, 701132400, 
703548000, 705967200, 707176800, 708472800, 709682400, 710805600, 
712015200, 713224800, 714434400, 715644000, 716853600, 718063200, 
719272800, 720486000, 721695600, 722905200, 724114800, 726534000, 
727743600, 728953200, 730162800, 732668400, 733788000, 734911200, 
737416800, 739144800, 741650400, 744069600, 746575200, 751413600, 
756169200, 761612400, 766533600, 771285600, 776124000, 780962400, 
785804400, 790642800, 795481200, 800316000, 805154400, 808869600, 
813708000, 818463600, 823302000, 828741600, 833580000, 838418400, 
843256800, 848098800, 853542000, 858380400, 863215200, 868053600, 
872892000, 875311200, 880153200, 884991600, 892291920, 897122048, 
901956780, 907055160, 912501900, 917083860, 919500720, 924354660, 
929104882, 934013100, 938851554, 948540840, 958809480, 963647580
), class = c("POSIXct", "POSIXt"), tzone = ""), y = c(3.36153, 
-0.48246, 5.21884, 18.74093, 37.91793, 28.54938, 33.61709, 63.06235, 
68.65387, 77.23859, 87.11039, 84.03281, 93.62154, 99.91251, 100.50264, 
93.77179, 84.5999, 67.36365, 41.30507, 18.19424, 0.958, -15.81843, 
-14.5947, 5.63223, 6.98581, 4.49837, 12.14337, 26.38595, 38.18156, 
39.49169, 45.91298, 64.2627, 65.20289, 95.34555, 98.09912, 102.53325, 
101.76982, 95.17178, 93.00834, 81.43244, 59.84896, 44.55941, 
22.71526, 8.64943, 12.36012, -3.73631, -1.29231, -1.24887, 27.38948, 
33.22064, 28.50297, 39.53514, 52.27092, 64.83294, 79.8159, 107.36236, 
69.52707, 12.95026, 13.36662, 27.65264, 61.13918, 82.24249, 85.89012, 
13.9803, -11.97099, 8.03575, 55.61148, 93.62154, 107.10067, 88.11689, 
18.06141, -32.83151, 18.01798, 60.92196, 100.39437, 112.40503, 
54.1048, 2.59809, 31.10314, 56.46477, 58.4749, 124.68055, 100.5016, 
43.5316, -7.5386, 35.20915, 37.08925, 83.0716, 83.22325, 29.5081, 
-32.7452, -50.63345, 29.00605, 58.2997, 85.3864, 110.4178, -38.66195, 
16.16515, 71.64925)), .Names = c("date", "y"), row.names = c(NA, 
-99L), class = "data.frame")

Meu primeiro pensamento foi agregar os dados calculando as médias mensais. No entanto, isso levará muitos meses com valores ausentes e, em segundo lugar, a precisão será perdida se vários valores dentro de um mês forem substituídos por um agregado médio. Para resolver o primeiro problema, poderia-se propor o cálculo de agregados trimestrais. Mas, neste caso, a amostra de dados ficaria relativamente pequena.

Portanto, minha pergunta é como sua abordagem faria uma previsão do próximo ponto de dados para o conjunto de dados fornecido (se possível com R). Existem práticas recomendadas para lidar com séries temporais com espaçamento irregular?

Aeck
fonte

Respostas:

4

Os modelos de espaço de estado suportam muito bem os dados ausentes. dê uma olhada na seção 6.4 "Modificações de dados ausentes" na análise de séries temporais e suas aplicações com exemplos R , 3ª ed., de Shumway e Stoffer. Eles têm exemplos em http://www.stat.pitt.edu/stoffer/tsa3/

Aksakal
fonte