本文へスキップ

フィッシャーの正確確率検定計算ツール

2×2表の4つの度数を入力すると、フィッシャーの正確確率検定のp値が得られます。両側と片側の2種類です。あわせて、標本のオッズ比、Rの条件付き最尤オッズ比とその正確な信頼区間、周辺度数が同じすべての表の確率が表示されます。カイ二乗検定の期待度数が小さすぎるときに使う検定です。無料で、登録は不要です。

4つの度数を入力します。行(群)と列(結果)の名前を変えると、結果にラベルが付きます。

合計
—
—
合計———

オッズ比は、行1の列1のオッズと、行2の列1のオッズを比べます。

4つのセルすべてに整数の度数を入力してください。0も使えます。

フィッシャーの正確確率検定計算ツールの使い方

  1. 1. 表を入力します。 群を行に、結果を列に置き、4つの度数を入力します。行と列の名前を変えると、結果が自然に読めるようになります。
  2. 2. 対立仮説を選びます。 両側は、オッズ比が1と異なるかを問います。片側の2つは、行1の列1の結果のオッズが行2より低い(< 1)か、高い(> 1)かを問います。
  3. 3. αと信頼水準を選びます。 判定とオッズ比の区間のために選んでください。
  4. 4. 結果を読み、報告します。 結果には3つのp値、両方のオッズ比、正確な区間、周辺度数が同じすべての表の一覧、計算過程、APA形式の一行が表示されます。

正確なp値の求め方

セルを、1行目はaとb、2行目はcとdと名付けます。フィッシャーの検定では、すべての行と列の合計を固定したものとして扱います。それが決まると、左上の度数aが表全体を決定します。帰無仮説(関連がないこと)のもとで、aは超幾何分布に従います:P(a) = C(a + c, a) × C(b + d, b) / C(N, a + b)。ここでC(n, k)は組み合わせの数です。このツールは、aが取りうるすべての値と、その確率を一覧表示します。

  • 片側p値は、1つの裾の確率を足し合わせたものです。オッズ比が1未満ならP(X ≤ a)、1より大きいならP(X ≥ a)です。
  • 両側p値は、観察した表と同じか、それより起こりにくくない表すべての確率を足し合わせたものです。これはRやSciPyが使う方法です。このツールもRと同じく相対許容差10⁻⁷を使います。これにより、正確な計算では同じ確率になる表が、丸め誤差によって分かれることを防ぎます。
  • 小さいほうの片側p値を2倍にするのは古い近道で、分布が偏っている場合には異なる答えになることがあります。重要な場合は、使った両側の方法を書いてください。

具体例:個別指導と合格率

例を試すを押すと、小さな研究が読み込まれます。個別指導を受けた10人のうち8人が合格し、2人が不合格でした。個別指導を受けなかった6人のうち1人が合格し、5人が不合格でした。16人のうち、期待度数の3つは5未満なので、カイ二乗近似は信頼できません。周辺度数から a + b = 10、a + c = 9、N = 16 と決まるので、aは3から9までの値しか取れません。

フィッシャーの正確確率検定の手順

P(a = 8) = C(9, 8) × C(7, 2) / C(16, 10) = 9 × 21 / 8008 = .0236

a = 8 より起こりにくくない表:a = 3 (.0105)、a = 8 (.0236)、a = 9 (.0009)

両側p = .0105 + .0236 + .0009 = .0350

標本のOR = (8 × 5) / (2 × 1) = 20;条件付き最尤推定 = 15.47、95%信頼区間 [1.01, 1059.64]

APA形式では次のようになります:個別指導を受けた学生は(10人中8人)、受けなかった学生(6人中1人)より合格しやすかった。フィッシャーの正確確率検定、p = .035、OR = 15.47、95%信頼区間 [1.01, 1059.64]。非常に広い区間が、この結果の正直な部分です。16人の学生では、データは影響がほとんどないものから非常に大きなものまでと両立します。

2つのオッズ比と、その違い

標本のオッズ比 ad / bc は、多くの教科書やSciPyの fisher_exact が報告するものです。Rの fisher.test は代わりに、条件付き最尤推定値を報告します。これは、観察された a が、非心超幾何分布のもとで期待値になるようなオッズ比です。正確な区間も同じ分布から作られます。2つの推定値は、大きな表ではよく一致し、小さな表では離れていきます(例では20と15.47)。正確な区間を報告するときは、条件付き推定値を報告してください。そうすれば、推定値と区間が同じモデルから得られたものになります。セルに0があると、標本のオッズ比は0または無限大になりますが、区間は片方の端が有限のままです。

よくある質問

カイ二乗検定の代わりに、フィッシャーの正確確率検定を使うのはいつですか?
2×2表の期待度数が小さいときです。一般的な目安は、どれかの期待度数が5未満の場合です。カイ二乗検定は大標本の近似に頼っており、そのような場合には成り立ちにくくなります。フィッシャーの検定は確率を正確に計算します。度数が大きい場合は両者のp値は近く、どちらを使ってもかまいません。
フィッシャーの正確確率検定は、2×2より大きい表でも使えますか?
考え方はr×c表に拡張されています(Freeman–Haltonの拡張)が、このツールは2×2表だけを扱います。度数が小さい大きな表では、正確検定やモンテカルロ検定を提供する統計ソフトを使うか、少ないカテゴリーをまとめてカイ二乗検定を使ってください。
フィッシャーの正確確率検定は、なぜ保守的と呼ばれるのですか?
周辺度数を固定して扱うため、検定統計量が取りうる値は少数に限られます。そのため、実際の偽陽性率は、設定したα以下になることが多いです。これを理由に、ミッドp値や、バーナードの検定のような非条件付き検定を好む統計家もいます。とはいえ、フィッシャーの検定は標準的で広く受け入れられた選択です。
フィッシャーの正確確率検定をAPA形式で報告するにはどうすればよいですか?
各群の度数または割合を示し、検定名を書き、p値と効果量とその区間を報告します:フィッシャーの正確確率検定、p = .035、OR = 15.47、95%信頼区間 [1.01, 1059.64]。p と OR は斜体にします。報告すべき検定統計量や自由度はありません。
ソフトウェアで両側p値が違うのはなぜですか?
一部のプログラムや教科書は、周辺度数が同じ表のうち、観察したものより起こりにくくない表の確率を足し合わせる代わりに、小さいほうの片側p値を2倍にします。RとSciPyは、このツールと同じく足し合わせるので、結果が一致するはずです。2倍する方式を使っている場合は、このツールで表示された小さいほうの片側p値の2倍と比べてください。確率がほぼ同じ場合の扱いによって、わずかな違いが生じることもあります。
フィッシャーの検定のオッズ比は何を意味しますか?
行1の列1の結果のオッズを、行2の同じオッズと比べたものです。オッズ比が1なら関連がないことを意味します。1より大きければ行1のオッズが高く、1より小さければ低いことを意味します。表が小さいため、必ず信頼区間も読んでください。オッズ比がどの程度正確にわかっているかを示します。

関連ツール

統計計算ツールのその他のツール