Skip to main content
QUICK REVIEW

[論文レビュー] Numerically more stable computation of the p-values for the two-sample Kolmogorov-Smirnov test

Thomas Viehmann|arXiv (Cornell University)|Feb 16, 2021
Statistical Mechanics and Entropy参考文献 1被引用数 4
ひとこと要約

この論文は、標準の再帰関係を補正確率 $ C_{i,j} $ を用いて再定式化することで、2標本Kolmogorov-Smirnov検定における正確なp値を数値的に安定して計算する手法を提案する。この手法は浮動小数点演算における壊滅的キャンセルを回避する。新しい再帰関係は、$ C_{i,j} $ を隣接する値の重み付き平均として計算し、誤差の安定した伝播を保証することで、大規模な標本サイズに対しても正確なp値推定を可能にする。

ABSTRACT

The two-sample Kolmogorov-Smirnov test is a widely used statistical test for detecting whether two samples are likely to come from the same distribution. Implementations typically recur on an article of Hodges from 1957. The advances in computation speed make it feasible to compute exact p-values for a much larger range of problem sizes, but these run into numerical stability problems from floating point operations. We provide a simple transformation of the defining recurrence for the two-side two-sample KS test that avoids this.

研究の動機と目的

  • 浮動小数点演算による数値的不安定性の問題を解消すること。これは、2標本Kolmogorov-Smirnov検定のp値計算における既存実装で見られる問題である。
  • 従来の方法で安定して計算可能な標本サイズよりも大きな標本サイズに対しても、正確なp値を安定して計算可能にする。
  • 1 - P_2 を計算する標準のパスカウンティング再帰を、より頑健な代替手法に置き換えること。
  • 浮動小数点演算におけるキャンセルエラーを回避する、安定的かつ数値的に信頼性の高いp値計算アルゴリズムを提供すること。

提案手法

  • 論文は、$ C_{i,j} = 1 - A_{i,j}/\binom{i+j}{i} $ として定義される新しい $ C_{i,j} $ の再帰を導入する。これは、$ d $-コルリドアを出るパスの割合を表す。
  • 内部点では、$ C_{i,j} = C_{i-1,j} \frac{i}{i+j} + C_{i,j-1} \frac{j}{i+j} $ という再帰を用い、$ C_{i,j} $ が隣接する値の凸結合のまま保たれることを保証する。
  • 境界条件は、$ |i/m - j/n| \geq d $ の場合 $ C_{i,j} = 1 $ とし、$ i=0 $ または $ j=0 $ でコルリドア内にある場合は $ C_{i,j} = 0 $ と定める。
  • アルゴリズムは対角線に沿って反復し、コルリドア内での現在行と直前の行のみを追跡することで、メモリ使用量を削減する。
  • 動的計画法を用い、対角線に沿ってスライディングウィンドウを適用することで、効率的なメモリおよび計算使用を実現する。
  • 実装はPython、Numba、C++で行われ、SciPyのパスカウンティング法と性能比較が行われた。

実験結果

リサーチクエスチョン

  • RQ12標本KS検定における正確なp値計算のための、標準のパスカウンティング再帰の数値的に安定した代替手法を開発可能か?
  • RQ21 - P_2 の計算を補正確率 $ C_{i,j} $ に置き換えることで、浮動小数点演算における数値的安定性が向上するか?
  • RQ3新しい再帰関係は、大規模な標本サイズにおいて、キャンセルエラーをどれほど効果的に防止し、正確性を維持できるか?
  • RQ4新しい手法の性能は、SciPyの実装と比較してどの程度か?

主な発見

  • 提案された $ C_{i,j} $ の再帰関係は、1 - P_2 を計算する際の数値的不安定性を回避する。これは、浮動小数点演算におけるオーバーフローまたはアンダーフローのリスクを低減する。
  • 新しい手法では、$ C_{i,j} $ が隣接する値の重み付き平均として計算されるため、誤差の伝播が良好になり、壊滅的キャンセルを防止する。
  • 従来の手法が浮動小数点精度の限界により失敗する大規模な標本サイズに対しても、このアルゴリズムは高い正確性を維持する。
  • 単純な形では、SciPyの最適化されたパスカウンティング法よりも約4倍遅いが、優れた数値的安定性を提供する。
  • 対角線に沿ってスライディングウィンドウを追跡することで、メモリ使用量を効率的に削減し、ストレージ要件を低減する。
  • この手法は拡張可能であり、外部法への応用も可能であるが、これは今後の研究の未解決課題の一つである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。