この計算機でできること
この正規分布グラフ計算機は、正規分布(ガウス分布)について (x, 値) の組を表形式で作成します。表にする関数は次の3つから選べます。確率密度 \(f(x)\)、下側累積確率 \(P(x)\)(累積分布関数、CDF)、上側累積確率 \(Q(x)\)(生存関数)です。xの数列は、初期値・刻み幅(増分)・生成する点数によって決まります。平均 \(\mu = 0\)、標準偏差 \(\sigma = 1\) とすれば標準正規分布になります。
使い方
まず関数を選びます。次に平均 \(\mu\) と標準偏差 \(\sigma\)(0より大きい値)を入力します。さらに、xの初期値、連続するxどうしの増分、繰り返し回数(点数)を設定してください。計算結果は表として出力され、各行 i には \(x = \text{初期値} + i \cdot \text{刻み幅}\) と、そのxにおける選択した関数の値が表示されます。初期設定(\(\mu=0\)、\(\sigma=1\)、開始 = -5、刻み = 0.1、101点)では、xが -5 から +5 まで動き、f なら見慣れたベル型曲線、P ならS字型の曲線を描きます。
計算式の解説
確率密度は
$$f(\text{x},\mu,\sigma) = \frac{1}{\sqrt{2\pi}\cdot\sigma}\cdot \exp\!\left(-\tfrac{1}{2}\left(\frac{\text{x}-\mu}{\sigma}\right)^{2}\right)$$です。累積確率には誤差関数 erf を使います。\(z = (\text{x}-\mu)/(\sigma\sqrt{2})\) とおくと、下側累積確率は \(P = \tfrac{1}{2}(1 + \operatorname{erf} z)\)、上側累積確率は \(Q = 1 - P\) となります。Java/Groovy には erf が標準で用意されていないため、本ツールでは Abramowitz & Stegun の 7.1.26 多項式近似を使用しており、誤差はおよそ \(1.5\times10^{-7}\) 程度です。
計算例
標準正規分布(\(\mu=0\)、\(\sigma=1\))で x = 1 のとき、\(f(1) = 0.3989423 \cdot \exp(-0.5) = 0.241971\)。Pについては \(z = 1/\sqrt{2} = 0.70711\)、\(\operatorname{erf}(z) \approx 0.68269\) なので、\(P = \tfrac{1}{2}(1 + 0.68269) = 0.84134\)(よく知られた \(\Phi(1) \approx 0.8413\))。続いて \(Q = 1 - 0.84134 = 0.15866\) となり、\(P + Q = 1\) が成り立ちます。✓
よくある質問
なぜ \(\sigma\) は正でなければならないのですか? 標準偏差が0や負の値には意味がなく、計算式の中でゼロ除算が起きてしまうため、本ツールでは受け付けません。
刻み幅を負にできますか? できます。刻み幅を負にするとxは小さくなる方向に進みます。刻み幅を0にすると、同じxの値が並んだ一定の列になります。
PとQの精度はどのくらいですか? erf の多項式近似を用いており、最大誤差はおよそ \(1.5\times10^{-7}\) です。グラフ作成や一般的な統計処理には十分な精度です。