ฉันมีการวัดรายชั่วโมงสี่แบบต่อเนื่อง
- การใช้ความร้อนภายในบ้าน
- อุณหภูมิภายนอกบ้าน
- รังสีดวงอาทิตย์
- ความเร็วลม
ฉันต้องการที่จะทำนายการใช้ความร้อนภายในบ้าน มีแนวโน้มตามฤดูกาลที่ชัดเจนทั้งรายปีและรายวัน เนื่องจากมีความสัมพันธ์ที่ชัดเจนระหว่างซีรีย์ที่แตกต่างกันฉันต้องการให้พอดีกับพวกเขาโดยใช้โมเดล ARIMAX สิ่งนี้สามารถทำได้ใน R โดยใช้ฟังก์ชั่น arimax จากแพ็คเกจ TSA
ฉันพยายามอ่านเอกสารเกี่ยวกับฟังก์ชั่นนี้และอ่านฟังก์ชั่นการถ่ายโอน แต่จนถึงตอนนี้รหัสของฉัน:
regParams = ts.union(ts(dayy))
transferParams = ts.union(ts(temp))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams,xtransf=transferParams,transfer=list(c(1,1))
pred10 = predict(model10, newxreg=regParams)
ให้ฉัน:
โดยที่เส้นสีดำคือข้อมูลจริงที่วัดได้และเส้นสีเขียวเป็นแบบจำลองที่ได้ทำการเปรียบเทียบของฉัน ไม่เพียง แต่เป็นแบบอย่างที่ดีเท่านั้น
ฉันจะยอมรับว่าความรู้เกี่ยวกับโมเดล ARIMAX และฟังก์ชั่นการถ่ายโอนมี จำกัด ในฟังก์ชั่น arimax (), (เท่าที่ฉันเข้าใจ), xtransf เป็นอนุกรมเวลาภายนอกที่ฉันต้องการใช้ (โดยใช้ฟังก์ชั่นถ่ายโอน) เพื่อทำนายอนุกรมเวลาหลักของฉัน แต่อะไรคือความแตกต่างระหว่าง xreg และ xtransf จริง ๆ ?
โดยทั่วไปแล้วฉันทำอะไรผิด ฉันต้องการที่จะสามารถที่จะได้รับแบบที่ดีขึ้นกว่าหนึ่งที่ประสบความสำเร็จจาก LM (ความร้อน ~ อุณหภูมิRadiลม * เวลา)
การแก้ไข: จากความคิดเห็นบางส่วนฉันได้ลบการถ่ายโอนและเพิ่ม xreg แทน:
regParams = ts.union(ts(dayy), ts(temp), ts(time))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams)
โดย dayy คือ "จำนวนวันของปี" และเวลาคือชั่วโมงของวัน อุณหภูมิเป็นอุณหภูมิภายนอกอีกครั้ง สิ่งนี้ทำให้ฉันผลลัพธ์ต่อไปนี้:
ซึ่งดีกว่า แต่ไม่ใช่สิ่งที่ฉันคาดหวัง