Cách nhận (các) ước tính khoảng tin cậy đa biến / vùng mật độ cao nhất (HDR) sau MCMC


8

Tôi đang ước tính 15 tham số của mô hình của mình bằng cách sử dụng phương pháp Bayes và phương pháp Markov Chain Monte Carlo (MCMC). Do đó, dữ liệu của tôi sau khi chạy chuỗi MCMC gồm 100000 mẫu là bảng giá trị tham số 100000 × 15.

Tôi muốn tìm Khu vực mật độ cao nhất 15 chiều của phân phối sau của tôi.

Vấn đề của tôi: Phân cụm các mẫu để gán chúng cho HDR (ví dụ sử dụng phân cụm dựa trên mật độ bên dưới) cần một ma trận khoảng cách của tất cả các mẫu. Đối với 100000 mẫu, ma trận này sẽ mất 37 GiB RAM, mà tôi không có, không nói về thời gian tính toán. Làm cách nào tôi có thể tìm thấy HDR của mình bằng cách sử dụng lượng tài nguyên tính toán hợp lý? Ai đó phải có vấn đề này trước đây?!

Đã chỉnh sửa để thêm: Theo câu hỏi SO này và trang Wikipedia DBSCAN, DBSCAN có thể được đưa xuống độ phức tạp thời gian và độ phức tạp không gian bằng cách sử dụng chỉ số không gian và tránh ma trận khoảng cách. Vẫn đang tìm kiếm một triển khai hoặc mô tả về ...O(nlogn)O(n)


Nhiều vùng mật độ cao nhất sử dụng phân cụm dựa trên mật độ (DBSCAN)

Vùng mật độ cao nhất của AX% là vùng phân phối bao gồm X% khối lượng xác suất. Vì các mẫu được vẽ bởi phương thức MCMC xuất hiện với tần suất (không có triệu chứng) tỷ lệ thuận với phân phối sau tìm kiếm, X% HDR của tôi cũng bao gồm X% các mẫu của tôi.

Tôi đã lên kế hoạch sử dụng thuật toán phân cụm dựa trên mật độ DBSCAN để phân cụm các mẫu của mình vì mật độ của các mẫu có liên quan trực tiếp đến chiều cao cực đại của hậu thế của tôi.

Một cách tương tự theo phương pháp Hyndman (1996) ( giấy , SO câu hỏi ), tôi lên kế hoạch để tăng khoảng cách tối đa một mẫu duy nhất có thể có từ một cụm để được coi là một phần của nó lặp đi lặp lại cho đến khi X% mẫu của tôi là một phần của một số cụm:

DBSCAN áp dụng cho các mẫu MCMC

Sau bước đó, tôi sẽ tính toán phạm vi của từng cụm theo từng chiều như một cách để trình bày các vùng Mật độ cao nhất của mình.

Trong ví dụ này, bạn sẽ có thể thấy rằng 80% HDR bao quanh hai vùng riêng biệt trong khi 50% HDR chỉ chứa một cụm. Tôi có thể hình dung điều này giống như hiển thị bên dưới, vì cốt truyện ở trên không áp dụng cho hơn 2 chiều:

Phạm vi HDR trực quan hóa


1
Khi bạn chạy MCMC, bạn quan sát giá trị của mục tiêu ở mỗi lần lặp (lên đến cùng hằng số chuẩn hóa), do đó bạn có thể xác định mô phỏng mật độ cao theo cách chính xác hơn nhiều so với tần số. Bạn cũng có thể xác định các vùng HPD bằng cách chạy thuật toán phân cụm tiêu chuẩn trên các mô phỏng có giá trị mật độ sau cao nhất.
Tây An

1
Cảm ơn lời đề nghị của bạn, @ Xi'an. Nhưng bạn có thể chỉ định những gì bạn nghĩ là một "thuật toán phân cụm tiêu chuẩn" không? Bạn có thể đề xuất thuật toán nào khác ngoài phân cụm liên kết DBSCAN (hoặc {đơn | hoàn thành}, đó là ý tưởng tương tự) nếu khái niệm cụm của tôi là "điểm có mật độ cao"? Hơn nữa, hầu hết các mẫu đều nằm trong khu vực có mật độ cao nhất, do đó, nếu tôi muốn tính toán, giả sử, 90% HDI, tôi chỉ có thể mong đợi loại trừ khoảng 10% số mẫu của mình.
akraf

Samworth & Wand (2010, Biên niên sử Thống kê ) có thể đưa ra một cách tiếp cận khác.
Stephan Kolassa

Câu trả lời:


1

Tôi đã tìm thấy một Matlab Wrapper cho ANN . ANN là một thư viện cho các tìm kiếm hàng xóm gần nhất ( trang chủ ). Bên cạnh các tham số thông thường của truy vấn khu vực chỉ mục không gian, nó sử dụng tham số lỗi bổ sung epsmang lại "tính gần đúng" của tìm kiếm: Một hàng xóm gần nhất được trả về sẽ 1+epscách xa điểm truy vấn nhiều nhất so với điểm gần nhất (không gần đúng) hàng xóm. Tìm kiếm cụm từ "lỗi bị ràng buộc" trong Hướng dẫn lập trình để tìm thông tin về eps.

Điều này cho phép tôi đưa một tìm kiếm hàng xóm gần nhất nhanh chóng vào triển khai DBSCAN của mình, giúp tăng tốc quá trình được nêu trong câu hỏi của tôi đến một khoảng thời gian khả thi. Tôi sẽ cung cấp một liên kết sau khi thực hiện xong.

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.