Tôi đang cố gắng kiểm tra khả năng một nhóm dữ liệu cụ thể đã xảy ra một cách tình cờ. Một cách mạnh mẽ để làm điều này là mô phỏng Monte Carlo, trong đó các kết hợp giữa dữ liệu và nhóm được gán lại một cách ngẫu nhiên một số lần lớn (ví dụ 10.000) và số liệu phân cụm được sử dụng để so sánh dữ liệu thực tế với các mô phỏng để xác định ap giá trị.Thuật toán để lấy mẫu mà không cần thay thế?
Tôi đã thực hiện hầu hết công việc này, với các con trỏ ánh xạ nhóm tới các phần tử dữ liệu, vì vậy tôi có kế hoạch gán ngẫu nhiên con trỏ cho dữ liệu. CÂU HỎI: một cách nhanh chóng để lấy mẫu mà không cần thay thế là gì, để mỗi con trỏ được gán lại ngẫu nhiên trong các tập dữ liệu sao chép?
Ví dụ (những dữ liệu này chỉ là một ví dụ đơn giản):
dữ liệu (n = 12 giá trị) - Nhóm A: 0.1, 0.2, 0.4/Nhóm B: 0,5, 0,6, 0,8/Nhóm C : 0,4, 0,5/Nhóm D: 0,2, 0,2, 0,3, 0,5
Đối với mỗi bộ dữ liệu lặp lại, tôi sẽ có cùng kích thước cụm (A = 3, B = 3, C = 2, D = 4) và các giá trị dữ liệu, nhưng sẽ gán lại các giá trị cho các cụm. Để làm điều này, tôi có thể tạo ra các số ngẫu nhiên trong khoảng 1-12, gán phần tử đầu tiên của nhóm A, sau đó tạo các số ngẫu nhiên trong phạm vi 1-11 và gán phần tử thứ hai trong nhóm A, v.v. . Việc gán lại con trỏ rất nhanh và tôi sẽ phân bổ trước tất cả các cấu trúc dữ liệu, nhưng việc lấy mẫu mà không thay thế có vẻ như là một vấn đề có thể đã được giải quyết nhiều lần trước đây.
Ưu tiên lôgic hoặc mã giả.
Tuyệt vời! Xin lỗi tôi không thấy câu trả lời đó khi tôi tìm kiếm SO (để lấy mẫu mà không cần thay thế, thống kê, thuật toán, v.v.). Có lẽ điều này sẽ phục vụ như một câu hỏi meta để đưa những người như tôi đến câu trả lời ban đầu của bạn. Chúc mừng! – Argalatyr