Có thể có nhiều hơn một sự hiểu lầm nghiêm trọng trong câu hỏi này, nhưng nó không có nghĩa là tính toán đúng, mà là để thúc đẩy việc học chuỗi thời gian với một số trọng tâm trong tâm trí.
Khi cố gắng hiểu ứng dụng của chuỗi thời gian, có vẻ như việc không theo xu hướng dữ liệu làm cho việc dự đoán các giá trị trong tương lai là không thể thực hiện được. Chẳng hạn, gtemp
chuỗi thời gian từ astsa
gói trông như thế này:
Xu hướng đi lên trong những thập kỷ qua cần được chú ý khi vạch ra các giá trị dự đoán trong tương lai.
Tuy nhiên, để đánh giá biến động chuỗi thời gian, dữ liệu cần được chuyển đổi thành chuỗi thời gian đứng yên. Nếu tôi mô hình nó như một quá trình với Differencing (tôi đoán này được thực hiện vì giữa ARIMA 1
trong order = c(-, 1, -)
) như trong:
require(tseries); require(astsa)
fit = arima(gtemp, order = c(4, 1, 1))
và sau đó cố gắng dự đoán các giá trị trong tương lai ( năm), tôi bỏ lỡ thành phần xu hướng tăng:
pred = predict(fit, n.ahead = 50)
ts.plot(gtemp, pred$pred, lty = c(1,3), col=c(5,2))
Không nhất thiết phải chạm vào tối ưu hóa thực tế của các tham số ARIMA cụ thể, làm cách nào tôi có thể khôi phục xu hướng tăng trong phần dự đoán của cốt truyện?
Tôi nghi ngờ có một OLS "ẩn" ở đâu đó, điều này sẽ giải thích cho sự không cố định này?
Tôi đã bắt gặp khái niệm về drift
, có thể được tích hợp vào Arima()
chức năng của forecast
gói, thể hiện một cốt truyện hợp lý:
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)
đó là mờ đục hơn cho quá trình tính toán của nó. Tôi đang nhắm đến một số cách hiểu về cách xu hướng được kết hợp vào các tính toán cốt truyện. Là một trong những vấn đề mà không có drift
trong arima()
(chữ thường)?
So sánh, sử dụng tập dữ liệu AirPassengers
, số lượng hành khách dự đoán vượt quá điểm cuối của tập dữ liệu được vẽ theo kế toán cho xu hướng tăng này:
Các đang là:
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))
vẽ một cốt truyện có ý nghĩa