この計算ツールでできること
不完全ベータ関数(逆関数)計算ツールは、選んだベータ関数が目標値 y に等しくなるような積分上限 x を求めます。正規化していない不完全ベータ関数 \(B_x(a,b)\) と、正規化(基準化)された \(I_x(a,b)\) のどちらでも逆関数を計算できます。\(I_x(a,b)\) は 0 から 1 まで単調に増加するため、この逆算はベータ分布の分位点(パーセント点)そのものに対応し、スチューデントの t 分布、フィッシャーの F 分布、二項分布の臨界値を求める基礎にもなります。
使い方
まず逆算したい関数を選びます。次に目標値 y と、2 つの正の形状パラメータ a・b を入力してください。正規化モードでは y は 0 と 1 の間でなければなりません。正規化していないモードでは、y は 0 と完全ベータ関数の値 \(B(a,b)\) の間に収める必要があり、その \(B(a,b)\) の値は結果欄に表示されます。a と b はいずれも厳密に 0 より大きい値にしてください。
計算式とアルゴリズム
完全ベータ関数は $$B(a,b)=\exp\!\left(\ln\Gamma(a)+\ln\Gamma(b)-\ln\Gamma(a+b)\right)$$ で求めます。目標値はまず正規化確率 p に変換されます(\(I_x\) の場合は \(p=y\)、\(B_x\) の場合は \(p=y/B(a,b)\))。順方向の \(I_x(a,b)\) は連分数展開(修正レンツ法による反復)で評価し、安定性を高めるために標準的な引数の対称化テクニックを用います。そして方程式 $$x = I^{-1}_{\text{y}}\!\left(\text{a},\ \text{b}\right) \quad\Longleftrightarrow\quad I_x\!\left(\text{a},\text{b}\right) = \text{y}$$ を区間 [0,1] 上の二分法で解きます。この方法は必ず収束することが保証されています。
計算例
正規化モードで y = 0.3、a = 1、b = 3 とします。a = 1 のときは恒等式 \(I_x(1,b)=1-(1-x)^{b}\) が成り立つので、\(1-(1-x)^{3}=0.3\) から \((1-x)^{3}=0.7\) となり、\(1-x = 0.887904\)、すなわち x ≈ 0.1120959 が得られます。同じ y, a, b で正規化していないモードを使うと、\(B(1,3)=1/3\) なので \(p=0.3/(1/3)=0.9\) となり、\((1-x)^{3}=0.1\) から x ≈ 0.5358407 となります。
よくある質問
\(B_x\) と \(I_x\) の違いは何ですか? \(I_x\) は \(B_x\) を完全ベータ関数 \(B(a,b)\) で割ったものです。そのため \(I_x\) は常に 0 から 1 の範囲をとり、\(B_x\) は 0 から \(B(a,b)\) の範囲をとります。
なぜ a と b は正でなければならないのですか? 定義となる積分は \(a>0\) かつ \(b>0\) のときにのみ収束するためです。それ以外ではガンマ関数も積分も定義されません。
結果の精度はどのくらいですか? 求根アルゴリズムは倍精度(有効数字約 15 桁)まで収束します。これは統計的な分位点計算には十分すぎる精度です。