Jack-dao với các mô hình chuỗi thời gian


8

Giới thiệu

Tôi đang hướng tới dự báo tốc độ tăng trưởng hàng năm cho một số chỉ số kinh tế vĩ mô (biểu thị một bằng ). Một trong những nhiệm vụ là kiểm tra hiệu suất dự báo của các mô hình chuỗi thời gian đối thủ có và không có các biến ngoại sinh ( , ma trận ). Danh sách các mô hình đối thủ bao gồm:X t T × kYtXtT×k

  1. Mô hình AR (I) MA (tốc độ tăng trưởng hàng năm dường như không có "đơn vị Roo", mặc dù mô hình này được giả định hoặc được thử nghiệm)
    A(L)Yt=μ+B(L)εt
  2. mô hình hồi quy tuyến tính với lỗi ARMA
    Yt=Xtβ+ηt,  A(L)ηt=B(L)εt
  3. mô hình biến phụ thuộc bị trễ (mô hình tự phát với các biến ngoại sinh)
    A(L)Yt=Xtβ+εt
  4. mô hình hồi quy tuyến tính
    Yt=Xtβ+εt

Trong đó được coi là một tiếng ồn trắng mạnh, quá trình iid phương sai không đổi có nghĩa là không; và là tự phát (của đơn hàng p ) và trung bình di chuyển (của đơn hàng q ) với L - toán tử back-shift (lag). A ( L ) B (εtA(L)p q LB(L)pqL

Lưu ý rằng mục tiêu chính và mục tiêu duy nhất là dự báo hiệu suất, do đó, bất kỳ thuộc tính "tốt" nào của ước tính tham số đều là mối quan tâm thứ yếu. Tất cả những gì tôi cần là kiểm tra các điều kiện tiên quyết nhất, mạnh mẽ để bắt đầu dự báo. Quyết định sẽ được đưa ra với một trong các accuracy()lựa chọn, nhưng trước tiên tôi cần lấy tài liệu để so sánh.

Mô hình 1. và 2. được ước tính bằng phương pháp ước tính auto.arima()mặc định "CSS-ML". Mô hình 3. và 4. được ước tính bằng bình phương nhỏ nhất ( lm()). T là khoảng 40 quý.

Phương pháp tiếp cận đã cố gắng cho đến nay

Để làm cho phần dư jack-knifed, cách tiếp cận đầu tiên được biểu thị bằng "cán" đã được thực hiện. Bắt đầu từ mẫu phụ lớn của dữ liệu chuỗi thời gian, các tham số được ước tính và dự báo trước được thực hiện bởi hàm (EDIT: đó là gợi ý tương tự như trong phần đầu câu trả lời của Rob cho câu hỏi thứ hai). Sau đó, một điểm được thêm vào và các bước dự đoán \ được lặp lại.hpredict()

Một điểm yếu của các thí nghiệm như vậy là số lượng dấu thời gian (cỡ mẫu) được sử dụng để ước tính các tham số là khác nhau. Mặc dù tôi muốn kiểm tra độ bền đối với các điều kiện bắt đầu, giữ nguyên kích thước mẫu để ước tính.

Ghi nhớ điều này, tôi đã cố gắng đặt một số giá trị tiếp theo (EDIT: cho khoảng ) trong bị thiếu các giá trị (NA). Trong các mô hình 2.-4. điều này cũng có nghĩa là bỏ các hàng tiếp theo tương ứng trong ma trận dữ liệu . Dự đoán cho 3. và 4. rất đơn giản (tương tự với các hàng dữ liệu bị bỏ qua hoạt động tốt). Tất cả các mối quan tâm của tôi là về các mô hình 1. và 2.Yk+p+q<t0<t1<Th+1X t X t X tYtXtpredict()Xt

Chỉ với phần AR ( ), các dự đoán được thực hiện tuần tự . Nhưng với sự hiện diện của MA ( ), người ta không thể (?) Sử dụng các tham số ước tính trực tiếp. Từ Brockwell và Davis "Giới thiệu về chuỗi thời gian và dự báo" Chương 3.3, theo đó, người ta cần một thuật toán đổi mới để ước tính đệ quy từ hệ thống phương trình cụ thể bao gồm các tham số trung bình tự động và di chuyển ước tính. EDIT: các tham số này được sử dụng để đưa ra dự đoán ARMA, không phải các tham số ước tính ban đầu . Tuy nhiên, nó được nhận xét trong cùng một chương rằngY t + 1 | t = A ( L ) Y t q θ n , j θ n , j θ jpYt+1|t= =Một^(L)Ytqθn,jθn,jθj θ jθn,jtiếp cận tiệm cận nếu quá trình không thể đảo ngược. Không rõ ràng rằng 30-40 điểm là đủ để kết quả tiệm cận được sử dụng ngay cả khi không thể đảo ngược.θj

Lưu ý: Tôi không muốn hạn chế về 0, vì tôi không làm như vậy trong dự báo ngoài mẫu thực sự. EDIT: cũng không phải là nó không thiếu vấn đề tranh chấp giá trị, nhưng dự báo thử nghiệm, rằng quỹ đạo không được phép kết nối hai mẫu phụ bằng cách này để loại bỏ các giá trị bị thiếu.q

Câu hỏi

  1. auto.arima()thực hiện chính xác với sự hiện diện của các giá trị bị thiếu bên trong mẫu không? [Đã được trả lời bởi Rob.]
  2. (Phần thực sự quan trọng của bài đăng này) Làm thế nào để dự báo chính xác (KHÔNG bắt buộc) những điểm bị bỏ lỡ này từ mô hình ARMA khi cả và ? (Tôi hy vọng có những cách đã được thực hiện bằng ngôn ngữ R, nhưng tôi chỉ đơn giản là thiếu một cái gì đó.)q > 0p>0q>0

EDIT: vì các tham số cho các phần ARMA được ước tính chính xác, tôi có thể sắp xếp lại một cách hợp pháp đối tượng arima để bao gồm các tham số ước tính và dữ liệu chỉ cho mẫu phụ đầu tiên và sau đó sử dụng chức năng dự đoán không?

EDIT2: Tôi đã cố gắng sửa đổi modcấu trúc ước tính - dự báo kết quả predict.Arimalà giống hệt nhau (chênh lệch độ chính xác kép) thành dự báo nơi tôi sử dụng các hệ số MA và AR ước tính dự đoán trực tiếp là , không có . Điều này đã được mong đợi vì đại diện không gian trạng thái được cung cấp với cùng ước tính , không phải . Vì vậy, câu hỏi duy nhất còn lại là sự khác biệt giữa và có ảnh hưởng đến dự báo điểm không? Tôi hy vọng câu trả lời là tiêu cực.Một ( L ) ( Y t - X t β ) + X t β + B ( L ) ε t θ j θ n , j θ j θ n , jYt+1|tMột^(L)(Yt-Xtβ^)+Xtβ^+B^(L)ε^tKalmanForecast()θjθn,jθjθn,j


Trong itsmrthư viện triển khai dự báo phần ARMA của quy trình cho các mô hình 1. và 2. yêu cầu phải có nghĩa là 0 (vì được coi là không có nghĩa). Tuy nhiên, kết quả đầu ra từ gợi ý rằng phần dư không có nghĩa là không, nghĩa là không có nghĩa là không. Tôi có cần phải tăng thời hạn đánh chặn trong đối tượng ước tính trước khi đưa ra dự báo về dao không? Tôi có phải làm tương tự cho các dự đoán thông thường không? ε t Y t - X t βηtεtarimaYt-Xtβ^ArimaArima
Dmitrij Celov

PS các ước tính gần như giống hệt nhau (theo nghĩa sai lệch độ chính xác kép), nếu tôi đặt trong hoặc chặn tăng cường để đảm bảo rằng phần dư có nghĩa là không. μ= =0itsmrArima
Dmitrij Celov

Câu trả lời:


4

Tôi không hiểu tại sao bạn nghĩ rằng là một vấn đề để dự đoán. Thật dễ dàng để dự báo bằng cách sử dụng mô hình ARIMA với các thuật ngữ MA và bạn không cần sử dụng thuật toán đổi mới của Brockwell và Davis. Thuật toán đó rất hữu ích cho việc ước tính ; đặc biệt, trong việc bắt đầu các giá trị khi tối ưu hóa khả năng.q>0

Để trả lời các câu hỏi cụ thể của bạn:

  1. auto.arima()các cuộc gọi arima()sử dụng biểu diễn không gian trạng thái để tính toán khả năng. Các giá trị thiếu được xử lý tự nhiên theo định dạng không gian trạng thái. Vì vậy, vâng, họ được xử lý chính xác.

  2. Thiếu giá trị lịch sử không được ước tính bởi arima(). Nếu bạn muốn dự báo chúng (nghĩa là chỉ sử dụng dữ liệu trong quá khứ), chỉ cần điều chỉnh một mô hình cho đến khi bắt đầu chuỗi bị thiếu và sau đó dự báo từ đó. Nếu bạn muốn ước tính chúng (sử dụng dữ liệu trước và sau), bạn sẽ cần sử dụng Kalman mượt mà hơn dựa trên mô hình không gian trạng thái tương đương. Một cách khác để đưa ra kết quả gần như tương tự là trung bình các dự báo sử dụng dữ liệu cho đến dữ liệu không bị thiếu cuối cùng với các bản phát lại sử dụng dữ liệu cho đến dữ liệu không bị thiếu đầu tiên sau chuỗi bị thiếu.

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.