Vấn đề xác định thứ tự ARIMA


16

Đây là một bài viết dài vì vậy tôi hy vọng bạn có thể chịu đựng được với tôi, và xin vui lòng sửa cho tôi biết tôi sai ở đâu.

Mục tiêu của tôi là đưa ra dự báo hàng ngày dựa trên 3 hoặc 4 tuần dữ liệu lịch sử.

Dữ liệu là dữ liệu 15 phút của tải cục bộ của một trong các dòng máy biến áp. Tôi gặp khó khăn khi tìm thứ tự mô hình của quy trình ARIMA theo mùa. Xem xét chuỗi thời gian nhu cầu điện:

Chuỗi thời gian gốc http://i.share.pho.to/80d86574_l.png

Khi 3 tuần đầu tiên được thực hiện dưới dạng tập hợp con và phân biệt các ô ACF / PACF của follwing được tính toán:

Tập hợp con http://i.share.pho.to/5c165aef_l.png

Sự khác biệt đầu tiên http://i.share.pho.to/b7300cc2_l.png

Sự khác biệt theo mùa và đầu tiên http://i.share.pho.to/570c5397_l.png

Điều này có vẻ như bộ phim là văn phòng phẩm. Nhưng tính thời vụ cũng có thể là hàng tuần (xem Tuần chênh lệch theo mùa và chênh lệch thứ tự thứ hai [tại đây] http://share.pho.to/3owoq , bạn nghĩ gì?)

Vì vậy, hãy kết luận rằng mô hình có hình dạng:

MộtRTôiMMột(p,1,q)(P,1,Q)96

Trong hình cuối cùng, sự tăng đột biến ở độ trễ 96 cho thấy thành phần MA (1) theo mùa (có thể AR (1) có thể cũng như có sự tăng đột biến trong PACF aswell). Các đột biến ở độ trễ 1: 4 chỉ ra thành phần MA (4) tương ứng với sự phân rã theo cấp số nhân trong PACF với một chút trí tưởng tượng. Do đó, mô hình ban đầu được chọn thủ công có thể là: với

MộtRTôiMMột(0,1,4)(0,1,1)96

Series: x 
ARIMA(0,1,4)(0,1,1)[96] 

    Coefficients:
    ma1      ma2      ma3      ma4     sma1
    -0.2187  -0.2233  -0.0996  -0.0983  -0.9796
    s.e.   0.0231   0.0234   0.0257   0.0251   0.0804

    sigma^2 estimated as 364612:  log likelihood=-15138.91
    **AIC=30289.82   AICc=30289.87   BIC=30323.18**

Hàm auto.arima tính toán mô hình sau (với từng bước và xấp xỉ trên TRUE, nếu không thì phải mất nhiều thời gian để hội tụ): với

MộtRTôiMMột(1,1,1)(2,0,2)96

Series: x 
ARIMA(1,1,1)(2,0,2)[96] 

    Coefficients:
    ar1      ma1    sar1    sar2     sma1     sma2
    0.7607  -1.0010  0.4834  0.4979  -0.3369  -0.4168
    s.e.  0.0163   0.0001  0.0033  0.0116   0.0216   0.0255

    sigma^2 estimated as 406766:  log likelihood=-15872.02
    **AIC=31744.99   AICc=31745.05   BIC=31784.25**

Có nghĩa là không có sự khác biệt theo mùa được áp dụng. Dưới đây là phần dư của cả hai mô hình. Thống kê Ljung Box đưa ra một giá trị p rất nhỏ, chỉ ra rằng vẫn còn một số hiện tượng tự tương quan (? Sửa tôi nếu tôi sai).

Dự báo

Do đó, để xác định cái nào tốt hơn, thử nghiệm độ chính xác ngoài mẫu là tốt nhất. Vì vậy, đối với cả hai mô hình, một dự báo được thực hiện trước 24 giờ so với nhau. Kết quả là: auto.arima http://i.share.pho.to/5d1dd934_l.png mô hình thủ công http://i.share.pho.to/7ca69c97_l.png

Tự động:

                      ME     RMSE      MAE       MPE      MAPE      MASE        ACF1 Theil's U
Training set   -2.586653 606.3188 439.1367 -1.284165  7.599403 0.4914563 -0.01219792        NA
Test set     -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420  0.70219229  1.617834

Hướng dẫn sử dụng

                       ME     RMSE      MAE        MPE      MAPE      MASE         ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229  7.509774 0.4875621 -0.002034122        NA
Test set     2.878919e+02 919.7398 696.0593  3.4756363 10.317420 0.7789892  0.731013599  1.281764

Câu hỏi

Như bạn có thể nghĩ đây là một phân tích trong ba tuần đầu tiên của bộ dữ liệu. Tôi đang vật lộn trong tâm trí với những câu hỏi sau:

  1. Làm cách nào để tôi chọn mô hình ARIMA tốt nhất (bằng cách thử tất cả các đơn đặt hàng khác nhau và kiểm tra MASE / MAPE / MSE tốt nhất? Trong đó việc lựa chọn đo lường hiệu suất có thể là một cuộc thảo luận trong chính nó ..)
  2. Nếu tôi tạo một mô hình và dự báo mới cho mỗi dự báo ngày mới (như trong dự báo trực tuyến), tôi có cần tính đến xu hướng hàng năm không và làm thế nào? (như trong một tập hợp nhỏ như vậy, tôi đoán rằng xu hướng là không đáng kể)
  3. Bạn có mong đợi rằng thứ tự mô hình giữ nguyên trong toàn bộ tập dữ liệu, tức là khi lấy một tập hợp con khác sẽ cho tôi cùng một mô hình không?
  4. Một cách tốt, trong phương pháp này để đối phó với ngày lễ là gì? Hay là ARIMAX với các hình nộm kỳ nghỉ bên ngoài cần thiết cho việc này?
  5. Tôi có cần sử dụng phương pháp tiếp cận chuỗi Fourier để thử các mô hình seasonality=672như được thảo luận trong các giai đoạn dài không?
  6. Nếu vậy thì nó sẽ như thế fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(trong đó hàm phạm vi chức năng được xác định trong bài đăng trên blog của Hyndman)
  7. Các thành phần P và Q ban đầu có được bao gồm trong chuỗi fourier không?

Hầu hết các kiến ​​thức lý thuyết thu được từ FPP , công cụ tuyệt vời!

Trước khi tư vấn về việc sử dụng làm mịn theo cấp số nhân hoặc hồi quy tuyến tính (động), điều này cũng đang được thực hiện để so sánh.

Dữ liệu

https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt

data<-read.csv("file", sep=";")
load<-data[,3]

Tôi đã xóa một vài giá trị 0 với tuần trước các giá trị

stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)] 
load[idx] <- load[idx-stepback] 

ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))

Cũng có thể đăng một ví dụ có thể sao chép nhưng điều này sẽ làm cho bài đăng dài hơn, nhưng có thể nếu cần. Vì vậy, nếu có bất cứ điều gì tôi nên cung cấp xin vui lòng cho tôi biết.

Câu trả lời:


8
  1. Làm cách nào để tôi chọn mô hình ARIMA tốt nhất (bằng cách thử tất cả các đơn đặt hàng khác nhau và kiểm tra MASE / MAPE / MSE tốt nhất? Trong đó việc lựa chọn đo lường hiệu suất có thể là một cuộc thảo luận trong chính nó ..)

Các ước tính rủi ro ngoài mẫu là tiêu chuẩn vàng để đánh giá hiệu suất và do đó để lựa chọn mô hình. Lý tưởng nhất là bạn xác thực chéo để ước tính rủi ro của bạn được tính trung bình trên nhiều dữ liệu hơn. FPP giải thích một phương thức xác thực chéo cho chuỗi thời gian. Xem Tashman để xem xét các phương pháp khác:

Tashman, LJ (2000). Các thử nghiệm ngoài mẫu về độ chính xác dự báo: phân tích và xem xét. Tạp chí dự báo quốc tế, 16 (4), 437 trừ450. doi: 10.1016 / S0169-2070 (00) 00065-0

Tất nhiên, xác thực chéo rất tốn thời gian và vì vậy mọi người thường sử dụng các tiêu chí trong mẫu để chọn một mô hình, chẳng hạn như AIC, đó là cách auto.arima chọn mô hình tốt nhất. Cách tiếp cận này là hoàn toàn hợp lệ, nếu có lẽ không tối ưu.

  1. Nếu tôi tạo một mô hình và dự báo mới cho mỗi dự báo ngày mới (như trong dự báo trực tuyến), tôi có cần tính đến xu hướng hàng năm không và làm thế nào? (như trong một tập hợp nhỏ như vậy, tôi đoán rằng xu hướng là không đáng kể)

Tôi không chắc ý của bạn là gì theo xu hướng hàng năm. Giả sử bạn có nghĩa là tính thời vụ hàng năm, thực sự không có cách nào để đưa nó vào tài khoản với dữ liệu ít hơn một năm.

  1. Bạn có mong đợi rằng thứ tự mô hình giữ nguyên trong toàn bộ tập dữ liệu, tức là khi lấy một tập hợp con khác sẽ cho tôi cùng một mô hình không?

Tôi hy vọng rằng việc chặn một số thay đổi về cách tạo dữ liệu, mô hình cơ bản chính xác nhất sẽ giống nhau trong toàn bộ dữ liệu. Tuy nhiên, điều đó không giống như nói rằng mô hình được chọn bởi bất kỳ quy trình nào (chẳng hạn như quy trình được sử dụng bởi auto.arima) sẽ giống nhau nếu quy trình đó được áp dụng cho các tập hợp con khác nhau của dữ liệu. Điều này là do tính biến thiên do lấy mẫu sẽ dẫn đến sự thay đổi trong kết quả của quy trình lựa chọn mô hình.

  1. Một cách tốt, trong phương pháp này để đối phó với ngày lễ là gì? Hay là ARIMAX với các hình nộm kỳ nghỉ bên ngoài cần thiết cho việc này?

Người giả kỳ nghỉ bên ngoài là cách tiếp cận tốt nhất.

  1. Tôi có cần sử dụng phương pháp tiếp cận chuỗi Fourier để thử các mô hình seasonality=672như được thảo luận trong các giai đoạn dài không?

Bạn cần phải làm gì đó, vì như đã đề cập trong bài viết đó, hàm arima trong R không hỗ trợ các khoảng thời gian lớn hơn 350. Tôi đã thành công hợp lý với phương pháp Fourier. Các tùy chọn khác bao gồm dự báo sau khi phân tách theo mùa (cũng được đề cập trong FPP) và các mô hình làm mịn theo cấp số nhân như dơi và tbats.

  1. Nếu vậy thì nó sẽ như thế fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(trong đó hàm phạm vi chức năng được xác định trong bài đăng trên blog của Hyndman)

Điều đó có vẻ đúng. Bạn nên thử nghiệm với số lượng điều khoản khác nhau. Lưu ý rằng hiện tại có một fourierchức năng trong gói dự báo với thông số kỹ thuật hơi khác mà tôi giả sử thay thế chức năng trên blog của Hyndman. Xem tập tin trợ giúp cho cú pháp.

  1. Các thành phần P và Q ban đầu có được bao gồm trong chuỗi fourier không?

Tôi không chắc chắn những gì bạn đang hỏi ở đây. P và Q thường đề cập đến mức độ của các thành phần theo mùa AR và MA. Sử dụng phương pháp tiếp cận phạm vi, không có các thành phần theo mùa và thay vào đó là các đồng biến cho các thuật ngữ phạm lỗi liên quan đến mùa. Đó không còn là ARIMA theo mùa, đó là ARIMAX nơi các hiệp phương sai gần đúng theo mùa.

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.