วิธีการตีความผลลัพธ์ของรุ่น TBATS และการวิเคราะห์แบบจำลอง


11

ฉันได้รับข้อมูลความต้องการรายครึ่งชั่วโมงซึ่งเป็นช่วงเวลาตามฤดูกาล ฉันใช้tbatsในforecastแพ็คเกจใน R และได้ผลลัพธ์ดังนี้:

TBATS(1, {5,4}, 0.838, {<48,6>, <336,6>, <17520,5>}) 

หมายความว่าชุดข้อมูลไม่จำเป็นต้องใช้การแปลง Box-Cox หรือไม่และมีข้อผิดพลาดคือ ARMA (5, 4) และคำ 6, 6 และ 5 ใช้เพื่ออธิบายฤดูกาล พารามิเตอร์ที่ทำให้ชื้นคือ 0.8383 หมายความว่ามันคือการแปลงด้วยหรือไม่

ต่อไปนี้เป็นพล็อตการสลายตัวของรุ่น:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสงสัยว่าจะทำอย่างไรlevelและslopeบอกเกี่ยวกับตัวแบบ 'ความชัน' บอกแนวโน้ม แต่จะเป็นlevelอย่างไร วิธีการรับพล็อตที่ชัดเจนสำหรับsession 1และsession 2ซึ่งเป็นฤดูกาลรายวันและรายสัปดาห์ตามลำดับ

ฉันยังต้องรู้วิธีการวินิจฉัยแบบจำลองtbatsเพื่อประเมินโมเดลยกเว้นค่า RMSE วิธีปกติคือการตรวจสอบว่าข้อผิดพลาดเป็นสัญญาณรบกวนสีขาว แต่ที่นี่ข้อผิดพลาดควรจะเป็นซีรีส์ ARMA ฉันพล็อตข้อผิดพลาด 'acf' และ 'pacf' และฉันไม่คิดว่ามันจะดูเหมือน ARMA (5,4) หมายความว่าแบบจำลองของฉันไม่ดีหรือไม่?

acf(resid(model1),lag.max = 1000)
pacf(resid(model1),lag.max=1000)

ป้อนคำอธิบายรูปภาพที่นี่

คำถามสุดท้ายRMSEจะคำนวณโดยใช้ค่าติดตั้งและค่าจริง หากฉันใช้คาดการณ์มูลค่าfc1.week$meanและคุณค่าที่แท้จริงในการประเมินรูปแบบที่มันยังคงเรียกว่าRMSE? หรือมีชื่ออื่นสำหรับสิ่งนี้?

fc1.week <-forecast(model1,h=48*7)
fc1.week.demand<-fc1.week$mean

คำตอบ:


8

ในหน้าความช่วยเหลือ?tbatsเราพบว่า:

โมเดลที่ถูกติดตั้งถูกกำหนด TBATS (omega, p, q, phi,, ... ,) โดยที่ omega เป็นพารามิเตอร์ Box-Cox และ phi เป็นพารามิเตอร์ที่ทำให้หมาด ๆ ข้อผิดพลาดถูกจำลองเป็นกระบวนการ ARMA (p, q) และ m1, ... , mJ แสดงรายการช่วงเวลาตามฤดูกาลที่ใช้ในรูปแบบและ k1, ... , kJ เป็นจำนวนที่สอดคล้องกันของข้อกำหนดฟูริเยร์ที่ใช้สำหรับแต่ละฤดูกาล

ดังนั้น:

  • โอเมก้า = 1 หมายความว่าแน่นอนไม่มีการเปลี่ยนแปลง Box-Cox
  • ϕ=0ϕ=1use.damped.trendtbats()
  • คุณมีสามรอบฤดูกาลที่แตกต่างกันหนึ่งในความยาว 48 = 24 * 2 (รายวัน) หนึ่งในความยาว 336 = 7 * 24 * 2 (รายสัปดาห์) และหนึ่งในความยาว 17520 = 365 * 24 * 2 (รายปี) tbatsเหมาะกับคนแรกที่ใช้คำว่าฟูริเยร์หกคำ, ครั้งที่สองกับหก, คำสุดท้ายกับห้า

กระดาษต้นฉบับ TBATS โดย De Livera, Hyndman & Snyder (2011, JASA )มีประโยชน์แน่นอน

ต่อไป:

  • "ระดับ" เป็นระดับท้องถิ่นของอนุกรมเวลา
  • "แนวโน้ม" คือแนวโน้มของท้องถิ่น

เหล่านี้จะคล้ายกับที่พบบ่อยมากขึ้นจากการสลายตัวในฤดูกาลแนวโน้มใช้ lowess (STL) ลองดูที่stl()คำสั่ง

ในการรับพล็อตที่ชัดเจนสำหรับซีซัน 1 และซีซัน 2 คุณสามารถดูค่าตัวเลขของส่วนประกอบแยกต่างหากของแบบจำลอง TBATS ของคุณ ดูและstr(tbats.components(model1)) ให้วัตถุอนุกรมเวลา ( ) หลายรายการซึ่งเป็นเมทริกซ์โดยหลักหนึ่งในคอลัมน์จะให้องค์ประกอบตามฤดูกาลแต่ละรายการแก่คุณsummary(tbats.components(model1))tbats.components()mts

residuals()ควรทำงานเหมือนทำงานได้ทุกที่ใน R; นั่นคือมันควรคืนค่าเศษสุดท้าย สิ่งเหล่านี้ควรเป็นเสียงสีขาวเพราะมันเป็นของเหลือหลังจากใช้ ARMA (5,4) ยอดเขาใน ACF ของคุณดูเหมือนจะเป็นปกติ - ดูเหมือนว่ามีบางฤดูกาลที่เหลืออยู่ คุณสามารถอนุมานช่วงเวลาของพวกเขา (มันไม่ได้ช่วยอะไรมากนักที่จะนับการล่าช้าเป็นทวีคูณของวัฏจักรตามฤดูกาลที่ยาวที่สุด)

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


1
ขอบคุณมาก! ใช่ค่าสูงสุดของ ACF เป็นค่าปกติหนึ่งค่าสูงสุดใน 48 ล่าช้า ปัญหาคือฉันได้รวม 48 ตามฤดูกาลในซีรีส์เวลาของฉัน ตามปกติคุณจะทำอย่างไรเพื่อแก้ไขสิ่งที่เหลือตามฤดูกาล มีอะไรอีกที่คุ้มค่าที่จะลอง?
Jeannie

1
ครวญเพลง น่าเสียดายที่ฉันไม่เห็นวิธีที่tbats()จะรวมข้อกำหนดฟูริเยร์เพิ่มเติมสำหรับฤดูกาลเฉพาะ ขออภัย ...
Stephan Kolassa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.