2015-09-29 17 views
6

Tôi đang cố gắng tạo trình tạo số ngẫu nhiên sai lệch bằng cách sử dụng phân phối bình thường nghiêng, nhưng tôi không biết cách chuyển công thức của mình (sử dụng NORMDIST()) vào công thức dựa trên NORMINV() có thể tạo ra các con số tôi muốn. Đây là công thức của tôi:Số ngẫu nhiên trong phân phối chuẩn sai (tương đương với NORMINV())

=2/s * NORMDIST((x-m)/s, 0, 1, 0) * NORMSDIST(k*(x-m)/s) 

Trong đó "x" là số, "s" là thang đo "m" là vị trí và "k" là hình dạng. Tôi thừa nhận tôi đã tìm thấy công thức online, nhưng có vẻ như tôi làm những gì tôi muốn làm, ngoại trừ cách sai lầm xung quanh.

Tôi làm cách nào để thực hiện việc này?

+1

Không rõ ràng đối với tôi chính xác những gì bạn đang cố gắng đạt được. Không ai trả lời, vì vậy tôi nghĩ tôi không phải là người duy nhất. Có lẽ điều này http://www.mrexcel.com/forum/excel-questions/477702-generating-skewed-normal-distribution-random-numbers.html? –

+0

Phương trình trong liên kết Mr Excel làm việc cho tôi. Đó là phương trình = NORMDIST (D5, B $ 2, B $ 1, False) * NORMDIST (D5 * skew, B $ 2, B $ 1, True) * 2 Lưu ý rằng hàm đầu tiên là hàm mật độ xác suất (vì False) , thứ hai là hàm mật độ tích lũy (vì True) Lưu ý rằng tôi chỉ muốn tạo một phân phối chuẩn bị lệch trong Excel, tôi đã không cố gắng sử dụng bất kỳ loại số ngẫu nhiên nào –

Trả lời

2

Adelchi Azzalini có một số page về cách tạo các số giả ngẫu nhiên với phân phối lệch-bình thường (SN). Dưới đây từ trang:

SN random numbers

N (0,1) variates u0 và v trong bước 1. có thể được tính toán trong Excel như NORMINV(RAND(),0,1). Và δ được biểu thị bằng tham số hình dạng α là δ = α/SQRT(1+α*α).

Lưu ý: SciPy của Python đang trong quá trình nhận biến ngẫu nhiên lệch bình thường (scipy.stats.skewnorm), xem here trong mã SciPy 0.18.0rc2. Các tài liệu tham khảo docs một bài báo của Azzalini và Capitanio và cùng một trang tôi tham chiếu ở trên.

Các vấn đề liên quan