Lắp mô hình ARIMAX với chính quy hóa hoặc xử phạt (ví dụ: với lasso, lưới đàn hồi hoặc hồi quy sườn)


29

Tôi sử dụng hàm auto.arima () trong gói dự báo để phù hợp với các mô hình ARMAX với nhiều biến số khác nhau. Tuy nhiên, tôi thường có một số lượng lớn các biến để chọn và thường kết thúc với một mô hình cuối cùng hoạt động với một tập hợp con của chúng. Tôi không thích các kỹ thuật đặc biệt để lựa chọn biến vì tôi là con người và chịu sự thiên vị, nhưng chuỗi thời gian xác thực chéo rất khó , vì vậy tôi không tìm thấy cách nào tốt để tự động thử các tập hợp con khác nhau của các biến có sẵn của mình và đang bị mắc kẹt điều chỉnh mô hình của tôi bằng cách sử dụng phán đoán tốt nhất của riêng tôi.

Khi tôi phù hợp với các mô hình glm, tôi có thể sử dụng lưới đàn hồi hoặc lasso để chuẩn hóa và lựa chọn biến, thông qua gói glmnet . Có một bộ công cụ hiện có trong R để sử dụng mạng đàn hồi trên các mô hình ARMAX không, hoặc tôi sẽ phải tự lăn? Đây thậm chí là một ý tưởng tốt?

chỉnh sửa: Sẽ hợp lý khi tính toán thủ công các thuật ngữ AR và MA (giả sử lên đến AR5 và MA5) và sử dụng glmnet để phù hợp với mô hình?

chỉnh sửa 2: Có vẻ như gói FitAR giúp tôi có một phần, nhưng không phải tất cả, theo cách đó.


2
Tôi tò mò muốn biết liệu bạn đã từng làm gì đó về vấn đề này chưa. Tôi đã đánh dấu nó cho bất kỳ bản cập nhật nào - vì vậy chỉ cần chạm vào cơ sở ở đây.
Vishal Belsare

Không bao giờ mang để giải quyết điều này. Tôi đã nghĩ về việc viết bài thực hiện của riêng mình nhưng không thực hiện được. Có lẽ bạn có thể tự tính toán các thuật ngữ AR và MA và sau đó áp dụng glmnet cho dữ liệu đó?
Zach

1
Xin chào Zach, tôi tự hỏi liệu bạn đã thực hiện điều này thêm nữa hay liệu nó vẫn còn đậu. Tôi có một nhu cầu về một thuật toán như vậy để dự báo một số lượng lớn các chuỗi.
Matt Weller

3
@MattWeller Tôi đã nói chuyện một chút với Rob Hyndman, tác giả của forecastgói tuyệt vời cho R. Anh ấy nói rằng sẽ rất khó khăn với ARIMA đầy đủ, bởi vì bạn phải bọc lasso xung quanh trình tối ưu hóa ARIMA phi tuyến. Một giải pháp một phần sẽ phù hợp với một mô hình AR sử dụng glmnetvới các biến bị trễ. Theo tôi biết, chưa có ai thực hiện điều này với mô hình ARIMA đầy đủ.
Zach

Câu trả lời:


7

Đây không phải là một giải pháp mà là một số phản ánh về các khả năng và khó khăn mà tôi biết.

Bất cứ khi nào chúng ta có thể xác định một mô hình chuỗi thời gian như với x t tính toán từ đồng biến và quan sát thời gian tụt, nó cũng có thể để tính toán bình phương nhỏ nhất ròng đàn hồi bị phạt công cụ ước tính β sử dụng glmnet trong R. Nó yêu cầu bạn viết mã để tính x t để tạo thành ma trận mô hình sẽ được chỉ định trong glmnet. Điều này hoạt động cho các mô hình AR nhưng không trực tiếp cho các mô hình ARMA. Ngoài ra, các quy trình xác thực chéo của glmnet là không hợp lý đối với dữ liệu chuỗi thời gian.

Yt+1=xtβ+ϵt+1
xtβxt

Đối với mô hình tổng quát hơn một thực hiện một thuật toán để tính phi tuyến tính bình phương nhỏ nhất đàn hồi ròng phạt ước lượng của β là cần thiết. Theo hiểu biết tốt nhất của tôi, không có triển khai như vậy trong R. Tôi hiện đang viết một triển khai để giải quyết trường hợp Y t + 1 = x t g ( β ) + ϵ t + 1

Yt+1=f(xt,β)+ϵt+1
β
Yt+1=xtg(β)+ϵt+1
điểm là rằng nó là tối quan trọng để lựa chọn mô hình mà các penalization Lasso là và không g ( β ) . Nếu tôi nhớ lại chính xác tham số ARIMA, nó cũng có dạng này - nhưng tôi không thể cung cấp bất kỳ mã nào vào lúc này. Đó là (sẽ) dựa trên phương pháp giảm độ dốc tọa độ A để giảm thiểu không thể tách rời .βg(β)

Một vấn đề khác là việc lựa chọn số tiền phạt (các tham số điều chỉnh). Nó thường sẽ yêu cầu một hình thức xác thực chéo cho chuỗi thời gian, nhưng tôi hy vọng có thể tìm ra một số phương pháp ít tính toán hơn cho các mô hình cụ thể.


Gói caret cho R có triển khai tốt việc xác thực chéo chuỗi thời gian có thể được sử dụng để chọn các tham số cho glmnet. Cảm ơn câu trả lời.
Zach

2

Tôi đã được một khách hàng thách thức để giải quyết vấn đề này theo cách tự động như chìa khóa trao tay. Tôi đã thực hiện một cách tiếp cận cho từng cặp (ví dụ y và một ứng cử viên x), prewhiten, tính toán các mối tương quan chéo của chuỗi được làm trắng trước, xác định PDL (HOẶC MÔ HÌNH LAG PHÂN PHỐI TỰ ĐỘNG QUẢNG CÁO bao gồm cả Phát hiện can thiệp mang lại ước tính mạnh mẽ, phát triển một "biện pháp" cho cấu trúc này. Sau khi tiến hành điều này cho TẤT CẢ các hồi quy ứng cử viên, hãy xếp hạng chúng theo "thước đo" và sau đó chọn các biến hồi quy K hàng đầu dựa trên "thước đo". Điều này đôi khi được gọi là Lọc tuyến tính. Chúng tôi kết hợp thành công heuristic này vào gói chuỗi thời gian có sẵn trên thị trường. Bạn sẽ có thể "ROLL RIÊNG CỦA BẠN"


Tôi đặc biệt muốn kết hợp lasso hoặc lưới đàn hồi vào mô hình ARIMA.
Zach

3
Tôi không thực sự tìm kiếm một bộ lọc tuyến tính (mặc dù điều này rất hữu ích). Tôi đặc biệt muốn có một cách để kết hợp lasso, hồi quy sườn hoặc lưới đàn hồi vào mô hình ARIMAX.
Zach

2
Hiện tại tôi không quan tâm đến sự thay đổi mức độ, xu hướng thời gian địa phương, sự thay đổi hệ số hoặc phương sai lỗi không liên tục. Tôi đặc biệt quan tâm đến việc áp dụng Lasso, sườn núi hoặc chính quy lưới đàn hồi cho các mô hình ARIMAX.
Zach

2
Nếu bạn có thể kết hợp lasso, sườn núi hoặc chính quy hóa mạng đàn hồi vào phương pháp trên và đăng một số mã ví dụ bằng ngôn ngữ lập trình nguồn mở, tôi rất vui lòng trao thưởng cho bạn tiền thưởng.
Zach

1
@frank bạn đang cố gắng thực hiện nhận dạng thông qua ước tính (bước xuống) và điều đó không hiệu quả vì có rất nhiều sự kết hợp giữa các xung có thể, dịch chuyển cấp độ, xung theo mùa và xu hướng thời gian.,. Nếu các cấu trúc này là cần thiết nhưng bị bỏ qua, ước tính tham số là sai lệch và các thử nghiệm tham số có ý nghĩa đi ra ngoài cửa sổ.
IrishStat
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.