Đâ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:
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
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
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:
- 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ó ..)
- 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ể)
- 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?
- 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?
- 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=672
như được thảo luận trong các giai đoạn dài không? - 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) - 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
Mã
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.