ค่า“ ความถี่” สำหรับข้อมูลช่วงเวลาวินาที / นาทีใน R


28

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

  1. คั่นด้วยนาทีและกระจายไปทั่ว 180 วัน (1440 นาที / วัน)
  2. คั่นด้วยวินาทีและกระจายไปทั่ว 180 วัน (86,400 วินาที / วัน)

ถ้าฉันจำคำจำกัดความได้ถูกต้อง "ความถี่" ใน ts ใน R คือจำนวนการสังเกตต่อ "ซีซัน"

คำถามตอนที่ 1:

"ฤดูกาล" ในกรณีของฉันคืออะไร

หากฤดูกาลคือ "วัน" ดังนั้น "ความถี่" เป็นนาที = 1440 และ 86,400 เป็นวินาทีหรือไม่

คำถามที่ 2:

"ความถี่" อาจขึ้นอยู่กับสิ่งที่ฉันพยายามบรรลุ / คาดการณ์ได้หรือไม่? ตัวอย่างเช่นในกรณีของฉันฉันต้องการคาดการณ์ระยะสั้นมาก หนึ่งก้าวล่วงหน้า 10 นาทีในแต่ละครั้ง เป็นไปได้ไหมที่จะพิจารณาฤดูกาลเป็นชั่วโมงแทนที่จะเป็นวัน? ในกรณีนั้นความถี่ = 60 สำหรับนาทีความถี่ = 3600 สำหรับวินาที?

ฉันได้ลองใช้ตัวอย่างเช่นใช้ frequency = 60 สำหรับข้อมูลนาทีและได้ผลลัพธ์ที่ดีขึ้นเมื่อเทียบกับ frequency = 1440 (ใช้fourierดูลิงค์ด้านล่างโดย Hyndman) http://robjhyndman.com/hyndsight/forecasting-weekly-data/

(การเปรียบเทียบทำโดยใช้ MAPE สำหรับการวัดความแม่นยำของการคาดการณ์)

ในกรณีที่ผลลัพธ์สมบูรณ์โดยพลการและความถี่ไม่สามารถเปลี่ยนแปลงได้ อะไรคือความหมายของการใช้ freq = 60 กับข้อมูลของฉัน

ฉันคิดว่ามันคุ้มค่าที่จะกล่าวถึงว่าข้อมูลของฉันมีฤดูกาลทุก ๆ ชั่วโมงและทุก ๆ สองชั่วโมง (โดยการสังเกตข้อมูลดิบและฟังก์ชั่น Autocorrelation)

คำตอบ:


38

"ความถี่" คือจำนวนการสังเกตต่อ "รอบ" (ปกติปี, แต่บางครั้งต่อสัปดาห์, วัน, ชั่วโมง, ฯลฯ ) นี่คือสิ่งที่ตรงกันข้ามกับคำจำกัดความของความถี่ในฟิสิกส์หรือในการวิเคราะห์ฟูริเยร์โดยที่ "จุด" คือความยาวของรอบและ "ความถี่" เป็นค่าผกผันของระยะเวลา เมื่อใช้งานts()ฟังก์ชั่นใน R ควรใช้ตัวเลือกต่อไปนี้

Data      frequency
Annual     1
Quarterly  4
Monthly   12
Weekly    52

ที่จริงแล้วไม่มี 52 สัปดาห์ในหนึ่งปี แต่ 365.25 / 7 = 52.18 โดยเฉลี่ย แต่ฟังก์ชั่นส่วนใหญ่ที่ใช้tsวัตถุต้องการความถี่จำนวนเต็ม

เมื่อความถี่ของการสังเกตน้อยกว่าหนึ่งสัปดาห์ก็มักจะมีวิธีจัดการความถี่มากกว่าหนึ่งวิธี ตัวอย่างเช่นข้อมูลที่สังเกตทุกนาทีอาจมีฤดูกาลรายชั่วโมง (ความถี่ = 60), ฤดูกาลประจำวัน (ความถี่ = 24x60 = 1440), ฤดูกาลประจำสัปดาห์ (ความถี่ = 24x60x7 = 10080) และฤดูกาลประจำปี (ความถี่ = 24x60x365.25 = 525960) หากคุณต้องการใช้tsวัตถุคุณต้องตัดสินใจว่าสิ่งใดที่สำคัญที่สุด

อีกทางเลือกหนึ่งคือการใช้mstsวัตถุ (กำหนดไว้ในforecastแพ็คเกจ) ซึ่งจัดการกับอนุกรมเวลาตามฤดูกาลหลายรายการ จากนั้นคุณสามารถระบุความถี่ทั้งหมดที่อาจเกี่ยวข้อง นอกจากนี้ยังมีความยืดหยุ่นเพียงพอที่จะรองรับความถี่ที่ไม่ใช่จำนวนเต็ม

คุณไม่จำเป็นต้องรวมความถี่ทั้งหมดเหล่านี้เข้าไปด้วย - เฉพาะความถี่ที่น่าจะมีอยู่ในข้อมูล เนื่องจากคุณมีข้อมูลเพียง 180 วันคุณอาจไม่สนใจฤดูกาลประจำปี หากข้อมูลเป็นการวัดปรากฏการณ์ทางธรรมชาติ (เช่นอุณหภูมิ) คุณอาจเพิกเฉยต่อฤดูกาลตามฤดูกาลได้

ด้วยหลายฤดูกาลคุณสามารถใช้โมเดล TBATS หรือเงื่อนไขฟูริเยร์ในรูปแบบการถดถอยหรือ ARIMA fourierฟังก์ชั่นจากแพคเกจการคาดการณ์จะจัดการmstsวัตถุ


รูปแบบของคำตอบนี้ถูกโพสต์ไว้ในบล็อกของฉัน: robjhyndman.com/hyndsight/seasonal-periods
Rob Hyndman

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