ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะสร้างการแจกแจงแบบสุ่มซึ่งเป็นฟังก์ชันของพารามิเตอร์บางตัว กล่าวอีกนัยหนึ่ง การใช้ MATLAB ฉันพิมพ์ rand(1,5)
ฉันมีการแจกแจงแบบสุ่มสม่ำเสมอของตัวเลข 5 ตัวระหว่าง 0 ถึง 1 เป็นไปได้หรือไม่ที่ผลลัพธ์นี้เป็นฟังก์ชันของพารามิเตอร์บางตัว คุณรู้อัลกอริทึมเกี่ยวกับเรื่องนั้นบ้างไหม? ฉันแค่ต้องการสิ่งนั้นในช่วงเวลาที่ไม่ต้องการการแสดง 2D
การสร้างตัวเลขสุ่มแบบพาราเมตริกด้วย MATLAB
คำตอบ (1)
ฉันคิดว่าคุณต้องการทำสิ่งนี้:
http://en.wikipedia.org/wiki/Inverse_transform_sampling< /ก>
ใน MATLAB นั้นค่อนข้างตรงไปตรงมา คุณเพียงแค่ระบุฟังก์ชัน
n = 10000; % number of random draws
r = rand(n, 1); % generate uniform random numbers
f = @norminv; % specify transforming function
tr = f(r); % transformed numbers, now normally distributed
hist(tr, 30) % plot histogram
ตัวอย่างนี้ค่อนข้างซับซ้อน เนื่องจากเราสามารถใช้ randn
ได้เลย แต่โดยทั่วไปแล้ววิธีการนี้ก็ยังคงอยู่
หากคุณมีกล่องเครื่องมือสถิติ และคุณต้องการสุ่มตัวอย่างจากการแจกแจงยอดนิยมรายการใดรายการหนึ่ง ลองดูตัวสร้างตัวเลขสุ่มที่คุณสามารถใช้ได้ ลิงก์
person
Prashant Kumar
schedule
07.06.2013
ฉันเห็น
n
แต่พารามิเตอร์ของฉันอยู่ที่ไหน ฉันกำลังมองหารุ่นสุ่มที่มี f(a,N)
- person Nicholas; 07.06.2013
จำนวนพารามิเตอร์ไม่สำคัญจริงๆ หลังจากแปลงตัวเลขแล้ว นั่นคือทั้งหมดที่คุณต้องการ ตัวอย่างเช่น ลองพิจารณา
f = @(x) norminv(x,10,5)
ซึ่งจะแปลงเป็นการแจกแจงแบบปกติโดยมีศูนย์กลางอยู่ที่ 10 โดยมีซิกมา 5
- person Prashant Kumar; 07.06.2013
น่าสนใจ ฉันสามารถใช้
sigma
เป็นพารามิเตอร์ได้ ฟังก์ชัน rand ให้ตัวเลขเป็น [0,1]
กับฉันเสมอหรือไม่
- person Nicholas; 07.06.2013
@Nicholas ลองใช้ความช่วยเหลือโดย:
help rand
สำหรับคำถามประเภทนี้
- person Dennis Jaheruddin; 07.06.2013
[0,1]
ของฉัน ดังนั้นf(a,N)
ที่ให้ค่าa
จะให้การแจกแจงตัวเลขสุ่มที่แน่นอน:f(1,3) -> 0.256 0.434 0.876
แทนเช่น:f(1.5,3) -> 0.342 0.573 0.972
ฉันกำลังมองหาบางอย่างเช่นนั้นถ้ามันมีอยู่จริง - person Nicholas   schedule 07.06.2013