DLM rất tuyệt, nhưng chúng không đơn giản như ARIMA hoặc các phương pháp khác. Trong các phương pháp khác, bạn cắm dữ liệu của mình và sau đó điều chỉnh một số tham số của thuật toán, có thể tham khảo các chẩn đoán khác nhau để hướng dẫn cài đặt của bạn.
Với DLM, bạn đang tạo một cỗ máy không gian trạng thái, bao gồm một số ma trận về cơ bản thực hiện một cái gì đó giống như Mô hình Markov ẩn. Một số gói ( sspir
tôi nghĩ, trong số những gói khác) mong rằng bạn hiểu khái niệm và ma trận làm gì. Tôi thực sự khuyên bạn nên bắt đầu với dlm
gói và như @RockScience khuyên bạn, hãy xem qua các họa tiết.
Với dlm
bạn sẽ cơ bản mất vài bước sau:
Những loại thành phần mô tả loạt của tôi? Một xu hướng? Tính thời vụ? Biến ngoại sinh? Bạn sẽ sử dụng dlm
các công cụ như dlmModPoly
để thực hiện các thành phần này, sử dụng +
toán tử để nối chúng lại với nhau thành một mô hình.
Tạo một chương trình con R có mô hình tuy nhiên cần nhiều tham số, tạo các thành phần với các tham số đó, sau đó thêm chúng lại với nhau và trả về mô hình kết quả.
Sử dụng dlmMLE
để thực hiện tìm kiếm / tối ưu hóa để tìm các tham số thích hợp (sử dụng MLE, về cơ bản là tối ưu hóa, với những cạm bẫy có thể xảy ra trong tối ưu hóa). dlmMLE
liên tục gọi chương trình con R của bạn với các tham số ứng cử viên để tạo mô hình, sau đó kiểm tra chúng.
Tạo mô hình cuối cùng của bạn, sử dụng chương trình con R bạn đã tạo cộng với các tham số bạn tìm thấy trong bước 3.
Lọc dữ liệu của bạn với dlmFilter
, sau đó có lẽ trơn tru với dlmSmooth
.
Nếu bạn sử dụng dlmModReg
hoặc làm bất cứ điều gì khiến mô hình có các tham số biến đổi theo thời gian, bạn không thể sử dụng dlmForecast
để dự báo chuỗi của mình. Nếu bạn kết thúc với một mô hình biến thể theo thời gian, bạn sẽ muốn điền dữ liệu đầu vào của mình bằng NA và để dlmFilter
điền vào NA cho bạn (dự báo của một người nghèo), vì dlmForecast
không hoạt động với các thông số thay đổi theo thời gian.
Nếu bạn muốn kiểm tra các thành phần riêng lẻ (giả sử xu hướng, tách biệt với thời vụ), bạn sẽ cần hiểu ma trận và những gì trong mỗi cột, cộng với hiểu một chút về cách dlm
đặt chúng lại với nhau (vấn đề đặt hàng!).
Có một gói khác, tên của nó thoát khỏi tôi, cố gắng tạo một giao diện người dùng có thể sử dụng một vài trong số các gói này (bao gồm cả dlm
mặt sau). Thật không may, tôi chưa bao giờ làm cho nó hoạt động tốt, nhưng đó có thể chỉ là tôi.
Tôi thực sự khuyên bạn nên lấy một cuốn sách về DLM. Tôi có một vài người trong số họ và chơi rất nhiều dlm
để đến nơi tôi đang ở, và tôi không phải là chuyên gia.