มีความเป็นไปได้มากกว่าหนึ่งความเข้าใจผิดที่ร้ายแรงในคำถามนี้ แต่มันไม่ได้หมายถึงการได้รับการคำนวณที่ถูกต้อง แต่เพื่อกระตุ้นการเรียนรู้ของอนุกรมเวลาที่มีความสำคัญในใจ
ในการพยายามที่จะเข้าใจการประยุกต์ใช้อนุกรมเวลาดูเหมือนว่าการตัดแนวโน้มข้อมูลทำให้การคาดการณ์ค่าในอนาคตไม่น่าเชื่อถือ ตัวอย่างเช่นgtemp
อนุกรมเวลาจากastsa
แพ็คเกจมีลักษณะดังนี้:
แนวโน้มสูงขึ้นในทศวรรษที่ผ่านมาจะต้องมีการแยกตัวประกอบในเมื่อวางแผนการทำนายค่าในอนาคต
อย่างไรก็ตามเพื่อประเมินความผันผวนของอนุกรมเวลาข้อมูลจำเป็นต้องถูกแปลงเป็นอนุกรมเวลาคงที่ ถ้าผมรูปแบบมันเป็นกระบวนการ ARIMA กับ differencing (ฉันเดานี้จะดำเนินการเพราะของกลาง1
ในorder = c(-, 1, -)
) เช่น:
require(tseries); require(astsa)
fit = arima(gtemp, order = c(4, 1, 1))
แล้วพยายามทำนายค่าในอนาคต ( ปี) ฉันคิดถึงองค์ประกอบแนวโน้มสูงขึ้น:
pred = predict(fit, n.ahead = 50)
ts.plot(gtemp, pred$pred, lty = c(1,3), col=c(5,2))
โดยไม่จำเป็นต้องสัมผัสกับการเพิ่มประสิทธิภาพที่แท้จริงของพารามิเตอร์ ARIMA โดยเฉพาะ ฉันจะกู้คืนแนวโน้มขาขึ้นในส่วนที่คาดการณ์ของพล็อตได้อย่างไร
ฉันสงสัยว่าจะมี "ซ่อน" ของ OLS อยู่ที่ไหนซักแห่ง
ฉันเจอแนวคิดของdrift
ซึ่งสามารถรวมเข้ากับArima()
ฟังก์ชั่นของforecast
แพคเกจการแสดงพล็อตที่เป็นไปได้:
par(mfrow = c(1,2))
fit1 = Arima(gtemp, order = c(4,1,1),
include.drift = T)
future = forecast(fit1, h = 50)
plot(future)
fit2 = Arima(gtemp, order = c(4,1,1),
include.drift = F)
future2 = forecast(fit2, h = 50)
plot(future2)
ซึ่งมีความทึบแสงมากขึ้นสำหรับกระบวนการคำนวณของมัน ฉันกำลังเล็งไปที่การทำความเข้าใจเกี่ยวกับวิธีการรวมแนวโน้มในการคำนวณพล็อต เป็นหนึ่งในปัญหาที่ไม่มีdrift
ในarima()
(ตัวพิมพ์เล็ก) หรือไม่
ในการเปรียบเทียบโดยใช้ชุดข้อมูลAirPassengers
จำนวนผู้โดยสารที่คาดการณ์เกินกว่าปลายทางของชุดข้อมูลจะถูกพล็อตบัญชีสำหรับแนวโน้มขาขึ้นนี้:
รหัสคือ:
fit = arima(log(AirPassengers), c(0, 1, 1), seasonal = list(order = c(0, 1, 1), period = 12))
pred <- predict(fit, n.ahead = 10*12)
ts.plot(AirPassengers,exp(pred$pred), log = "y", lty = c(1,3))
เรนเดอร์พล็อตที่สมเหตุสมผล