Exploiter les simulations de Monte Carlo

Simulations de Monte-Carlo en Python

Izzy Weber

Curriculum Manager, DataCamp

Large applicabilité

Les simulations de Monte Carlo sont utilisées en :

  • Finance et affaires
  • Génie
  • Sciences physiques
Simulations de Monte-Carlo en Python

Prévision du cours des actions

Un graphique montrant des cours d'actions simulés dans le temps

1 https://marketxls.com/monte-carlo-simulation-excel
Simulations de Monte-Carlo en Python

Gestion des risques

Un graphique montrant l'intervalle de confiance du VaR

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

Repérage des sites de liaison

 

graphique de site de liaison protéique

1 https://pubs.rsc.org/en/content/articlelanding/2020/ra/d0ra01127d
Simulations de Monte-Carlo en Python

Analyse de fiabilité en génie

un graphique montrant des domaines sûrs et de défaillance

1 www.researchgate.net/publication/228814883_Probabilistic_Transformation_Method_in_Reliability_Analysis
Simulations de Monte-Carlo en Python

Avantages des simulations de Monte Carlo

 

  • Prendre en compte un éventail de valeurs pour divers intrants
  • Montrer non seulement ce qui peut arriver, mais la probabilité de chaque issue
  • Faciliter la visualisation de l'éventail des issues possibles
  • Permettre d'examiner ce qui se serait produit dans d'autres conditions

 

optimiser avec des simulations de Monte Carlo

Simulations de Monte-Carlo en Python

Sacs de dés biaisés

Lancez deux dés distincts à partir de deux sacs, chacun contenant trois dés biaisés :

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

 

Simulation :

  • Choisir au hasard un dé dans chaque sac ; lancer les deux dés
  • Succès si la somme des dés est égale à huit, sinon échec
  • Calculer la probabilité de succès pour chaque combinaison unique de dés
Simulations de Monte-Carlo en Python

Simulation de dés biaisés

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
Simulations de Monte-Carlo en Python

Résultats des dés biaisés

dice1_dice2 probability_of_success
6_2 5.54
3_5 2.67
2_6 1.45
4_4 4
Simulations de Monte-Carlo en Python

Résultats des dés biaisés

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

Résultats de simulation pour 10 000 essais : un diagramme à barres montrant les probabilités de réussite des combinaisons de dés

Simulations de Monte-Carlo en Python

Résultats des dés biaisés

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

Résultats de simulation pour 10 000 essais : un diagramme à barres montrant les probabilités de réussite des combinaisons de dés

Simulations de Monte-Carlo en Python

Limites des simulations de Monte Carlo

  • La qualité de la sortie dépend de la qualité de l'entrée du modèle
  • Les événements extrêmes sont souvent sous-estimés
Simulations de Monte-Carlo en Python

Passons à la pratique !

Simulations de Monte-Carlo en Python

Preparing Video For Download...