Créer une simulation Monte Carlo à l'aide d'Excel

Python Tutorial: CSV Module - How to Read, Parse, and Write CSV Files (Octobre 2024)

Python Tutorial: CSV Module - How to Read, Parse, and Write CSV Files (Octobre 2024)
Créer une simulation Monte Carlo à l'aide d'Excel

Table des matières:

Anonim

Nous allons développer une simulation de Monte Carlo en utilisant Microsoft Excel et un jeu de dés. La simulation de Monte Carlo est une méthode mathématique numérique qui utilise des tirages aléatoires pour effectuer des calculs et des problèmes complexes. Aujourd'hui, il est largement utilisé et joue un rôle clé dans divers domaines tels que la finance, la physique, la chimie, l'économie et bien d'autres.

Simulation de Monte Carlo

La méthode de Monte Carlo a été inventée par Nicolas Metropolis en 1947 et vise à résoudre des problèmes complexes en utilisant des méthodes aléatoires et probabilistes. Le terme "Monte Carlo" provient de la zone administrative de Monaco populairement connu comme un endroit où les élites européennes jouent. Nous utilisons la méthode de Monte Carlo lorsque le problème est trop complexe et difficile à faire par calcul direct. Un grand nombre d'itérations permet une simulation de la distribution normale.

La méthode de simulation de Monte Carlo calcule les probabilités pour les intégrales et résout les équations aux dérivées partielles, introduisant ainsi une approche statistique du risque dans une décision probabiliste. Bien que de nombreux outils statistiques avancés existent pour créer des simulations de Monte Carlo, il est plus facile de simuler la loi normale et la loi uniforme en utilisant Microsoft Excel et de contourner les fondements mathématiques.

Pour la simulation de Monte Carlo, nous isolons un certain nombre de variables clés qui contrôlent et décrivent le résultat de l'expérience et assignent une distribution de probabilité après qu'un grand nombre d'échantillons aléatoires est effectué. Prenons un jeu de dés comme modèle.

Game of Dice

Voici comment le jeu de dés roule:

• Le joueur lance trois dés qui ont 6 côtés 3 fois.

• Si le total des 3 lancers est 7 ou 11, le joueur gagne.

• Si le total des 3 lancers est: 3, 4, 5, 16, 17 ou 18, le joueur perd.

• Si le total est un autre résultat, le joueur joue à nouveau et relance le dé.

• Lorsque le joueur lance à nouveau le dé, le jeu continue de la même manière, sauf que le joueur gagne lorsque le total est égal à la somme déterminée au premier tour.

Il est également recommandé d'utiliser une table de données pour générer les résultats. De plus, 5 000 résultats sont nécessaires pour préparer la simulation de Monte Carlo.

Étape 1: Déroulement des jets

Tout d'abord, nous développons une série de données avec les résultats de chacun des 3 dés pour 50 jets. Pour ce faire, il est proposé d'utiliser la fonction "RANDBETWEEN (1. 6)". Ainsi, chaque fois que nous cliquons sur F9, nous générons un nouvel ensemble de résultats. La cellule "Outcome" est la somme des résultats des 3 rouleaux.

Étape 2: Gamme de résultats

Ensuite, nous devons développer une série de données pour identifier les résultats possibles pour le premier tour et les tours suivants. Il est fourni ci-dessous une plage de données à 3 colonnes.Dans la première colonne, nous avons les chiffres 1 à 18. Ces chiffres représentent les résultats possibles après avoir lancé les dés 3 fois: le maximum étant de 3 * 6 = 18. Vous remarquerez que pour les cellules 1 et 2, les résultats sont N / A car il est impossible d'obtenir un 1 ou un 2 en utilisant 3 dés. Le minimum est de 3.

Dans la deuxième colonne, les conclusions possibles après le premier tour sont incluses. Comme indiqué dans la déclaration initiale, soit le joueur gagne (Win) ou perd (Lose) ou il rejoue (Re-roll), selon le résultat (le total de 3 jets de dés).

Dans la troisième colonne, les conclusions possibles pour les séries suivantes sont enregistrées. Nous pouvons atteindre ces résultats en utilisant une fonction "Si. Cela garantit que si le résultat obtenu est équivalent au résultat obtenu au premier tour, nous gagnons, sinon nous suivons les règles initiales du jeu original pour déterminer si nous relancerons les dés.

Étape 3: Conclusions

Dans cette étape, nous identifions le résultat des 50 lancers de dés. La première conclusion peut être obtenue avec une fonction d'index. Cette fonction recherche les résultats possibles du premier tour, la conclusion correspondant au résultat obtenu. Par exemple, en obtenant 6, comme c'est le cas dans l'image ci-dessous, nous jouons à nouveau.

On peut obtenir les résultats d'autres jets de dés, en utilisant une fonction "Ou" et une fonction index imbriquée dans une fonction "Si". Cette fonction dit à Excel, "Si le résultat précédent est Win ou Lose", arrêtez de lancer les dés car une fois que nous avons gagné ou perdu, nous avons terminé. Sinon, nous allons à la colonne des conclusions possibles suivantes et nous identifions la conclusion du résultat.

Étape 4: Nombre de jets de dés

Maintenant, nous déterminons le nombre de jets de dés requis avant de perdre ou de gagner. Pour ce faire, nous pouvons utiliser une fonction "Countif", qui oblige Excel à compter les résultats de "Re-roll" et à lui ajouter le numéro 1. Il en ajoute un parce que nous avons un tour supplémentaire, et nous obtenons un résultat final (gagner ou perdre).

Étape 5: Simulation

Nous développons une gamme pour suivre les résultats de différentes simulations. Pour ce faire, nous allons créer trois colonnes. Dans la première colonne, l'un des chiffres inclus est 5 000. Dans la deuxième colonne, nous rechercherons le résultat après 50 lancers de dés. Dans la troisième colonne, le titre de la colonne, nous allons chercher le nombre de jets de dés avant d'obtenir le statut final (gagner ou perdre).

Ensuite, nous allons créer une table d'analyse de sensibilité en utilisant les données de caractéristiques ou le tableau de données de table (cette sensibilité sera insérée dans la deuxième table et la troisième colonne). Dans cette analyse de sensibilité, les nombres d'événements de 1 à 5 000 doivent être insérés dans la cellule A1 du fichier. En fait, on pourrait choisir n'importe quelle cellule vide. L'idée est simplement de forcer un recalcul à chaque fois et ainsi obtenir de nouveaux jets de dés (résultats de nouvelles simulations) sans endommager les formules en place.

Étape 6: Probabilité

Nous pouvons enfin calculer les probabilités de gagner et de perdre. Nous faisons cela en utilisant la fonction "Countif".La formule compte le nombre de «gagner» et «perdre» puis divise par le nombre total d'événements, 5 000, pour obtenir la proportion respective de l'un et l'autre. Nous voyons enfin ci-dessous que la probabilité d'obtenir un résultat Win est de 73. 2% et obtenir un résultat de perte est donc de 26. 8%.