Dự báo chuỗi thời gian không đều (có R)


8

Có một số phương pháp để đưa ra dự báo về chuỗi thời gian cách đều nhau (ví dụ: Holt-Winters, ARIMA, ...). Tuy nhiên, tôi hiện đang làm việc trên tập dữ liệu cách nhau không đều sau đây, có số lượng điểm dữ liệu khác nhau mỗi năm và không có khoảng thời gian thường xuyên giữa các điểm đó:

Lô đất: âm mưu Dữ liệu mẫu:

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")

Suy nghĩ đầu tiên của tôi là tổng hợp dữ liệu bằng cách tính trung bình hàng tháng. Tuy nhiên, điều này sẽ dẫn đến nhiều tháng với các giá trị bị thiếu và độ chính xác thứ hai sẽ bị mất nếu nhiều giá trị trong một tháng được thay thế bằng một tổng hợp trung bình. Để giải quyết vấn đề đầu tiên, người ta có thể đề xuất tính tổng gộp hàng quý. Nhưng trong trường hợp này, mẫu dữ liệu sẽ tương đối nhỏ.

Vì vậy, câu hỏi của tôi là cách tiếp cận của bạn sẽ như thế nào để đưa ra dự báo về điểm dữ liệu tiếp theo cho tập dữ liệu đã cho (nếu có thể với R). Có cách thực hành tốt nhất nào để xử lý chuỗi thời gian cách nhau không đều?

Câu trả lời:


4

Mô hình không gian nhà nước hỗ trợ dữ liệu còn thiếu rất tốt. hãy xem phần 6.4 "Thiếu sửa đổi dữ liệu" trong Phân tích chuỗi thời gian và các ứng dụng của nó với các ví dụ R , ấn bản thứ 3, của Shumway và Stoffer. Họ có ví dụ trong http://www.stat.pitt.edu/stoffer/tsa3/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.