この計算ツールでできること
F分布は、分散分析(ANOVA)、回帰分析における全体の有意性検定、2つの母分散が等しいかを調べるF検定など、2つの分散を比較する場面で必ず登場する分布です。このツールでは、分子の自由度 \(v_1\) と分母の自由度 \(v_2\) をもつF分布を、一連の \(x\) 値にわたって計算し、表とグラフを一度に作成できます。計算する関数は、確率密度 \(f\)、下側累積確率 \(P\)(分布関数 CDF)、上側累積確率 \(Q\)(生存関数。右側裾の p 値を求めるのに便利)の3種類から選べます。
使い方
まず計算したい関数を選びます。次に2つの自由度を入力します(どちらも 0 より大きい値が必要です)。続いて数列を設定します。\(x\) の初期値(\(x\) は 0 以上)、各点の刻み幅、繰り返し回数を指定してください。計算は \(i = 0\) から \(\text{loopCount}-1\) まで \(x_i = \text{初期値} + i \times \text{刻み幅}\) を生成し、各点で選んだ関数の値を出力します。初期設定(\(v_1 = 3\)、\(v_2 = 5\)、開始 0、刻み 0.1、51 点)では、\(x\) が 0 から 5 まで変化します。
計算式の解説
確率密度の計算にはベータ関数 \(B(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b)\) を用います。自由度が大きい場合でも数値的に安定させるため、対数ガンマ関数を使って対数領域で計算します。累積確率はきれいな閉形式で表せます。すなわち \(P(x)\) は、\(z = v_1 x/(v_1 x + v_2)\) としたときの正則化不完全ベータ関数 \(I_z(v_1/2, v_2/2)\) に等しくなります。上側裾は単純に \(Q(x) = 1 - P(x)\) です。不完全ベータ関数は標準的な連分数法によって評価しています。
$$f(x) = \frac{\sqrt{\dfrac{(\nu_1 x)^{\nu_1}\,\nu_2^{\nu_2}}{(\nu_1 x + \nu_2)^{\nu_1+\nu_2}}}}{x\,B\!\left(\tfrac{\nu_1}{2},\tfrac{\nu_2}{2}\right)}$$ $$F(x) = I_{\,z}\!\left(\tfrac{\nu_1}{2},\,\tfrac{\nu_2}{2}\right),\quad z = \frac{\nu_1 x}{\nu_1 x + \nu_2}$$
計算例
\(v_1 = 3\)、\(v_2 = 5\)、\(x = 1\) の場合を考えます。定数 \(C = 3^{1.5} \times 5^{2.5} / B(1.5, 2.5) = 5.196152 \times 55.901699 / 0.196350 = 1479.36\) となります。これより \(f = 1479.36 \times 1^{0.5} / (5 + 3)^4 = 1479.36 / 4096 = 0.36117\) です。CDF については、\(z = 3/8 = 0.375\) より \(P = I_{0.375}(1.5, 2.5) = 0.5351\)、したがって \(Q = 0.4649\) となります。
よくある質問
x = 0 で密度が発散するのはなぜですか? \(v_1 < 2\) のとき、密度は \(x = 0\) で無限大に発散します。\(v_1 = 2\) のときは 1 に等しく、\(v_1 > 2\) のときは 0 になります。
x はどの範囲をとればよいですか? F変数は非負なので、\(x = 0\) から始め、分布の大部分を捉えられるよう右側の裾まで十分に(多くの場合 \(x\) を 5〜10 程度まで)広げるとよいでしょう。
平均は常に存在しますか? 平均 \(v_2/(v_2-2)\) は \(v_2 > 2\) のときにのみ、分散は \(v_2 > 4\) のときにのみ存在します。ただし、ここで関数値を計算するだけならどちらの条件も必要ありません。