Vẽ các giá trị dự đoán trong chuỗi thời gian ARIMA theo R


10

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, gtempchuỗi thời gian từ astsagói trông như thế này:

nhập mô tả hình ảnh ở đâ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 1trong 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:50

pred = predict(fit, n.ahead = 50)
ts.plot(gtemp, pred$pred, lty = c(1,3), col=c(5,2))

nhập mô tả hình ảnh ở đây

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 forecastgó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)

nhập mô tả hình ảnh ở đây

đó 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ó drifttrong 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:

nhập mô tả hình ảnh ở đâ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


1
Tôi sẽ nói rằng nếu bạn nghĩ rằng bạn có một loạt mà xu hướng đã thay đổi theo thời gian, các mô hình ARIMA có thể không phải là cách tốt nhất để tiếp cận dự đoán về chúng. Trong trường hợp không có kiến ​​thức về chủ đề (có thể dẫn đến các mô hình tốt hơn), tôi có xu hướng xem xét các mô hình không gian trạng thái; trong các biến thể cụ thể của Mô hình cấu trúc cơ bản cho một cái gì đó như thế này. Nhiều cuộc thảo luận về các mô hình không gian nhà nước có thể khó theo dõi, nhưng sách và giấy tờ của Andrew Harvey khá dễ đọc ( ví dụ như cuốn sách Dự báo, Mô hình chuỗi thời gian cấu trúc và Bộ lọc Kalman là khá tốt). ... ctd
Glen_b -Reinstate Monica

ctd ... Có một vài tác giả khác làm rất tốt, nhưng ngay cả những tác giả giỏi hơn cũng khiến nó phức tạp hơn một chút so với thực sự cần thiết cho người mới bắt đầu.
Glen_b -Reinstate Monica

Cảm ơn bạn, @Glen_b. Chỉ cần cố gắng để có được một sự tinh tế cho chuỗi thời gian, và như trong nhiều chủ đề toán học, việc thiếu động lực mở đầu là một kẻ giết người. Tất cả các chuỗi thời gian mà chúng ta có thể thực sự quan tâm dường như có xu hướng tăng hoặc giảm - dân số, GOP, thị trường chứng khoán, nhiệt độ toàn cầu. Và tôi nhận được rằng bạn muốn thoát khỏi các xu hướng (có thể là trong một giây) để xem các mẫu theo chu kỳ và theo mùa. Nhưng mặt sau của những phát hiện với xu hướng bao trùm để đưa ra dự đoán là ngụ ý hoặc không được đề cập như một mục tiêu.
Antoni Parellada

Ý kiến ​​của Rob Hyndman ở đây có liên quan. Tôi có thể trở lại và mở rộng về điều đó một chút.
Glen_b -Reinstate Monica

Bài đăng trên blog của Rob J. Hyndman "Các mô hình hằng và ARIMA trong R" có lẽ là tất cả những gì bạn cần biết. Tôi sẽ tò mò muốn nghe ý kiến ​​của bạn khi bạn khám phá bài viết trên blog.
Richard Hardy

Câu trả lời:


1

Đó là lý do tại sao bạn không nên thực hiện ARIMA hoặc bất cứ điều gì trên dữ liệu không cố định.

Trả lời một câu hỏi tại sao dự báo ARIMA trở nên khá rõ ràng sau khi xem xét phương trình ARIMA và một trong những giả định. Đây là lời giải thích đơn giản, đừng coi đó là một bằng chứng toán học.

Hãy xem xét mô hình AR (1), nhưng điều đó đúng với mọi ARIMA (p, d, q).
Phương trình của AR (1) là: và giả định về là . Với như vậy, mọi điểm tiếp theo sẽ gần hơn 0 so với trước đó cho đến khi và .

yt=βyt1+α+ϵ
β|β|1βyt1=0yt=const=α

Trong trường hợp đó, làm thế nào để đối phó với một dữ liệu như vậy? Bạn phải làm cho nó đứng yên bằng cách phân biệt ( ) hoặc tính% thay đổi ( ). Bạn đang mô hình sự khác biệt, không phải là một dữ liệu chính nó. Sự khác biệt đang trở nên không đổi theo thời gian, đó là xu hướng của bạn. n e w . d a t a = y t / y t - 1 - 1new.data=ytyt1new.data=yt/yt11

 require(tseries)
 require(forecast)
 require(astsa)
 dif<-diff(gtemp)
 fit = auto.arima(dif)
 pred = predict(fit, n.ahead = 50)
 ts.plot(dif, pred$pred, lty = c(1,3), col=c(5,2))
 gtemp_pred<-gtemp[length(gtemp)]
 for(i in 1:length(pred$pred)){
   gtemp_pred[i+1]<-gtemp_pred[i]+pred$pred[i]
 }
 plot(c(gtemp,gtemp_pred),type="l")

nhập mô tả hình ảnh ở đây


Cảm ơn bạn. Tóm lại, sẽ là độ dốc của cốt truyện cuối cùng? α
Antoni Parellada

Không. Tôi nghĩ rằng bạn đã nhầm lẫn nó, bởi vì độ dốc thường được ký hiệu là . Tuy nhiên, nếu bạn hỏi mối quan hệ giữa và độ dốc này là gì, câu trả lời sẽ không tầm thường. Tóm lại, nếu bạn đã chọn sự khác biệt, sẽ là một tiếp tuyến của độ dốc, nếu bạn đã chọn% thay đổi thì sẽ không có độ dốc nào, vì xu hướng sẽ không tuyến tính. alpha alphaααα
mbt

ĐỒNG Ý. Tôi sẽ phải chơi một chút với mã của bạn để xem những gì nó đang cố gắng minh họa liên quan đến phương trình ts. Tôi đã không làm việc với ts, và đã được một thời gian kể từ khi tôi đăng câu hỏi.
Antoni Parellada

Sau khi chơi một chút với mã, tôi thấy những gì đang xảy ra. Bạn có thể đưa các hệ số phù hợp AR1 = 0.257; MA = - 0.7854vào phương trình mô hình ARIMA để đánh giá đầy đủ quá trình tạo ra đường dốc đuôi dự kiến ​​hoặc dự đoán ở cuối lô của bạn không?
Antoni Parellada

y^t=ipβiyti+jqγjϵtj+α+ϵt
y^t=βyt1+γϵt1+α+ϵt
β=0.257γ=0.7854α=0.0064
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.