Tôi nghĩ rằng bạn đã hiểu đúng, nhưng khi xây dựng mô hình VAR, tôi thường đảm bảo rằng tôi làm theo các bước sau:
1. Chọn các biến
Đây là phần quan trọng nhất của việc xây dựng mô hình của bạn. Nếu bạn muốn dự báo giá của một tài sản, bạn cần bao gồm các biến có liên quan đến cơ chế hình thành giá. Cách tốt nhất để làm điều này là thông qua một mô hình lý thuyết. Vì bạn không đề cập đến tài sản là gì và các biến khác mà bạn đưa vào mô hình của mình là gì, tôi thực sự không thể nói nhiều về mặt hàng này, nhưng bạn có thể tìm thấy tóm tắt về các mô hình định giá tài sản ở đây .
2. Kiểm tra dữ liệu và điều chỉnh thích hợp
Khi bạn chọn các biến, bạn có thể thực hiện một số điều chỉnh cho dữ liệu sẽ cải thiện việc ước tính và giải thích mô hình. Nó rất hữu ích để sử dụng số liệu thống kê tóm tắt và xem một âm mưu của loạt bài để phát hiện các ngoại lệ, dữ liệu bị thiếu và các hành vi lạ khác. Khi làm việc với dữ liệu giá, mọi người thường lấy các bản ghi tự nhiên, đây là một phép biến đổi ổn định phương sai và cũng có một diễn giải tốt (chênh lệch giá trong các bản ghi trở thành lợi nhuận gộp liên tục). Tôi không chắc chắn nếu bạn đã lấy nhật ký trước khi ước tính mô hình, nhưng đó là một ý tưởng tốt để làm như vậy nếu bạn đang làm việc với giá tài sản.
3. Kiểm tra xem dữ liệu có chứa các thành phần không cố định không
Bây giờ bạn có thể sử dụng các bài kiểm tra gốc đơn vị để kiểm tra xem loạt của bạn có đứng yên không. Nếu bạn chỉ quan tâm đến dự báo, như được lưu ý bởi @JacobH, bạn có thể chạy VAR ở các cấp ngay cả khi chuỗi của bạn không cố định, nhưng sau đó các lỗi tiêu chuẩn của bạn không thể tin cậy được, có nghĩa là bạn không thể suy luận về giá trị của các hệ số. Bạn đã kiểm tra văn phòng phẩm bằng cách sử dụng thử nghiệm ADF, thường được sử dụng trong các ứng dụng này, nhưng lưu ý rằng bạn nên chỉ định nếu bạn muốn chạy thử nghiệm với i) không có hằng số và không có xu hướng; ii) không đổi và không có xu hướng; và iii) một hằng số và một xu hướng. Thông thường các chuỗi giá có xu hướng ngẫu nhiên, do đó, một xu hướng tuyến tính sẽ không chính xác. Trong trường hợp này, bạn có thể chọn đặc điểm kỹ thuật ii. Trong mã của bạn, bạn đã sử dụngndiffs
chức năng của gói dự báo. Tôi không chắc chắn trong số ba lựa chọn thay thế này, hàm này thực hiện để tính số lượng khác biệt (tôi không thể tìm thấy nó trong tài liệu). Để kiểm tra kết quả của bạn, bạn có thể muốn sử dụng ur.df
chức năng trong gói "urca":
adf <- ur.df(x[, "VAR1"], type = "drift", lags = 10, selectlags = "AIC")
Lưu ý rằng lệnh này sẽ chạy thử nghiệm ADF với hằng số và độ trễ được chọn bởi lệnh AIC, với độ trễ tối đa là 10. Nếu bạn gặp vấn đề trong việc diễn giải kết quả, chỉ cần nhìn vào câu hỏi này . Nếu chuỗi là I (1) chỉ cần sử dụng chênh lệch, sẽ bằng với lợi nhuận gộp liên tục. Nếu thử nghiệm chỉ ra rằng chuỗi đó là I (2) và bạn nghi ngờ về việc bạn có thể sử dụng các thử nghiệm khác, ví dụ: thử nghiệm Phillips-Perron (PP.test
hàm trong R). Nếu tất cả các thử nghiệm xác nhận rằng chuỗi của bạn là I (2) (hãy nhớ sử dụng nhật ký của chuỗi trước khi chạy thử nghiệm), sau đó lấy điểm khác biệt thứ hai, nhưng lưu ý rằng cách diễn giải kết quả của bạn sẽ thay đổi, vì hiện tại bạn đang làm việc với sự khác biệt của lợi nhuận gộp liên tục. Giá của tài sản thường là tôi (1) vì chúng gần với bước đi ngẫu nhiên, đó là tiếng ồn trắng khi áp dụng chênh lệch đầu tiên.
4. Chọn thứ tự của mô hình
Điều này có thể được thực hiện với các tiêu chí thường được sử dụng như Akaike, Schwarz (BIC) và Hannan-Quinn. Bạn đã thực hiện điều đó với VARselect
chức năng và điều đó đúng, nhưng hãy nhớ tiêu chí mà bạn đã sử dụng để đưa ra quyết định là gì. Thông thường các tiêu chí khác nhau cho thấy các đơn đặt hàng khác nhau cho VAR.
5. Kiểm tra nếu có mối quan hệ hợp nhất
Nếu tất cả các chuỗi của bạn là I (1) hoặc I (2), trước khi chạy mô hình VAR, bạn nên kiểm tra xem có mối quan hệ hợp nhất nào giữa các chuỗi hay không, đặc biệt nếu bạn muốn phân tích phản hồi xung với dư. Bạn có thể làm điều đó bằng cách sử dụng thử nghiệm Johansenn hoặc Engle-Granger (chỉ dành cho các mô hình bivariate). Trong R, bạn có thể chạy thử nghiệm Johansen vớica.jo
chức năng của gói "urca". Lưu ý rằng thử nghiệm này cũng có thông số kỹ thuật khác nhau. Đối với chuỗi giá, tôi thường sử dụng mã sau ( p
độ dài độ trễ của mục 4, được thực hiện với chuỗi theo cấp độ):
jo_eigen <- ca.jo(x, type = "eigen", ecdet = "const", K = p)
jo_trace <- ca.jo(x, type = "trace", ecdet = "const", K = p)
6. Ước tính mô hình
Nếu chuỗi của bạn không được hợp nhất, bạn có thể dễ dàng ước tính mô hình bằng VAR
lệnh, như được thực hiện trong mã của bạn. Trong trường hợp chuỗi được hợp nhất, bạn cần xem xét mối quan hệ lâu dài bằng cách ước tính mô hình Sửa lỗi Vector với mã sau đây ( k
theo thứ tự hợp nhất):
vecm <- cajorls(joeigen, r = k)
7. Chạy thử nghiệm chẩn đoán
Để kiểm tra xem mô hình của bạn có được chỉ định rõ hay không, bạn có thể chạy thử nghiệm tương quan nối tiếp trên các phần dư. Trong mã của bạn, bạn đã sử dụng một bài kiểm tra Portmanteau với serial.test
chức năng. Tôi chưa bao giờ sử dụng chức năng này nhưng tôi nghĩ nó ổn. Ngoài ra còn có một phiên bản đa biến của thử nghiệm Ljung-Box được triển khai trong gói MTS mà bạn có thể chạy với chức năng mq
.
8. Đưa ra dự đoán
Sau khi bạn chắc chắn rằng mô hình của bạn được chỉ định rõ, bạn có thể sử dụng predict
chức năng như bạn đã làm trong mã của mình. Bạn thậm chí có thể vẽ các hàm phản hồi xung để kiểm tra cách các biến phản ứng với một cú sốc cụ thể bằng cách sử dụng irf
hàm.
9. Đánh giá dự đoán
Khi bạn đưa ra dự đoán của mình, bạn phải đánh giá chúng và so sánh với các mô hình khác. Một số phương pháp để đánh giá độ chính xác của dự báo có thể được tìm thấy ở đây , nhưng để làm được điều đó, điều quan trọng là bạn phải chia chuỗi của mình trong một khóa đào tạo và tập kiểm tra, như được giải thích trong liên kết.