Lag en Monte Carlo Simulering ved hjelp av Excel

Random Number Generation: Part 2 (November 2024)

Random Number Generation: Part 2 (November 2024)
Lag en Monte Carlo Simulering ved hjelp av Excel

Innholdsfortegnelse:

Anonim

Vi skal utvikle en Monte Carlo-simulering ved hjelp av Microsoft Excel og et terningspill. Monte Carlo Simulering er en matematisk numerisk metode som bruker tilfeldige tegninger for å utføre beregninger og komplekse problemer. I dag er det mye brukt og spiller en sentral rolle i ulike felt som økonomi, fysikk, kjemi, økonomi og mange andre.

Monte Carlo Simulering

Monte Carlo-metoden ble oppfunnet av Nicolas Metropolis i 1947 og søker å løse komplekse problemer ved bruk av tilfeldige og probabilistiske metoder. Begrepet "Monte Carlo" stammer fra det administrative området i Monaco, kjent som et sted hvor europeiske eliter spiller. Vi bruker Monte Carlo-metoden når problemet er for komplekst og vanskelig å gjøre ved direkte beregning. Et stort antall iterasjoner tillater en simulering av den normale fordeling.

Monte Carlo simuleringsmetoden beregner sannsynlighetene for integraler og løser partielle differensialligninger, og innfører dermed en statistisk tilnærming til risiko i en probabilistisk beslutning. Selv om mange avanserte statistiske verktøy eksisterer for å skape Monte Carlo-simuleringer, er det enklere å simulere den normale loven og den ensartede loven ved hjelp av Microsoft Excel og omgå de matematiske underlagene.

For Monte Carlo-simuleringen isolerer vi en rekke nøkkelvariabler som kontrollerer og beskriver utfallet av eksperimentet og tildeler en sannsynlighetsfordeling etter at mange tilfeldige prøver utføres. La oss ta et terningspill som modell.

Spill av terninger

Slik spiller terningspillet:

• Spilleren kaster tre terninger med seks sider 3 ganger.

• Hvis summen av de 3 kastene er 7 eller 11, vinner spilleren.

• Hvis totalt 3 kast er: 3, 4, 5, 16, 17 eller 18, taper spilleren.

• Hvis summen er noe annet utfall, spiller spilleren igjen og re-ruller dysen.

• Når spilleren kaster dysen igjen, fortsetter spillet på samme måte, bortsett fra at spilleren vinner når summen er lik summen bestemt i første runde.

Det anbefales også å bruke en datatabell til å generere resultatene. Videre er det nødvendig med 5 000 resultater for å forberede Monte Carlo-simuleringen.

Trinn 1: Dice Rolling Events

Først utvikler vi en rekke data med resultatene av hver av de 3 terningene for 50 ruller. For å gjøre dette foreslås det å bruke funksjonen "RANDBETWEEN (1. 6)". Dermed genererer vi hver gang vi klikker på F9 et nytt sett med rulleresultater. "Utfall" -cellen er summen av resultatene fra de 3 rullene.

Trinn 2: Utvalg av resultater

Da må vi utvikle en rekke data for å identifisere mulige utfall for første runde og påfølgende runder. Det er gitt under et 3-kolonne datautvalg.I første kolonne har vi tallene 1 til 18. Disse tallene representerer de mulige resultatene etter å ha kastet terningene 3 ganger: maksimumet er 3 * 6 = 18. Du vil merke at for cellene 1 og 2 er funnene N / A siden det er umulig å få en 1 eller 2 ved hjelp av 3 terninger. Minimum er 3.

I den andre kolonnen er de mulige konklusjonene etter første runde inkludert. Som angitt i innledende utsagn, vinner spilleren (Vinn) eller mister (Løs) eller repliserer han (Re-roll), avhengig av resultatet (totalt 3 terningruller).

I den tredje kolonnen registreres de mulige konklusjonene for etterfølgende runder. Vi kan oppnå disse resultatene ved hjelp av en funksjon "If. "Dette sikrer at hvis resultatet oppnådd er ekvivalent med resultatet som ble oppnådd i første runde, vinner vi, ellers følger vi de opprinnelige reglene i det opprinnelige spillet for å avgjøre om vi ruller terningene på nytt.

Trinn 3: Konklusjoner

I dette trinnet identifiserer vi utfallet av de 50 terningrullene. Den første konklusjonen kan oppnås med en indeksfunksjon. Denne funksjonen søker etter de mulige resultatene av første runde, konklusjonen som svarer til det oppnådde resultatet. For eksempel, når vi får 6, som det er tilfelle i bildet nedenfor, spiller vi igjen.

Man kan få resultatene fra andre terningruller, ved hjelp av en "Eller" -funksjon og en indeksfunksjon som er nestet i en "If" -funksjon. Denne funksjonen forteller Excel, "Hvis det forrige resultatet er Win or Lose," slutte å rulle terningene fordi en gang vi har vunnet eller mistet er vi ferdige. Ellers går vi til kolonnen med følgende mulige konklusjoner og vi identifiserer resultatet av resultatet.

Trinn 4: Antall terningruller

Nå bestemmer vi antall terningruller som kreves før de mister eller vinner. For å gjøre dette kan vi bruke en "Countif" -funksjon, som krever at Excel teller resultatene av "Re-roll" og legger til nummer 1 til det. Det legger til en fordi vi har en ekstra runde, og vi får et endelig resultat (seier eller tap).

Trinn 5: Simulering

Vi utvikler et område for å spore resultatene av forskjellige simuleringer. For å gjøre dette vil vi opprette tre kolonner. I den første kolonnen er en av figurene 5 000. I den andre kolonnen vil vi se etter resultatet etter 50 terningruller. I den tredje kolonnen, tittelen på kolonnen, vil vi se etter antall terningruller før du oppnår endelig status (seier eller tap).

Da vil vi opprette en sensitivitetsanalysetabell ved å bruke funksjonsdataene eller tabelldatabordet (denne følsomheten vil bli satt inn i andre tabell og tredje kolonne). I denne følsomhetsanalysen må antall hendelser på 1 - 5, 000 settes inn i celle A1 i filen. Faktisk kan man velge hvilken som helst tom celle. Tanken er bare å tvinge en omberegning hver gang og dermed få nye terningruller (resultater av nye simuleringer) uten å skade formlene på plass.

Trinn 6: Sannsynlighet

Vi kan endelig beregne sannsynlighetene for å vinne og miste. Vi gjør dette ved hjelp av "Countif" -funksjonen.Formelen teller antall "vinn" og "tap" og deler deretter med totalt antall hendelser, 5, 000, for å oppnå den respektive andelen av den ene og den andre. Vi ser endelig under at sannsynligheten for å få et vinn utfall er 73. 2% og å få et tap utfall er derfor 26. 8%.