[PYTHON] Monte-Carlo-Methode

Die Monte-Carlo-Methode ist eine Methode zum Umwandeln des Integrals einer Funktion in die Summe der abgetasteten Punkte, um eine bestimmte Funktion zu reproduzieren.

[Wikipedia](http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%AB%E3%83%AB%E3%83 Dies hängt von der Qualität der Zufallszahlengenerierung ab, wie in% AD% E6% B3% 95) beschrieben.

Das Prinzip der Monte-Carlo-Methode

Das Prinzip der numerischen Berechnung nach der Monte-Carlo-Methode besteht darin, dass im Fragebogen eine große Anzahl von Stichproben aus der Abteilung extrahiert wird, zu der viele Personen gehören, und eine kleine Anzahl von Stichproben aus der Abteilung, zu der eine kleine Anzahl von Personen gehört, und die Meinungen des gesamten Unternehmens ausgedrückt werden. Es ähnelt der Idee, dass es sich in einem Fragebogen widerspiegeln kann. Um beispielsweise das Umfangsverhältnis zu berechnen, generieren Sie einen Satz von Zufallszahlen im Bereich von 0 bis 1, betrachten Sie ihn als Punkt auf der xy-Koordinate und bestimmen Sie anhand des Verhältnisses, ob er sich im ersten Quadranten des Einheitskreises befindet oder nicht. ..

Für stochastische Variablen, die aufeinanderfolgende Werte annehmen, wird die stochastische Verteilung durch die stochastische Dichtefunktion f (x) dargestellt. Zu diesem Zeitpunkt sind der Mittelwert u und die Varianz σ ^ 2 wie folgt.

\mu = \int{xf(x)dx} \\
\sigma^2 = \int{(x - \mu)}^2f(x)dx

Versuchen Sie es tatsächlich mit Code

Es gab zwei Sportmannschaften A und B. Die beiden Sportmannschaften erzielten genau das gleiche Ergebnis, jedoch mit unterschiedlichen Abweichungen. Dies wird durch die Monte-Carlo-Simulation ausgedrückt.

from pylab import *
from scipy.stats import *
import matplotlib.pyplot as plt

runs = 10000

#Ergebnisse jedes Teams
teamperfA = [0.9,0.8,0,9] #Team A Punktzahl
teamperfB = [0.9,0.8,0.9] #Team B Punktzahl

#Verteilung der Ergebnisse nach Team
teamvarianceA = [0.03, 0.04, 0.02]
teamvarianceB = [0.05, 0.08, 0.09] #Team B ist zerstreuter

weights = [1.0, 0.95, 0.8]

def result(perf,variance,weights):
    res = 0.0
    for i in range(len(perf)-1):
        res += perf[i] * weights[i] * norm(1,variance[i]).rvs()

    return res

resultsA = zeros(shape=(runs,), dtype=float)
resultsB = zeros(shape=(runs,), dtype=float)

for i in range(runs):
    resultsA[i] = result (teamperfA,teamvarianceA,weights)
    resultsB[i] = result (teamperfB,teamvarianceB,weights)

subplot(211)
width = 2
height=runs

title('Team A')
hist(resultsA, bins=50)
axis([1.4,1.9,0,height/10])

subplot(212)
title('Team B')
hist(resultsB, bins=50)

axis([1.4,1.9,0,height/10])

show()
plt.savefig("image.png ")

image.png

Referenz

Python matplotlib, Monte Carlo simulation, and basic statistics http://softwaredevelopmentperestroika.wordpress.com/2013/12/06/python-matplotlib-monte-carlo-simulation-and-basic-statistics/

Recommended Posts

Monte-Carlo-Methode
Einführung in die Monte-Carlo-Methode
Simulieren Sie die Monte-Carlo-Methode in Python
Schätzung von π nach der Monte-Carlo-Methode
Dominion-Kompressionsspiel nach Monte-Carlo-Methode analysiert
#Monte Carlo-Methode zum Ermitteln des Umfangsverhältnisses mit Python
Versuchen Sie, die Monte-Carlo-Methode in Python zu implementieren
Geschwindigkeitsvergleich jeder Sprache nach der Monte-Carlo-Methode
Erhöhen Sie die Geschwindigkeit der Monte-Carlo-Methode zur Implementierung von Cython-Ausschnitten.
Mit Reiskörnern bestreuen, um das Umfangsverhältnis zu ermitteln (Monte-Carlo-Methode)
Finden Sie das Umfangsverhältnis mit einer dreizeiligen Funktion [Python / Monte-Carlo-Methode]
Finden Sie das Verhältnis der Fläche des Biwa-Sees nach der Monte-Carlo-Methode
Binäre Methode
Fünfäugige KI bei der Suche nach Monte-Carlo-Bäumen
Spezielle Methode
Spezielle Methode
[Statistik] Ich werde die Abtastung nach der Markov-Ketten-Monte-Carlo-Methode (MCMC) mit Animation erläutern.
PRML Kapitel 11 Implementierung der Markov-Kette Monte Carlo Python
Fasst jede der Markov-Ketten- und Monte-Carlo-Methoden zusammen