Dự đoán Arimax: Sử dụng gói dự báo


8

Các arimaxchức năng trong TSAgói là kiến thức của tôi chỉ Rgói mà sẽ phù hợp với một chức năng chuyển giao cho các mô hình can thiệp. Nó thiếu một chức năng dự đoán mặc dù đôi khi cần thiết.

Đây có phải là một cách giải quyết vấn đề này, tận dụng forecastgói tuyệt vời ? Các khoảng dự đoán sẽ là chính xác? Trong ví dụ của tôi, các lỗi std là "đóng" cho các thành phần.

  1. Sử dụng chức năng arima gói dự báo để xác định chuỗi nhiễu trước can thiệp và thêm bất kỳ điều chỉnh ngoại lệ nào.
  2. Lắp cùng mô hình vào arimaxnhưng thêm chức năng chuyển
  3. Lấy các giá trị được trang bị cho hàm truyền (hệ số từ arimax) và thêm chúng dưới dạng xreg in arima.
  4. Dự báo với arima
library(TSA)
library(forecast)
data(airmiles)
air.m1<-arimax(log(airmiles),order=c(0,0,1),
              xtransf=data.frame(I911=1*(seq(airmiles)==69)),
              transfer=list(c(1,0))
              )

không khí.m1

Đầu ra:

Coefficients:
  ma1  intercept  I911-AR1  I911-MA0
0.5197    17.5172    0.5521   -0.4937
s.e.  0.0798     0.0165    0.2273    0.1103

sigma^2 estimated as 0.01223:  log likelihood=88.33
AIC=-168.65   AICc=-168.09   BIC=-155.02

Đây là bộ lọc, kéo dài thêm 5 tiết mà dữ liệu

tf<-filter(1*(seq(1:(length(airmiles)+5))==69),filter=0.5521330,method='recursive',side=1)*(-0.4936508)
forecast.arima<-Arima(log(airmiles),order=c(0,0,1),xreg=tf[1:(length(tf)-5)])
forecast.arima

Đầu ra:

Coefficients:
         ma1  intercept  tf[1:(length(tf) - 5)]
      0.5197    17.5173                  1.0000
s.e.  0.0792     0.0159                  0.2183

sigma^2 estimated as 0.01223:  log likelihood=88.33
AIC=-168.65   AICc=-168.28   BIC=-157.74

Sau đó để dự đoán

predict(forecast.arima,n.ahead = 5, newxreg=tf[114:length(tf)])

1
+1, rất thông minh Tôi thấy không có gì sai với cách tiếp cận, se có vẻ tốt, tôi không chắc bạn đang đề cập đến cái gì?
dự báo

1
Ah dự báo! Anh đã rất nhớ em! :) Tôi có nghĩa là SE của MA và đánh chặn giữa hai phù hợp. Phương sai còn lại là giống hệt nhau. Tôi nghĩ rằng phương sai còn lại là tất cả những gì quan trọng đối với lỗi dự đoán của dự báo từ mô hình ARIMA (mặc dù tôi bị gỉ).
B_Miner

Bây giờ tôi hiểu rồi, tôi sẽ ngạc nhiên nếu se không gần, gần thì tốt, sigma ^ 2 được sử dụng cho các khoảng dự đoán, không có sự khác biệt giữa hai mô hình nên các khoảng dự đoán sẽ giống nhau đối với arimax hoặc Arima tôi tin.
dự báo

Cách bạn xác định tf <- filter(...)... Tôi bị lạc. Bạn có bất cứ lời khuyên để hiểu nó? Điều gì sẽ xảy ra nếu tôi có: I911-AR1: 0.55, I911-AR2: 0.66, I911-MA0: 0.49, I911-MA1: 0.39?
Konstantinos

1
Những người vấp ngã trên mạng, để lọc, tôi đã tìm thấy một cái nhìn sâu sắc ở đây: onlinecifts.science.psu.edu/stat510/node/75
Konstantinos

Câu trả lời:


8

Khoảng dự đoán được dựa trên phương sai dư được ước tính bởi tối ưu hóa khả năng tối đa.

Tôi thích forecastchức năng từ forecastgói:

fc <- forecast(forecast.arima,h = 5, xreg=tf[114:length(tf)])

đưa ra cho tôi những dự đoán sau:

  Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jun 2005       17.61393 17.47222 17.75565 17.39720 17.83067
Jul 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Aug 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Sep 2005       17.51725 17.35753 17.67697 17.27299 17.76152
Oct 2005       17.51725 17.35753 17.67697 17.27299 17.76152

cách dự đoán khoảng thời gian hoạt động là theo công thức sau:

yt±zσzσ

Nếu bạn muốn kiểm tra nó,

Giới hạn trên:

> fc$mean[1]+sqrt(forecast.arima$sigma2)*1.96
[1] 17.83068

Giới hạn dưới:

> fc$mean[1]-sqrt(forecast.arima$sigma2)*1.96
[1] 17.39719

phù hợp với khoảng dự đoán được cung cấp bởi forecasthàm. Để trả lời câu hỏi của bạn, có forecastgói đòn bẩy sẽ hoạt động trong trường hợp này và các khoảng dự đoán sẽ chính xác.

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.