การพยากรณ์อนุกรมเวลาด้วยข้อมูลรายวัน: ARIMA พร้อม regressor


15

ฉันใช้ชุดข้อมูลการขายรายวันที่มีจุดข้อมูลรายวันประมาณ 2 ปี จากบทเรียนออนไลน์ / ตัวอย่างบางส่วนฉันพยายามระบุฤดูกาลในข้อมูล ดูเหมือนว่ามีรายสัปดาห์รายเดือนและอาจเป็นระยะ / ปีตามฤดูกาล

ตัวอย่างเช่นมีวันจ่ายเงินโดยเฉพาะอย่างยิ่งในวันที่ 1 ของเดือนที่มีผลในสองสามวันในช่วงสัปดาห์ นอกจากนี้ยังมีเอฟเฟกต์วันหยุดบางอย่างซึ่งสามารถระบุได้อย่างชัดเจนโดยสังเกตจากการสังเกต

เมื่อติดตั้งกับข้อสังเกตเหล่านี้ฉันได้ลองทำสิ่งต่อไปนี้:

  1. ARIMA (พร้อมArimaและauto.arimaจากแพคเกจ R- คาดการณ์) โดยใช้ regressor (และค่าเริ่มต้นอื่น ๆ ที่จำเป็นในการทำงาน) regressor ที่ฉันสร้างนั้นเป็นเมทริกซ์ที่มีค่า 0/1:

    • ตัวแปร 11 เดือน (n-1)
    • 12 ตัวแปรวันหยุด
    • ไม่สามารถหาส่วนของวันจ่ายเงินได้ ... เนื่องจากมันมีผลกระทบที่ซับซ้อนกว่าที่ฉันคิดเล็กน้อย เอฟเฟกต์ payday ทำงานแตกต่างกันไปขึ้นอยู่กับวันทำงานของวันที่ 1 ของเดือน

    ฉันใช้ 7 (เช่นความถี่รายสัปดาห์) เพื่อทำโมเดลอนุกรมเวลา ฉันลองทดสอบ - คาดการณ์ครั้งละ 7 วัน ผลลัพธ์มีความสมเหตุสมผล: ความแม่นยำโดยเฉลี่ยสำหรับการคาดการณ์ 11 สัปดาห์มาถึงค่าเฉลี่ยรายสัปดาห์ RMSE ถึง 5%

  2. รุ่น TBATS (จากแพ็คเกจ R- คาดการณ์) - ใช้หลายฤดูกาล (7, 30.4375, 365.25) และเห็นได้ชัดว่าไม่มีการถดถอย ความแม่นยำนั้นดีกว่าแบบจำลอง ARIMA อย่างน่าประหลาดใจโดยเฉลี่ยต่อสัปดาห์ RMSE 3.5%

    ในกรณีนี้รูปแบบที่ไม่มีข้อผิดพลาด ARMA จะทำงานได้ดีขึ้นเล็กน้อย ตอนนี้ถ้าฉันใช้ค่าสัมประสิทธิ์สำหรับเพียงเอฟเฟกต์วันหยุดจากแบบจำลอง ARIMA ที่อธิบายไว้ใน # 1 กับผลลัพธ์ของแบบจำลอง TBATS avg รายสัปดาห์เฉลี่ย RMSE เพิ่มขึ้นเป็น 2.95%

ตอนนี้โดยไม่ต้องมีพื้นฐานหรือความรู้มากมายเกี่ยวกับทฤษฎีพื้นฐานของแบบจำลองเหล่านี้ฉันอยู่ในภาวะที่กลืนไม่เข้าคายไม่ออกว่าวิธีการของ TBATS นี้เป็นวิธีที่ถูกต้องหรือไม่ แม้ว่ามันจะปรับปรุง RMSE อย่างมีนัยสำคัญในการทดสอบ 11 สัปดาห์ฉันสงสัยว่ามันสามารถรักษาความแม่นยำนี้ในอนาคตได้หรือไม่ หรือแม้ว่าการใช้เอฟเฟ็กต์วันหยุดจาก ARIMA กับผลลัพธ์ TBATS นั้นสมเหตุสมผล ความคิดใด ๆ จาก / ผู้มีส่วนร่วมทั้งหมดจะได้รับการชื่นชมอย่างมาก

ลิงก์สำหรับข้อมูลการทดสอบ

หมายเหตุ: ทำ "บันทึกลิงก์เป็น" เพื่อดาวน์โหลดไฟล์


1
ยินดีต้อนรับสู่เว็บไซต์ @CKI หากคุณสามารถอัปโหลดข้อมูลของคุณไปยังบางแห่งบนเว็บคุณสามารถโพสต์ลิงค์ได้ที่นี่
gung - Reinstate Monica

ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการตั้งค่า regressors
โคจร

6 วันของสัปดาห์หุ่น 11 หุ่นรายเดือนและวันหยุดจะง่าย ๆ regressors 0/1 วันที่กำหนดของเดือนความเป็นผู้นำและความล่าช้าในช่วงวันหยุดแนวโน้มเวลาชีพจรตามฤดูกาลและชีพจรจะขึ้นอยู่กับการค้นหาแบบฮิวริสติก
Tom Reilly

ดังนั้น CKI คุณแก้ไขมันได้อย่างไร?
Tom Reilly

สวัสดี CKI คุณสามารถแบ่งปันสคริปต์ R ของคุณที่ใช้ในการสร้างเมทริกซ์ตามฤดูกาลได้ไหม
Ahmed

คำตอบ:


9

คุณควรประเมินโมเดลและการพยากรณ์จากต้นกำเนิดที่แตกต่างกันในขอบเขตที่ต่างกันและไม่ใช่ตัวเลขหนึ่งตัวเพื่อวัดวิธีการ

ฉันคิดว่าข้อมูลของคุณมาจากสหรัฐฯ ฉันชอบข้อมูลรายวันมากกว่า 3 ปีเพราะคุณสามารถลงจอดวันหยุดสองวันหยุดสุดสัปดาห์และไม่ต้องอ่านวันทำงาน ดูเหมือนว่าผลกระทบวันขอบคุณพระเจ้าของคุณจะเป็นวันหยุดในปี 2012 หรือมีข้อผิดพลาดในการบันทึกบางชนิดและทำให้แบบจำลองพลาดผลวันขอบคุณพระเจ้า

โดยทั่วไปมกราคมจะอยู่ในระดับต่ำในชุดข้อมูลถ้าคุณดูเป็น% ของปี วันหยุดสุดสัปดาห์สูง หุ่นจำลองพฤติกรรมนี้ .... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

ฉันได้พบว่าการใช้ส่วนประกอบ AR กับข้อมูลรายวันจะถือว่าวันสองสัปดาห์สุดท้ายของรูปแบบสัปดาห์คือรูปแบบโดยทั่วไปซึ่งเป็นข้อสันนิษฐานที่ยิ่งใหญ่ เราเริ่มต้นด้วย 11 เดือนหุ่นและ 6 วันหุ่น บางคนหลุดออกจากแบบจำลอง B ** 1 หมายความว่ามีความล่าช้าเกิดขึ้นหลังจากวันหยุด มี 6 วันพิเศษของเดือน (วัน 2,3,5,21,29,30 ---- 21 อาจเป็นลวงตา?) และเทรนด์ 3 ครั้งพัลส์ 2 ฤดูกาล (ซึ่งวันหนึ่งของสัปดาห์เริ่มเบี่ยงเบนไปจาก โดยทั่วไป 0 ก่อนข้อมูลนี้และ 1 ทุก 7 วันหลังจากนั้น) และ 2 ผิดปกติ (หมายเหตุขอบคุณพระเจ้า!) ใช้เวลาเพียง 7 นาทีในการทำงาน ดาวน์โหลดผลลัพธ์ทั้งหมดได้ที่นี่ www.autobox.com/se/dd/daily.zip

มันมีแผ่น XLS ที่รวดเร็วและสกปรกเพื่อตรวจสอบว่ารูปแบบเหมาะสมหรือไม่ แน่นอนว่า XLS% นั้นแย่มากเพราะเป็นมาตรฐานที่หยาบ

ลองประเมินโมเดลนี้:

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)]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.