Memanfaatkan simulasi Monte Carlo

Simulasi Monte Carlo di Python

Izzy Weber

Curriculum Manager, DataCamp

Aplikasi luas

Simulasi Monte Carlo digunakan di bidang seperti...

  • Keuangan dan bisnis
  • Rekayasa
  • Ilmu fisika
Simulasi Monte Carlo di Python

Prediksi harga saham

Grafik yang menampilkan harga saham simulasi dari waktu ke waktu

1 https://marketxls.com/monte-carlo-simulation-excel
Simulasi Monte Carlo di Python

Manajemen risiko

grafik yang menampilkan interval kepercayaan VaR

1 https://www.investopedia.com/articles/04/092904.asp https://corporatefinanceinstitute.com/course/modeling-risk-monte-carlo-simulation/
Simulasi Monte Carlo di Python

Identifikasi situs pengikatan

 

grafik situs pengikatan protein

1 https://pubs.rsc.org/en/content/articlelanding/2020/ra/d0ra01127d
Simulasi Monte Carlo di Python

Analisis keandalan dalam rekayasa

grafik yang menampilkan domain aman dan gagal

1 www.researchgate.net/publication/228814883_Probabilistic_Transformation_Method_in_Reliability_Analysis
Simulasi Monte Carlo di Python

Manfaat simulasi Monte Carlo

 

  • Mempertimbangkan rentang nilai untuk berbagai input
  • Menunjukkan bukan hanya apa yang mungkin terjadi, tetapi juga peluang tiap hasil
  • Memudahkan visualisasi rentang hasil yang mungkin
  • Dapat menilai apa yang terjadi di skenario berbeda

 

optimalkan dengan simulasi Monte Carlo

Simulasi Monte Carlo di Python

Kantong berisi dadu bias

Kocok dua dadu dari dua kantong, masing-masing berisi tiga dadu bias:

bag1 = [[1, 2, 3, 6, 6, 6], [1, 2, 3, 4, 4, 6], [1, 2, 3, 3, 3, 5]]
bag2 = [[2, 2, 3, 4, 5, 6], [3, 3, 3, 4, 4, 5], [1, 1, 2, 4, 5, 5]]

 

Simulasi:

  • Pilih acak satu dadu dari tiap kantong; kocok keduanya
  • Sukses jika jumlah sisi bernilai delapan; selain itu gagal
  • Hitung probabilitas sukses untuk tiap kombinasi dadu unik
Simulasi Monte Carlo di Python

Simulasi dadu bias

def roll_biased_dice(n):
    results = {}

for i in range(n): bag_index1 = random.randint(0, 2) die_index1 = random.randint(0, 5) bag_index2 = random.randint(0, 2) die_index2 = random.randint(0, 5)
point1 = bag1[bag_index1][die_index1] point2 = bag2[bag_index2][die_index2]
key = "%s_%s" % (point1, point2)
if point1 + point2 == 8: if key not in results: results[key] = 1 else: results[key] += 1
Simulasi Monte Carlo di Python

Hasil dadu bias

dice1_dice2 probability_of_success
6_2 5.54
3_5 2.67
2_6 1.45
4_4 4
Simulasi Monte Carlo di Python

Hasil dadu bias

bag1 = [[1, 2, 3, 6, 6, 6], [1, 2, 3, 4, 4, 6], [1, 2, 3, 3, 3, 5]]
bag2 = [[2, 2, 3, 4, 5, 6], [3, 3, 3, 4, 4, 5], [1, 1, 2, 4, 5, 5]]

Hasil simulasi 10.000 percobaan: diagram batang yang menunjukkan probabilitas keberhasilan kombinasi dadu

Simulasi Monte Carlo di Python

Hasil dadu bias

bag1 = [[2, 2, 3, 4, 6, 6], [1, 2, 2, 4, 6, 6], [1, 2, 3, 3, 3, 3]]
bag2 = [[1, 2, 3, 4, 5, 6], [1, 3, 3, 4, 4, 6], [2, 2, 2, 3, 5, 5]]

Hasil simulasi 10.000 percobaan: diagram batang yang menunjukkan probabilitas keberhasilan kombinasi dadu

Simulasi Monte Carlo di Python

Keterbatasan simulasi Monte Carlo

  • Keluaran model hanya sebaik inputnya
  • Kejadian ekstrem sering diremehkan probabilitasnya
Simulasi Monte Carlo di Python

Ayo berlatih!

Simulasi Monte Carlo di Python

Preparing Video For Download...