วิธีการสลายอนุกรมเวลาที่มีองค์ประกอบตามฤดูกาลหลายรายการ


22

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

ser = ts(data, freq=48)
dec_1 = stl(ser, s.window="per")

จากนั้นฉันแยกส่วนประกอบที่ผิดปกติของซีรี่ส์ที่ย่อยสลาย ( dec_1) โดยการตั้งค่าความถี่ให้เป็นองค์ประกอบตามฤดูกาลที่สองเช่น:

ser2 = ts(dec_1$time.series[,3], freq=336)
dec_2 = stl(ser2, s.window="per")

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


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

1
บทที่ 14 ของ Rob Hyndman, Koehler, Ord & Snyder "การพยากรณ์ด้วยการปรับให้เรียบแบบเอ็กซ์โปเนนเชียล" ครอบคลุมสิ่งนี้ Hyndman ยังมีแพ็คเกจพยากรณ์ใน R. ฉันดูเหมือนจะจำ Hyndman ได้โพสต์ในเว็บไซต์นี้ในหัวข้อนี้ แต่อาจมีในบล็อกของเขา
zbicyclist

@ มิเชลสวัสดีขอบคุณสำหรับการตอบกลับ ใช่องค์ประกอบตามฤดูกาลทั้งสองมีช่วงเวลาที่แตกต่างกัน คนแรกมีช่วงเวลา 48 (ฤดูกาลทุกวัน) ในขณะที่คนที่สองมีช่วงเวลา 336 (ฤดูกาลประจำสัปดาห์) มันเป็นซีรีส์เวลาครึ่งชั่วโมง
ace

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

2
นี่คือสิ่งที่ฉันคิด มันอยู่ในบล็อกของ Hyndman robjhyndman.com/papers/complex-seasonality
zbicyclist

คำตอบ:


13

forecastbats()tbats()x(เสื้อ)เสื้อ

ดูhttp://robjhyndman.com/papers/complex-seasonality/สำหรับสูตรและ Hyndman et al (2008) สำหรับคำอธิบายที่ดีกว่าของรุ่น ETS BATS และ TBATS เป็นส่วนเสริมของ ETS

ตัวอย่างเช่น:

fit <- bats(myTimeseries)
fit$x

ในกรณีนี้แต่ละแถวxจะอยู่ในลักษณะที่คล้ายฟูเรียร์

นอกจากนี้ยังมีplot.tbats()และplot.bats()ฟังก์ชั่นในการย่อยสลายโดยอัตโนมัติและดูส่วนประกอบ

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