Wahrscheinlichkeitsexperimente in Mathematica durchführen
Mathematica bietet einen sehr komfortablen Rahmen für die Arbeit mit Wahrscheinlichkeiten und Verteilungen, und obwohl das Hauptproblem der angemessenen Grenzwerte angesprochen wurde, möchte ich diese Frage verwenden, um dies klarer und möglicherweise als Referenz zu verwenden.
Lassen Sie uns die Experimente einfach wiederholbar machen und einige Handlungsoptionen definieren, die unserem Geschmack entsprechen:
SeedRandom["Repeatable_151115"];
$PlotTheme = "Detailed";
SetOptions[Plot, Filling -> Axis];
SetOptions[DiscretePlot, ExtentSize -> Scaled[0.5], PlotMarkers -> "Point"];
Arbeiten mit parametrischen Verteilungen
Wir können nun die asymptotische Verteilung für definieren ein Ereignis , das ist der Anteil der Köpfe in führt eine (fair) coin:πn
distProportionTenCoinThrows = With[
{
n = 10, (* number of coin throws *)
p = 1/2 (* fair coin probability of head*)
},
(* derive the distribution for the proportion of heads *)
TransformedDistribution[
x/n,
x \[Distributed] BinomialDistribution[ n, p ]
];
With[
{
pr = PlotRange -> {{0, 1}, {0, 0.25}}
},
theoreticalPlot = DiscretePlot[
Evaluate @ PDF[ distProportionTenCoinThrows, p ],
{p, 0, 1, 0.1},
pr
];
(* show plot with colored range *)
Show @ {
theoreticalPlot,
DiscretePlot[
Evaluate @ PDF[ distProportionTenCoinThrows, p ],
{p, 0.4, 0.6, 0.1},
pr,
FillingStyle -> Red,
PlotLegends -> None
]
}
]
Was uns die Darstellung der diskreten Verteilung der Proportionen gibt:
Wir können die Verteilung sofort verwenden, um Wahrscheinlichkeiten für und zu berechnen. :Pr[0.4≤π≤0.6|π∼B(10,12)]Pr[0.4<π<0.6|π∼B(10,12)]
{
Probability[ 0.4 <= p <= 0.6, p \[Distributed] distProportionTenCoinThrows ],
Probability[ 0.4 < p < 0.6, p \[Distributed] distProportionTenCoinThrows ]
} // N
{0,65625, 0,246094}
Monte-Carlo-Experimente durchführen
Wir können die Verteilung für ein Ereignis verwenden, um wiederholt eine Stichprobe daraus zu erstellen (Monte Carlo).
distProportionsOneMillionCoinThrows = With[
{
sampleSize = 1000000
},
EmpiricalDistribution[
RandomVariate[
distProportionTenCoinThrows,
sampleSize
]
]
];
empiricalPlot =
DiscretePlot[
Evaluate@PDF[ distProportionsOneMillionCoinThrows, p ],
{p, 0, 1, 0.1},
PlotRange -> {{0, 1}, {0, 0.25}} ,
ExtentSize -> None,
PlotLegends -> None,
PlotStyle -> Red
]
]
Ein Vergleich mit der theoretischen / asymptotischen Verteilung zeigt, dass alles ziemlich gut passt:
Show @ {
theoreticalPlot,
empiricalPlot
}