2013-04-17 22 views
7

Tôi đang tìm cách tóm tắt một số phân bố xác suất của các thứ bằng cách sử dụng mô phỏng kiểu montecarlo. Tôi muốn lấy mẫu ngẫu nhiên các bản phân phối liên tục của một cái gì đó và thêm chúng vào các mẫu ngẫu nhiên khác của các bản phân phối liên tục khác, cuối cùng nhận được phân bố xác suất cho sự kết hợp của chúng. Bản thân các bản phân phối là thực nghiệm - chúng không phải là chức năng mà ở dạng P99 = 2.4, P90 = 7.12, P50 = 24.53, P10 = 82.14 và vân vân (trong thực tế có một loạt các điểm đó). Các bản phân phối ít nhiều là bất thường, vì vậy xấp xỉ chúng như lognormal có lẽ sẽ ổn, nếu cần thiết. Nhưng làm thế nào tôi có thể nhập vào số lognorm function của SciPy? Hoặc làm điều đó một cách khác trong SciPy, hoặc python nói chung?Tạo phân bố xác suất tùy chỉnh để vẽ các mẫu ngẫu nhiên từ trong SciPy

Tôi hy vọng nó rõ ràng những gì tôi đang cố gắng làm. Cảm ơn rất nhiều, Alex

Trả lời

2

Dường như những gì bạn có về cơ bản là biểu đồ mật độ xác suất. Một điều bạn có thể làm sau đó là sử dụng inverse transform sampling với phân phối thực nghiệm của bạn. Thay vào đó, nếu bạn mong đợi một dạng phân phối chức năng nhất định (lognorm hoặc một số khác), bạn có thể thử kết hợp dữ liệu với biểu mẫu chức năng tương ứng.

+0

Rất tiếc, tôi cho rằng chúng sẽ gần giống như một điều bất thường, bạn có biết cách tôi sắp sửa kết hợp dữ liệu với dữ liệu đó không? Tôi bị bỏ lại nhầm lẫn với cách tạo sự phân phối hợp lý lognormal thông qua hai điểm đã cho tại [trang mô tả] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.lognorm.html#scipy .stats.lognorm). Nếu tôi có một P90 là X và P10 là Y, thì tôi sẽ tạo ra một bản phân phối hợp lý như thế nào? –

+0

Tôi không chắc chắn về điều hai điểm mà bạn đang nói đến. Những gì tôi muốn làm, trước tiên tôi sẽ kiểm tra xem phân phối có thực sự * là * log-normal hay không. Đối với điều này, tôi muốn sử dụng thực tế là để phân phối bình thường những khoảnh khắc nên liên quan một cách rất chính xác (cf wikipedia hoặc mathworld hoặc ở nơi khác), và nếu 'X' là log-normal, thì' log X' là thường được phân phối: chỉ tính một vài khoảnh khắc đầu tiên của 'log X'. –

+0

Ok, nhưng tôi không phải tải nó vào đối tượng scipy để tôi có thể lấy các mẫu ngẫu nhiên từ nó bằng cách sử dụng 'R = lognorm.rvs (s, size = 100)' như đã đề cập trong trang chức năng lognorm ở trên không? –