Nếu bạn có thể lấy mẫu từ một phân phối đưa ra với trung bình 0 và phương sai 1, sau đó bạn có thể dễ dàng mẫu từ một chuyển đổi mô-vị trí của phân phối, trong đó có trung bình và phương sai σ 2 . Nếu x là một mẫu từ một bình phân phối 0 và phương sai 1 thì
σ x + μ
là một mẫu với trung bình μ và phương sai σ 2 . Vì vậy, tất cả các bạn phải làm là để mở rộng biến bởi độ lệch chuẩn σ (căn bậc hai của phương sai) trước khi thêm giá trị trung bình μ .μσ2x
σx + μ
μσ2σμ
Làm thế nào bạn thực sự có được một mô phỏng từ một phân phối bình thường với trung bình 0 và phương sai 1 là một câu chuyện khác nhau. Thật thú vị và thú vị khi biết cách triển khai những thứ như vậy, nhưng cho dù bạn có sử dụng gói thống kê hay ngôn ngữ lập trình hay không, tôi sẽ khuyên bạn nên lấy và sử dụng một hàm hoặc thư viện phù hợp để tạo số ngẫu nhiên. Nếu bạn muốn tư vấn về thư viện nào sẽ sử dụng, bạn có thể muốn thêm thông tin cụ thể về ngôn ngữ lập trình bạn đang sử dụng.
Chỉnh sửa: Trong phần bình luận, một số câu trả lời khác và thực tế là Fixee đã chấp nhận câu trả lời này, tôi sẽ cung cấp thêm một số chi tiết về cách người ta có thể sử dụng các phép biến đổi của các biến thống nhất để tạo ra các biến thông thường.
- Một phương pháp, đã được đề cập trong một nhận xét của VitalStatistix , là phương pháp Box-Muller lấy hai biến ngẫu nhiên thống nhất độc lập và tạo ra hai biến ngẫu nhiên bình thường độc lập. Một phương pháp tương tự tránh tính toán của hai hàm siêu việt sin và cos với chi phí của một vài mô phỏng nữa đã được đăng lên như một câu trả lời của francogrex .
- Một phương pháp hoàn toàn tổng quát là biến đổi một biến ngẫu nhiên thống nhất bằng hàm phân phối nghịch đảo. Nếu được phân bố đều trên [ 0 , 1 ] sau đó
Φ - 1 ( U )
có phân phối chuẩn chuẩn. Mặc dù không có công thức phân tích rõ ràng cho Φ - 1 , nó có thể được tính bằng cách xấp xỉ bằng số chính xác. Việc triển khai hiện tại trong R (tôi đã kiểm tra lần cuối) sử dụng ý tưởng này. Phương pháp này về mặt khái niệm rất đơn giản, nhưng đòi hỏi phải thực hiện chính xác Φ - 1 , có lẽ không phổ biến như các hàm siêu việt (khác)Bạn[ 0 , 1 ]
Φ- 1( U)
Φ- 1Φ- 1đăng nhập , tội lỗi và cos .
- Một số câu trả lời đề cập đến khả năng sử dụng định lý giới hạn trung tâm để xấp xỉ phân phối chuẩn là trung bình của các biến ngẫu nhiên thống nhất. Điều này thường không được khuyến khích. Các đối số được trình bày, chẳng hạn như khớp giá trị trung bình 0 và phương sai 1 và các cân nhắc về hỗ trợ của phân phối là không thuyết phục. Trong Bài tập 2.3 trong phần "Giới thiệu phương pháp Monte Carlo với R" của Christian P. Robert và George Casella, bộ tạo này được gọi là cổ và phép tính gần đúng được gọi là rất kém .
- Có một số lượng lớn các ý tưởng khác. Chương 3 và đặc biệt, Phần 3,4, trong "Nghệ thuật lập trình máy tính" Tập. 2 của Donald E. Knuth là một tài liệu tham khảo cổ điển về việc tạo số ngẫu nhiên. Brian Ripley đã viết Thế hệ máy tính biến ngẫu nhiên: Hướng dẫn , có thể hữu ích. Cuốn sách được đề cập bởi Robert và Casella, hoặc có lẽ Chương 2 trong cuốn sách khác của họ, "phương pháp thống kê Monte Carlo", cũng được đề xuất.
Vào cuối ngày, một phương thức được thực hiện chính xác không tốt hơn trình tạo số ngẫu nhiên giả ngẫu nhiên được sử dụng. Cá nhân, tôi thích dựa vào các thư viện mục đích đặc biệt mà tôi tin là đáng tin cậy. Tôi hầu như luôn dựa vào các phương thức được triển khai trong R trực tiếp trong R hoặc thông qua API trong C / C ++. Rõ ràng, đây không phải là một giải pháp cho tất cả mọi người, nhưng tôi không đủ quen thuộc với các thư viện khác để đề xuất các lựa chọn thay thế.