Apa itu simulasi Monte Carlo?

Simulasi Monte Carlo di Python

Izzy Weber

Curriculum Manager, DataCamp

Simulasi dan Monte Carlo

Simulasi:
  • Percobaan yang meniru kenyataan
  • Sering menggunakan program komputer

 

Simulasi Monte Carlo:
  • Untuk memprediksi probabilitas berbagai keluaran yang dipengaruhi variabel acak
  • Mengandalkan pengambilan sampel acak berulang untuk memperoleh hasil numerik
  • Hasil bersifat stokastik karena bergantung pada pengacakan
Simulasi Monte Carlo di Python

Contoh simulasi

Mengocok dadu enam sisi
  • Tom mengocok dadu adil enam sisi sebanyak $n$ kali
  • Setelah tiap lemparan, ia mencatat hasilnya
  • Lalu ia memasukkan dadu ke dalam kantong dan memilih dadu baru untuk lemparan berikutnya

Pertanyaan

  1. Berapa banyak dadu yang dikumpulkan Tom setelah $n$ lemparan?
  2. Berapa rata-rata hasil setelah $n$ lemparan?

 

sebuah tangan melempar dadu

Simulasi Monte Carlo di Python

Menyimulasikan hasil Tom

  • total_dice: jumlah dadu di kantong Tom setelah $n$ lemparan
  • mean_point_dice: rata-rata semua hasil setelah $n$ lemparan
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])
Simulasi Monte Carlo di Python

Hasil simulasi

Simulasi Satu:

seed=1231

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

Simulasi Dua:

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

Hasil:

[10, 3.6]

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

Hasil:

[10, 3.8]
[100, 3.28]
[1000, 3.474]
[10000, 3.5508]
Simulasi Monte Carlo di Python

Hukum Bilangan Besar

Saat jumlah variabel acak terdistribusi identik bertambah, rata-rata sampelnya mendekati rata-rata teoretis.

Simulasi Tiga (seed = 3124):

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

Hasil:

[100000, 3.51344]
[500000, 3.50428]
[1000000, 3.501995]
Simulasi Monte Carlo di Python

Ayo berlatih!

Simulasi Monte Carlo di Python

Preparing Video For Download...