モンテカルロ法について
概要
ランダムサンプルを行うことで未知のパラメータを求める方法
piを求める
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.random((10**7, 2)))
df["in_circle"] = (df[0]**2 + df[1]**2 < 1).astype(int)
pi = 4 * df.in_circle.sum() / len(df)
print(pi) # 3.14...
推定値の標準偏差を一定以下に抑える
piを例に出す
\[SD = 0.01 = \frac{4}{\sqrt{N}}\sqrt{\frac{\pi}{4}\left(1 - \frac{\pi}{4} \right)}\]以上が成り立つから、
\[N = \frac{\pi(4-\pi)}{(0.01)^2} = 27000\]