Monte Carlo simulation คืออะไร?

Monte Carlo Simulations ใน Python

Izzy Weber

Curriculum Manager, DataCamp

การจำลองและ Monte Carlo simulation

การจำลอง:
  • การทดลองที่พยายามเลียนแบบความเป็นจริง
  • มักใช้โปรแกรมคอมพิวเตอร์

 

Monte Carlo simulation:
  • ใช้ทำนายความน่าจะเป็นของผลลัพธ์ต่าง ๆ ที่ได้รับผลจาก ตัวแปรสุ่ม
  • อาศัยการสุ่มตัวอย่างซ้ำเพื่อให้ได้ผลลัพธ์เชิงตัวเลข
  • ผลลัพธ์เป็นแบบ stochastic เนื่องจากโมเดลพึ่งพาการสุ่มตัวอย่าง
Monte Carlo Simulations ใน Python

ตัวอย่างการจำลอง

การทอยลูกเต๋าหกหน้า
  • ทอมทอยลูกเต๋าหกหน้าที่สมดุล $n$ ครั้ง
  • หลังแต่ละครั้ง เขาบันทึกผลที่ได้
  • จากนั้นนำลูกเต๋าใส่ถุงแล้วหยิบลูกใหม่สำหรับการทอยครั้งถัดไป

คำถาม

  1. ทอมจะมีลูกเต๋าทั้งหมดกี่ลูกหลังทอย $n$ ครั้ง?
  2. ค่าเฉลี่ยของผลลัพธ์หลังทอย $n$ ครั้งจะเป็นเท่าไร?

 

มือกำลังทอยลูกเต๋า

Monte Carlo Simulations ใน Python

การจำลองผลลัพธ์ของทอม

  • total_dice: จำนวนลูกเต๋าในถุงของทอมหลังทอย $n$ ครั้ง
  • mean_point_dice: ค่าเฉลี่ยของผลลัพธ์ทั้งหมดหลังทอย $n$ ครั้ง
import random
import numpy as np

def roll_dice(n, seed): random.seed(seed) total_dice = 0 point_dice = []
for i in range(n): total_dice += 1 point_dice.append(random.randint(1, 6))
mean_point_dice = np.mean(point_dice)
return([total_dice, mean_point_dice])
Monte Carlo Simulations ใน Python

ผลลัพธ์การจำลอง

การจำลองที่ 1:

seed=1231

print(roll_dice(10, seed))
print(roll_dice(100, seed))
print(roll_dice(1000, seed))
print(roll_dice(10000, seed))

การจำลองที่ 2:

seed=3124
print(roll_dice(10, seed))
print(roll_dice(100, seed))
print(roll_dice(1000, seed))
print(roll_dice(10000, seed))

ผลลัพธ์:

[10, 3.6]

[100, 3.5]
[1000, 3.495]
[10000, 3.503]

ผลลัพธ์:

[10, 3.8]
[100, 3.28]
[1000, 3.474]
[10000, 3.5508]
Monte Carlo Simulations ใน Python

กฎของจำนวนมาก

เมื่อจำนวนตัวแปรสุ่มที่มีการแจกแจงเหมือนกันเพิ่มขึ้น ค่าเฉลี่ยตัวอย่างจะเข้าใกล้ค่าเฉลี่ยทางทฤษฎี

การจำลองที่ 3 (seed = 3124):

print(roll_dice(100000, seed))
print(roll_dice(500000, seed))
print(roll_dice(1000000, seed))

ผลลัพธ์:

[100000, 3.51344]
[500000, 3.50428]
[1000000, 3.501995]
Monte Carlo Simulations ใน Python

มาฝึกกันเถอะ!

Monte Carlo Simulations ใน Python

Preparing Video For Download...