Tôi đang điều chỉnh mô hình ARIMA trên chuỗi thời gian hàng ngày. Dữ liệu được thu thập hàng ngày từ 02-01-2010 đến 30-07-2011 và về doanh số bán báo. Vì có thể tìm thấy mô hình bán hàng hàng tuần (số lượng bản sao trung bình hàng ngày được bán thường giống nhau từ Thứ Hai đến Thứ Sáu, sau đó tăng vào Thứ Bảy và Chủ Nhật), tôi đang cố gắng nắm bắt "tính thời vụ" này. Đưa ra "dữ liệu" dữ liệu bán hàng, tôi tạo chuỗi thời gian như sau:
salests<-ts(data,start=c(2010,1),frequency=365)
và sau đó tôi sử dụng hàm auto.arima (.) để chọn mô hình ARIMA tốt nhất thông qua tiêu chí AIC. Kết quả luôn là một mô hình ARIMA không theo mùa, nhưng nếu tôi thử một số mô hình SARIMAs với cú pháp sau đây làm ví dụ:
sarima1<-arima(salests, order = c(2,1,2), seasonal = list(order = c(1, 0, 1), period = 7))
Tôi có thể có được kết quả tốt hơn. Có điều gì sai trong đặc tả lệnh ts / arima không? Mẫu hàng tuần rất mạnh nên tôi không mong đợi quá nhiều khó khăn trong việc nắm bắt nó. Bất kỳ trợ giúp sẽ rất hữu ích. Cảm ơn bạn, Giulia Deppieri
Cập nhật:
Tôi đã thay đổi một số đối số. Chính xác hơn, quy trình chọn ARIMA (4,1,3) là mô hình tốt nhất khi tôi đặt D=7
, nhưng AIC và các chỉ số phù hợp khác cũng như các chỉ số và dự báo phù hợp) không cải thiện chút nào. Tôi đoán có một số sai lầm do nhầm lẫn giữa tính thời vụ và tính định kỳ ..?!
Cuộc gọi Auto.arima được sử dụng và đầu ra thu được:
modArima<-auto.arima(salests,D=7,max.P = 5, max.Q = 5)
ARIMA(2,1,2) with drift : 1e+20
ARIMA(0,1,0) with drift : 5265.543
ARIMA(1,1,0) with drift : 5182.772
ARIMA(0,1,1) with drift : 1e+20
ARIMA(2,1,0) with drift : 5137.279
ARIMA(2,1,1) with drift : 1e+20
ARIMA(3,1,1) with drift : 1e+20
ARIMA(2,1,0) : 5135.382
ARIMA(1,1,0) : 5180.817
ARIMA(3,1,0) : 5117.714
ARIMA(3,1,1) : 1e+20
ARIMA(4,1,1) : 5045.236
ARIMA(4,1,1) with drift : 5040.53
ARIMA(5,1,1) with drift : 1e+20
ARIMA(4,1,0) with drift : 5112.614
ARIMA(4,1,2) with drift : 4953.417
ARIMA(5,1,3) with drift : 1e+20
ARIMA(4,1,2) : 4960.516
ARIMA(3,1,2) with drift : 1e+20
ARIMA(5,1,2) with drift : 1e+20
ARIMA(4,1,3) with drift : 4868.669
ARIMA(5,1,4) with drift : 1e+20
ARIMA(4,1,3) : 4870.92
ARIMA(3,1,3) with drift : 1e+20
ARIMA(4,1,4) with drift : 4874.095
Best model: ARIMA(4,1,3) with drift
Vì vậy, tôi giả sử hàm arima nên được sử dụng như:
bestOrder <- cbind(modArima$arma[1],modArima$arma[5],modArima$arma[2])
sarima1<-arima(salests, order = c(4,1,3))
không có thông số thành phần theo mùa và thông số kỹ thuật thời gian. Dữ liệu và phân tích thăm dò cho thấy rằng mô hình hàng tuần tương tự có thể được xem xét gần đúng cho mỗi tuần, ngoại trừ duy nhất là tháng 8 năm 2010 (khi tăng doanh số bán hàng nhất quán được đăng ký). Thật không may, tôi không có chuyên môn về mô hình hóa thời gian, thực tế tôi đang thử phương pháp này để tìm giải pháp thay thế cho các mô hình phi tham số khác mà tôi đã cố gắng phù hợp với những dữ liệu có vấn đề này. Tôi cũng có nhiều biến số phụ thuộc nhưng chúng đã cho thấy sức mạnh thấp trong việc giải thích biến trả lời: chắc chắn, phần khó nhất để mô hình hóa là thành phần thời gian. Hơn nữa, việc xây dựng các biến giả để thể hiện các tháng và các ngày trong tuần hóa ra không phải là một giải pháp mạnh mẽ.