ปัญหาในการกำหนดลำดับ ARIMA


16

นี่คือการโพสต์ยาวดังนั้นฉันหวังว่าคุณจะสามารถทนกับฉันและโปรดแก้ไขฉันในที่ที่ฉันผิด

เป้าหมายของฉันคือการสร้างการคาดการณ์รายวันโดยใช้ข้อมูลย้อนหลัง 3 หรือ 4 สัปดาห์

ข้อมูลนี้เป็นข้อมูล 15 นาทีของภาระในท้องถิ่นของหนึ่งในสายหม้อแปลง ฉันมีปัญหาในการค้นหาลำดับโมเดลของกระบวนการ ARIMA ตามฤดูกาล พิจารณาอนุกรมเวลาความต้องการไฟฟ้า:

ซีรี่ส์เวลาดั้งเดิม http://i.share.pho.to/80d86574_l.png

เมื่อ 3 สัปดาห์แรกจะถูกนำมาเป็นส่วนย่อยและทำการแปลงแปลง follwing ACF / PACF ที่แตกต่างกัน:

เซตย่อย http://i.share.pho.to/5c165aef_l.png

ความแตกต่างแรก http://i.share.pho.to/b7300cc2_l.png

ความแตกต่างของฤดูกาลและครั้งแรก http://i.share.pho.to/570c5397_l.png

ดูเหมือนว่าซีรีส์นี้จะหยุดนิ่ง แต่ฤดูกาลอาจเป็นรายสัปดาห์ (ดูสัปดาห์ที่แตกต่างตามฤดูกาลและลำดับที่สอง [ที่นี่] http://share.pho.to/3owoqคุณคิดอย่างไร)

ARผมMA(พี,1,Q)(P,1,Q)96

ARผมMA(0,1,4)(0,1,1)96

Series: x 
ARIMA(0,1,4)(0,1,1)[96] 

    Coefficients:
    ma1      ma2      ma3      ma4     sma1
    -0.2187  -0.2233  -0.0996  -0.0983  -0.9796
    s.e.   0.0231   0.0234   0.0257   0.0251   0.0804

    sigma^2 estimated as 364612:  log likelihood=-15138.91
    **AIC=30289.82   AICc=30289.87   BIC=30323.18**

ฟังก์ชั่น auto.arima คำนวณรูปแบบต่อไปนี้ (ด้วย stepwise และการประมาณค่าบน TRUE มิฉะนั้นจะใช้เวลานานในการรวมเข้าด้วยกัน):

ARผมMA(1,1,1)(2,0,2)96
กับ

Series: x 
ARIMA(1,1,1)(2,0,2)[96] 

    Coefficients:
    ar1      ma1    sar1    sar2     sma1     sma2
    0.7607  -1.0010  0.4834  0.4979  -0.3369  -0.4168
    s.e.  0.0163   0.0001  0.0033  0.0116   0.0216   0.0255

    sigma^2 estimated as 406766:  log likelihood=-15872.02
    **AIC=31744.99   AICc=31745.05   BIC=31784.25**

ซึ่งหมายความว่าจะไม่มีการใช้การแตกต่างตามฤดูกาล นี่ คือส่วนที่เหลือของทั้งสองรุ่น สถิติของ Ljung Box ให้ค่า p น้อยมากซึ่งแสดงว่ายังคงมีออโต้คอลเลชั่นอยู่บ้าง (? แก้ไขให้ฉันถ้าฉันผิด)

การพยากรณ์

ดังนั้นในการพิจารณาว่าสิ่งไหนดีกว่าการทดสอบความแม่นยำนอกตัวอย่างจึงดีที่สุด ดังนั้นสำหรับทั้งสองรุ่นจะมีการคาดการณ์ล่วงหน้า 24 ชั่วโมงซึ่งจะถูกนำมาเปรียบเทียบกัน ผลลัพธ์คือ: auto.arima http://i.share.pho.to/5d1dd934_l.png รูปแบบคู่มือ http://i.share.pho.to/7ca69c97_l.png

อัตโนมัติ:

                      ME     RMSE      MAE       MPE      MAPE      MASE        ACF1 Theil's U
Training set   -2.586653 606.3188 439.1367 -1.284165  7.599403 0.4914563 -0.01219792        NA
Test set     -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420  0.70219229  1.617834

คู่มือ

                       ME     RMSE      MAE        MPE      MAPE      MASE         ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229  7.509774 0.4875621 -0.002034122        NA
Test set     2.878919e+02 919.7398 696.0593  3.4756363 10.317420 0.7789892  0.731013599  1.281764

คำถาม

อย่างที่คุณคิดนี่คือการวิเคราะห์ในสามสัปดาห์แรกของชุดข้อมูล ฉันกำลังดิ้นรนในใจด้วยคำถามต่อไปนี้:

  1. ฉันจะเลือกรุ่น ARIMA ที่ดีที่สุดได้อย่างไร (โดยลองคำสั่งซื้อที่แตกต่างกันทั้งหมดและตรวจสอบ MASE / MAPE / MSE ที่ดีที่สุดที่ซึ่งการเลือกการวัดประสิทธิภาพสามารถพูดคุยด้วยตนเองได้ .. )
  2. หากฉันสร้างแบบจำลองใหม่และการคาดการณ์สำหรับการคาดการณ์วันใหม่ทุกครั้ง (เช่นในการคาดการณ์ออนไลน์) ฉันต้องคำนึงถึงแนวโน้มรายปีในการพิจารณาและอย่างไร (เช่นในเซตย่อยขนาดเล็กฉันเดาว่าจะเป็นแนวโน้มที่ละเลย)
  3. คุณคาดหวังหรือไม่ว่าลำดับของโมเดลยังคงเหมือนเดิมตลอดทั้งชุดข้อมูลกล่าวคือเมื่อทำการเซ็ตย่อยอีกชุดจะให้โมเดลเดียวกันกับฉันหรือไม่
  4. เป็นวิธีที่ดีวิธีใดในการรับมือกับวันหยุด? หรือ ARIMAX ที่มีหุ่นจำลองวันหยุดภายนอกเป็นสิ่งจำเป็นสำหรับเรื่องนี้?
  5. ฉันต้องใช้วิธีอนุกรมของฟูริเยร์เพื่อลองแบบจำลองseasonality=672ตามที่กล่าวไว้ในช่วงฤดูกาลที่ยาวนาน หรือไม่?
  6. ถ้าเป็นเช่นนี้fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(ในกรณีที่ฟังก์ชันฟูริเยร์เป็นไปตามที่กำหนดไว้ในบล็อกของ Hyndman)
  7. ส่วนประกอบ P และ Q เริ่มต้นรวมอยู่ในชุดฟูริเยร์หรือไม่?

ความรู้เชิงทฤษฎีส่วนใหญ่ได้มาจากFPPสิ่งที่ยอดเยี่ยม!

ก่อนที่จะให้คำแนะนำในการใช้การปรับให้เรียบแบบเอ็กซ์โปเนนเชียลหรือการถดถอยเชิงเส้น (ไดนามิก) สิ่งนี้ยังถูกนำมาเปรียบเทียบ

ข้อมูล

https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt

รหัส

data<-read.csv("file", sep=";")
load<-data[,3]

I removed the few zero values with week before values

stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)] 
load[idx] <- load[idx-stepback] 

ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))

นอกจากนี้ยังเป็นไปได้ที่จะโพสต์ตัวอย่างที่ทำซ้ำได้ แต่จะทำให้การโพสต์อีกต่อไป แต่เป็นไปได้ถ้าจำเป็น ดังนั้นหากมีสิ่งใดที่ฉันควรให้โปรดแจ้งให้เราทราบ

คำตอบ:


9
  1. ฉันจะเลือกรุ่น ARIMA ที่ดีที่สุดได้อย่างไร (โดยลองคำสั่งซื้อที่แตกต่างกันทั้งหมดและตรวจสอบ MASE / MAPE / MSE ที่ดีที่สุดที่ซึ่งการเลือกการวัดประสิทธิภาพสามารถพูดคุยด้วยตนเองได้ .. )

การประเมินความเสี่ยงจากตัวอย่างเป็นมาตรฐานทองคำสำหรับการประเมินประสิทธิภาพและดังนั้นสำหรับการเลือกแบบจำลอง เป็นการดีที่คุณตรวจสอบข้ามเพื่อให้การประเมินความเสี่ยงของคุณมีค่าเฉลี่ยมากกว่าข้อมูลเพิ่มเติม FPP อธิบายวิธีการตรวจสอบข้ามหนึ่งวิธีสำหรับอนุกรมเวลา ดู Tashman สำหรับความคิดเห็นของวิธีการอื่น ๆ :

Tashman, LJ (2000) การทดสอบตัวอย่างออกนอกเรื่องความแม่นยำในการพยากรณ์: การวิเคราะห์และการทบทวน วารสารการพยากรณ์ระหว่างประเทศ, 16 (4), 437–450 ดอย: 10.1016 / S0169-2070 (00) 00065-0

แน่นอนว่าการตรวจสอบความถูกต้องไขว้ใช้เวลานานและผู้คนมักหันมาใช้เกณฑ์ในตัวอย่างเพื่อเลือกแบบจำลองเช่น AIC ซึ่งเป็นวิธีที่ auto.arima เลือกรุ่นที่ดีที่สุด วิธีการนี้ใช้ได้อย่างสมบูรณ์แบบหากอาจไม่เหมาะสมที่สุด

  1. หากฉันสร้างแบบจำลองใหม่และการคาดการณ์สำหรับการคาดการณ์วันใหม่ทุกครั้ง (เช่นในการคาดการณ์ออนไลน์) ฉันต้องคำนึงถึงแนวโน้มรายปีในการพิจารณาและอย่างไร (เช่นในเซตย่อยขนาดเล็กฉันเดาว่าจะเป็นแนวโน้มที่ละเลย)

ฉันไม่แน่ใจว่าคุณหมายถึงอะไรตามแนวโน้มรายปี สมมติว่าคุณหมายถึงฤดูกาลประจำปีไม่มีวิธีใดที่จะพิจารณาด้วยข้อมูลที่มีค่าน้อยกว่าหนึ่งปี

  1. คุณคาดหวังหรือไม่ว่าลำดับของโมเดลยังคงเหมือนเดิมตลอดทั้งชุดข้อมูลกล่าวคือเมื่อทำการเซ็ตย่อยอีกชุดจะให้โมเดลเดียวกันกับฉันหรือไม่

ฉันคาดหวังว่าการ จำกัด การเปลี่ยนแปลงวิธีการสร้างข้อมูลรูปแบบพื้นฐานที่ถูกต้องที่สุดจะเหมือนกันตลอดทั้งชุดข้อมูล อย่างไรก็ตามนั่นไม่เหมือนกับการบอกว่าโมเดลที่เลือกโดยโพรซีเดอร์ใด ๆ (เช่นโพรซีเดอร์ที่ใช้โดย auto.arima) จะเหมือนกันถ้าโพรซีเดอร์นั้นนำไปใช้กับชุดย่อยของข้อมูลที่แตกต่างกัน นี่เป็นเพราะความแปรปรวนเนื่องจากการสุ่มตัวอย่างจะส่งผลให้เกิดความแปรปรวนในผลลัพธ์ของขั้นตอนการเลือกแบบจำลอง

  1. เป็นวิธีที่ดีวิธีใดในการรับมือกับวันหยุด? หรือ ARIMAX ที่มีหุ่นจำลองวันหยุดภายนอกเป็นสิ่งจำเป็นสำหรับเรื่องนี้?

หุ่นวันหยุดภายนอกเป็นวิธีที่ดีที่สุด

  1. ฉันต้องใช้วิธีอนุกรมของฟูริเยร์เพื่อลองแบบจำลองseasonality=672ตามที่กล่าวไว้ในช่วงฤดูกาลที่ยาวนานหรือไม่?

คุณต้องทำอะไรบางอย่างเพราะตามที่กล่าวถึงในบทความนั้นฟังก์ชั่น arima ใน R ไม่สนับสนุนช่วงเวลาตามฤดูกาลที่สูงกว่า 350 ฉันเคยประสบความสำเร็จพอสมควรกับแนวทางฟูริเยร์ ตัวเลือกอื่น ๆ รวมถึงการพยากรณ์หลังจากการสลายตัวตามฤดูกาล (รวมถึงใน FPP) และแบบจำลองการปรับให้เรียบแบบเอ็กซ์โพเนนเชียลเช่นค้างคาวและ tbats

  1. ถ้าเป็นเช่นนี้fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(ในกรณีที่ฟังก์ชันฟูริเยร์เป็นไปตามที่กำหนดไว้ในบล็อกของ Hyndman)

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

  1. ส่วนประกอบ P และ Q เริ่มต้นรวมอยู่ในชุดฟูริเยร์หรือไม่?

ฉันไม่แน่ใจว่าคุณถามอะไรที่นี่ P และ Q มักจะอ้างถึงองศาของส่วนประกอบตามฤดูกาลของ AR และ MA ใช้วิธีฟูริเยร์ไม่มีส่วนประกอบตามฤดูกาลและมีเงื่อนไขการแปลงฟูริเยร์ที่เกี่ยวข้องกับฤดูกาลแทน มันไม่ใช่ ARIMA ตามฤดูกาลอีกต่อไปมันคือ ARIMAX ที่บรรดานกขุนนางประมาณฤดูกาล

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