Dự báo chuỗi thời gian với dữ liệu hàng ngày: ARIMA với hồi quy


15

Tôi đang sử dụng chuỗi dữ liệu bán hàng hàng ngày chứa khoảng 2 năm điểm dữ liệu hàng ngày. Dựa trên một số hướng dẫn / ví dụ trực tuyến tôi đã cố gắng xác định tính thời vụ trong dữ liệu. Dường như có một định kỳ hàng tuần, hàng tháng và có thể là định kỳ / thời vụ hàng năm.

Ví dụ: có các ngày thanh toán, đặc biệt vào ngày thanh toán đầu tiên của tháng có hiệu lực kéo dài trong vài ngày trong tuần. Ngoài ra còn có một số hiệu ứng Ngày lễ cụ thể, được xác định rõ ràng bằng cách lưu ý các quan sát.

Được trang bị một số quan sát này, tôi đã thử như sau:

  1. ARIMA (có Arimaauto.arimatừ gói dự báo R), sử dụng hồi quy (và các giá trị mặc định khác cần thiết trong hàm). Bộ hồi quy tôi tạo về cơ bản là một ma trận gồm các giá trị 0/1:

    • Biến 11 tháng (n-1)
    • 12 biến kỳ nghỉ
    • Không thể tìm ra phần ngày trả tiền ... vì nó ít ảnh hưởng phức tạp hơn tôi nghĩ. Hiệu ứng ngày trả tiền hoạt động khác nhau, tùy thuộc vào ngày trong tuần của ngày đầu tiên.

    Tôi đã sử dụng 7 (tức là tần suất hàng tuần) để mô hình chuỗi thời gian. Tôi đã thử kiểm tra - dự báo 7 ngày một lần. Kết quả rất hợp lý: độ chính xác trung bình cho dự báo 11 tuần đến RMSE hàng tuần đến 5%.

  2. Mô hình TBATS (từ gói dự báo R) - sử dụng nhiều tính thời vụ (7, 30.4375, 365.25) và rõ ràng là không có biến hồi quy. Độ chính xác tốt hơn đáng ngạc nhiên so với mô hình ARIMA ở mức trung bình RMSE hàng tuần 3,5%.

    Trong trường hợp này, mô hình không có lỗi ARMA hoạt động tốt hơn một chút. Bây giờ Nếu tôi áp dụng các hệ số cho chỉ Hiệu ứng kỳ nghỉ từ mô hình ARIMA được mô tả trong # 1, cho kết quả của mô hình TBATS, RMSE hàng tuần cải thiện đến 2,95%

Bây giờ không có nhiều kiến ​​thức hoặc kiến ​​thức về các lý thuyết cơ bản của các mô hình này, tôi đang rơi vào tình huống khó xử liệu phương pháp TBATS này có phải là một phương pháp hợp lệ hay không. Mặc dù nó cải thiện RMSE đáng kể trong thử nghiệm 11 tuần, tôi tự hỏi liệu nó có thể duy trì độ chính xác này trong tương lai hay không. Hoặc ngay cả khi áp dụng hiệu ứng Holiday từ ARIMA vào kết quả TBATS là hợp lý. Bất kỳ suy nghĩ từ bất kỳ / tất cả những người đóng góp sẽ được đánh giá cao.

Liên kết cho dữ liệu thử nghiệm

Lưu ý: Thực hiện "Lưu liên kết dưới dạng", để tải xuống tệp.


1
Chào mừng đến với trang web, @CKI. Nếu bạn có thể tải dữ liệu của mình lên một nơi nào đó trên web, bạn có thể đăng một liên kết tại đây.
gung - Phục hồi Monica

Tôi muốn biết thêm về cách các biến hồi quy được thiết lập.
quỹ đạo

Các hình nộm 6 ngày trong tuần, 11 hình nộm hàng tháng và ngày lễ là các biến hồi quy 0/1 đơn giản. Ngày cố định trong tháng, khách hàng tiềm năng và độ trễ xung quanh các ngày lễ, xu hướng thời gian, xung theo mùa và xung dựa trên tìm kiếm heuristic.
Tom Reilly

Vậy CKI, bạn đã giải quyết nó như thế nào?
Tom Reilly

Xin chào CKI, bạn có thể chia sẻ một số tập lệnh R của bạn được sử dụng để tạo ma trận theo mùa
Ahmed

Câu trả lời:


9

Bạn nên đánh giá các mô hình và dự báo từ các nguồn gốc khác nhau trên các chân trời khác nhau và không phải là một số để đánh giá một cách tiếp cận.

Tôi cho rằng dữ liệu của bạn là từ Mỹ. Tôi thích hơn 3 năm dữ liệu hàng ngày vì bạn có thể có hai ngày nghỉ vào cuối tuần và không được đọc ngày trong tuần. Có vẻ như tác động Lễ Tạ ơn của bạn là một ngày nghỉ trong năm 2012 hoặc đã xảy ra lỗi ghi âm nào đó và khiến mô hình bỏ lỡ hiệu ứng ngày Lễ Tạ ơn.

Tháng một thường là thấp trong bộ dữ liệu nếu bạn xem như là một% của năm. Cuối tuần cao. Các hình nộm phản ánh hành vi này .... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

Tôi đã thấy rằng việc sử dụng một thành phần AR với dữ liệu hàng ngày giả định rằng hai tuần cuối cùng của mẫu tuần là cách mô hình nói chung là một giả định lớn. Chúng tôi bắt đầu với 11 hình nộm hàng tháng và 6 hình nộm hàng ngày. Một số bỏ mô hình. B ** 1 có nghĩa là có một độ trễ tác động vào ngày sau kỳ nghỉ. Có 6 ngày đặc biệt trong tháng (ngày 2,3,5,21,29,30 ---- 21 có thể là giả?) Và 3 xu hướng thời gian, 2 xung theo mùa (trong đó một ngày trong tuần bắt đầu lệch khỏi thông thường, 0 trước dữ liệu này và 1 mỗi 7 ngày sau) và 2 ngoại lệ (lưu ý lễ tạ ơn!) Điều này chỉ mất chưa đầy 7 phút để chạy. Tải xuống tất cả các kết quả tại đây www.autobox.com/se/dd/daily.zip

Nó bao gồm một tờ XLS nhanh và bẩn để kiểm tra xem mô hình có hợp lý hay không. Tất nhiên,% XLS trên thực tế rất tệ vì chúng là điểm chuẩn thô.

Hãy thử ước lượng mô hình này:

Y(T) =  .53169E+06                                                                                        
       +[X1(T)][(+  .13482E+06B** 1)]                                       M_HALLOWEEN
       +[X2(T)][(+  .17378E+06B**-3)]                                       M_JULY4TH
       +[X3(T)][(-  .11556E+06)]                                            M_MEMORIALDAY
       +[X4(T)][(-  .16706E+06B**-4+  .13960E+06B**-3-  .15636E+06B**-2                                                 
       -  .19886E+06B**-1)]                                                 M_NEWYEARS
       +[X5(T)][(+  .17023E+06B**-2-  .26854E+06B**-1-  .14257E+06B** 1)]   M_THANKSGIVI
       +[X6(T)][(-  71726.    )]                                            MONTH_EFF01
       +[X7(T)][(+  55617.    )]                                            MONTH_EFF02
       +[X8(T)][(+  27827.    )]                                            MONTH_EFF03
       +[X9(T)][(-  37945.    )]                                            MONTH_EFF09
       +[X10(T)[(-  23652.    )]                                            MONTH_EFF10
       +[X11(T)[(-  33488.    )]                                            MONTH_EFF11
       +[X12(T)[(+  39389.    )]                                            FIXED_EFF_N10107
       +[X13(T)[(+  63399.    )]                                            FIXED_EFF_N10207
       +[X14(T)[(+  .13727E+06)]                                            FIXED_EFF_N10307
       +[X15(T)[(+  .25144E+06)]                                            FIXED_EFF_N10407
       +[X16(T)[(+  .32004E+06)]                                            FIXED_EFF_N10507
       +[X17(T)[(+  .29156E+06)]                                            FIXED_EFF_N10607
       +[X18(T)[(+  74960.    )]                                            FIXED_DAY02
       +[X19(T)[(+  39299.    )]                                            FIXED_DAY03
       +[X20(T)[(+  27660.    )]                                            FIXED_DAY05
       +[X21(T)[(-  33451.    )]                                            FIXED_DAY21
       +[X22(T)[(+  43602.    )]                                            FIXED_DAY29
       +[X23(T)[(+  68016.    )]                                            FIXED_DAY30
       +[X24(T)[(+  226.98    )]                                            :TIME TREND        1                   1/  1   1/ 3/2011   I~T00001__010311stack
       +[X25(T)[(-  133.25    )]                                            :TIME TREND      423                  61/  3   2/29/2012   I~T00423__010311stack
       +[X26(T)[(+  164.56    )]                                            :TIME TREND      631                  91/  1   9/24/2012   I~T00631__010311stack
       +[X27(T)[(-  .42528E+06)]                                            :SEASONAL PULSE  733                 105/  5   1/ 4/2013   I~S00733__010311stack
       +[X28(T)[(-  .33108E+06)]                                            :SEASONAL PULSE  370                  53/  6   1/ 7/2012   I~S00370__010311stack
       +[X29(T)[(-  .82083E+06)]                                            :PULSE           326                  47/  4  11/24/2011   I~P00326__010311stack
       +[X30(T)[(+  .17502E+06)]                                            :PULSE           394                  57/  2   1/31/2012   I~P00394__010311stack
      +                    +   [A(T)]
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.