Mathematica에서 확률 실험하기
Mathematica 는 확률과 분포에 대해 작업하기에 매우 편안한 프레임 워크를 제공하며, 적절한 한계의 주요 문제가 해결되었지만이 질문을 사용하여이를 명확하고 참조로 사용하고 싶습니다.
실험을 반복 가능하게하고 취향에 맞게 몇 가지 플롯 옵션을 정의 해 보겠습니다.
SeedRandom["Repeatable_151115"];
$PlotTheme = "Detailed";
SetOptions[Plot, Filling -> Axis];
SetOptions[DiscretePlot, ExtentSize -> Scaled[0.5], PlotMarkers -> "Point"];
모수 분포 작업
우리는 지금의 asymptotical 분포를 정의 할 수 있습니다 하나 개의 이벤트 비율입니다 의 머리가 A (공정) 동전의 발생을 :π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
]
}
]
이것은 우리에게 비율의 이산 분포 분포를 보여줍니다.
우리가 계산 확률에 즉시 분배를 사용할 수 및 :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).
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
]
]
이것을 이론적 / 무증상 분포와 비교하면 모든 것이 거의 일치한다는 것을 알 수 있습니다.
Show @ {
theoreticalPlot,
empiricalPlot
}