Monte Carlo simülasyonlarından yararlanma

Python ile Monte Carlo Simülasyonları

Izzy Weber

Curriculum Manager, DataCamp

Geniş kullanım alanı

Monte Carlo simülasyonları şu alanlarda kullanılır...

  • Finans ve iş dünyası
  • Mühendislik
  • Fizik bilimleri
Python ile Monte Carlo Simülasyonları

Hisse fiyatı tahmini

Zaman içinde simüle edilmiş hisse fiyatlarını gösteren bir grafik

1 https://marketxls.com/monte-carlo-simulation-excel
Python ile Monte Carlo Simülasyonları

Risk yönetimi

VaR güven aralığını gösteren bir grafik

1 https://www.investopedia.com/articles/04/092904.asp https://corporatefinanceinstitute.com/course/modeling-risk-monte-carlo-simulation/
Python ile Monte Carlo Simülasyonları

Bağlanma bölgesi belirleme

 

protein bağlanma bölgesi grafiği

1 https://pubs.rsc.org/en/content/articlelanding/2020/ra/d0ra01127d
Python ile Monte Carlo Simülasyonları

Mühendislikte güvenilirlik analizi

güvenli ve arıza alanlarını gösteren bir grafik

1 www.researchgate.net/publication/228814883_Probabilistic_Transformation_Method_in_Reliability_Analysis
Python ile Monte Carlo Simülasyonları

Monte Carlo Simülasyonlarının faydaları

 

  • Çeşitli girdiler için değer aralıklarını dikkate alır
  • Sadece ne olabileceğini değil, her sonucun olasılığını da gösterir
  • Olası sonuç aralığını görselleştirmeyi kolaylaştırır
  • Farklı koşullarda ne olacağını incelemene imkân tanır

 

Monte Carlo simülasyonlarıyla optimize et

Python ile Monte Carlo Simülasyonları

Hileli zar torbaları

İkişer torbadan, her birinde üç hileli zar olan iki ayrı zar at:

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]]

 

Simülasyon:

  • Her torbadan rastgele birer zar seç; ikisini de at
  • Zarların toplamı sekizse başarı; değilse başarısızlık
  • Her benzersiz zar kombinasyonu için başarı olasılığını hesaplamak istiyoruz
Python ile Monte Carlo Simülasyonları

Hileli zar simülasyonu

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
Python ile Monte Carlo Simülasyonları

Hileli zar sonuçları

dice1_dice2 probability_of_success
6_2 5.54
3_5 2.67
2_6 1.45
4_4 4
Python ile Monte Carlo Simülasyonları

Hileli zar sonuçları

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]]

10.000 denemenin simülasyon sonuçları: zar kombinasyonu başarısı olasılıklarını gösteren bir çubuk grafik

Python ile Monte Carlo Simülasyonları

Hileli zar sonuçları

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]]

10.000 denemenin simülasyon sonuçları: zar kombinasyonu başarısı olasılıklarını gösteren bir çubuk grafik

Python ile Monte Carlo Simülasyonları

Monte Carlo simülasyonlarının sınırlamaları

  • Model çıktısı, model girdisi kadar iyidir
  • Aşırı olayların olasılığı çoğunlukla düşük tahmin edilir
Python ile Monte Carlo Simülasyonları

Hadi pratik yapalım!

Python ile Monte Carlo Simülasyonları

Preparing Video For Download...