Trước tiên chúng tôi giả sử rằng bạn muốn lấy mẫu trong
x + y + z = 1
0 ≤ x ≤ 1
0 ≤ y ≤ 1
0 ≤ z ≤ 1
Điều này không tạo ra sự khác biệt, vì điểm mẫu sẽ vẫn nằm trong khu vực bạn yêu cầu với xác suất cao.
Bây giờ bạn còn lại với việc lấy mẫu một điểm từ một đơn giản . Trong ví dụ 3d, bạn nhận được một đơn giản 2d (tam giác) được nhận ra trong 3d.
Làm thế nào để chọn một điểm thống nhất một cách ngẫu nhiên đã được thảo luận trong bài đăng trên blog này (xem các bình luận).
Đối với vấn đề của bạn, điều đó có nghĩa là bạn lấy số ngẫu nhiên từ khoảng , sau đó bạn thêm và để có danh sách số. Bạn sắp xếp danh sách và sau đó bạn ghi lại sự khác biệt giữa hai yếu tố liên tiếp. Điều này cung cấp cho bạn một danh sách số sẽ tổng hợp lên tới . Hơn nữa, mẫu này là thống nhất. Ý tưởng này có thể được tìm thấy trong Donald B. Rubin, The Bayesian bootstrap Ann. Thống kê. 9, 1981, 130-134.n−1(0,1)01n+1n1
Ví dụ ( ) bạn có ba số ngẫu nhiên sau đó bạn có được chuỗi đã được sắp xếp và điều này mang lại sự khác biệt , và bằng cách xây dựng bốn số này tổng cộng thành 1.n=40.4 0.2 0.1
0 0.1 0.2 0.4 1
0.1 0.1 0.2 0.6
Một cách tiếp cận khác như sau: mẫu đầu tiên từ hypercube (nghĩa là bạn quên đi x+y+z=1
) và sau đó bình thường hóa điểm mẫu. Chuẩn hóa là một hình chiếu từ -hypercube đến -simplex. Cần phải rõ ràng bằng trực giác rằng các điểm ở trung tâm của đơn giản có nhiều "điểm trước ảnh" hơn ở bên ngoài . Do đó, nếu bạn lấy mẫu đồng đều từ hypercube, điều này sẽ không cung cấp cho bạn một mẫu thống nhất trong đơn giản. Tuy nhiên, nếu bạn lấy mẫu từ hypercube với Phân bố hàm mũ thích hợp, thì hiệu ứng này sẽ bị loại bỏ. Hình cho bạn một ý tưởng về cách cả hai phương thức sẽ lấy mẫu. Tuy nhiên, tôi thích phương pháp "sắp xếp" hơn do hình thức đơn giản của nó. Nó cũng dễ thực hiện hơn.d - 1dd−1