「Fisherの正確検定」などの正確検定が終了しない

[OS] ALL
[リリース] 6.11以降
[キーワード] BASE, STAT, FREQ, NPAR1WAY, EXACT, MAXTIME, MC

[質問]

FREQプロシジャやNPAR1WAYプロシジャで、EXACTステートメントを使用して正確検定(exact test)を行なうと、処理が戻ってこないときがあります。どのような対処方法がありますか?

[回答]

FREQプロシジャやNPWAR1WAYプロシジャでは、周辺度数を固定した上で、全組み合せ数を数え上げてp値を計算しています。オブザベーション数や分割表の大きさ、または群の数などにも依存しますが、この計算には莫大な計算量を必要とすることがあります。(※ 注1)
また、使用しているシステムのスペック(CPUのクロック速度、利用可能なメモリ領域など)や、同時に行なっている他のタスクの影響を受けるため、どの程度の計算時間になるかを事前に予測することは極めて困難です。

正確検定を行なった際、計算が続いたままで処理が戻ってこないときには、割り込み(または強制終了)をかけて処理を中断させてください。
たとえば、Windows上で解析を行なっているケースでは、メニュー上の「割り込み」ボタンを押してください。

なお、SAS 8以降では、FREQプロシジャやNPAR1WAYプロシジャにおいて、事前に次のような工夫を行なうことができます。

  1. MAXTIME= オプションによって、処理時間の上限を設定する。(※ 注2)
  2. MCオプションを使用して、乱数シミュレーションによりp値を求める。
注1 これらのプロシジャでは、2×2表に対するFisherの正確検定を除いて、総オブザベーション数が32767よりも多い場合には正確検定は実行されません。
注2 各プロシジャが採用しているアルゴリズム上、計算処理が設定した時間通りに終了することは保証されません。このオプションは、目安としてご利用ください。