フィッシャーの正確確率検定 計算ツール
2×2分割表の4つの度数を入力すると、両側・片側の正確な p値、オッズ比とその95%信頼区間、そのままコピーできる APA 7 形式の報告文を表示します。カイ二乗検定が使いにくい小標本向けで、計算はすべてブラウザ内で行われます。
| 統計量 | 値 |
|---|---|
| P値 | 0.054 |
| Left tail | 0.995 |
| Right tail | 0.027 |
| OR | 4.50 |
| 95% CI OR | [1.17, 17.37] |
APAレポート
Fisher's exact test, p = p = .054, OR = 4.50
データをアップロードし、統計・図・参考文献付き論文草稿を生成—無料プレビュー。
論文を生成使い方
1. **2×2分割表を入力**:4つのセルの度数(a, b, c, d)を入力するか、2つの二値変数を含む生データや CSV を読み込んでクロス集計させます。 2. **行と列に名前を付ける**(例:治療群/対照群、改善あり/改善なし)と、出力や APA の文章が自然になります。 3. **p値を読む**:正確な両側 p値と、両方向の片側 p値が表示されます。片側 p値はデータを見る前に方向を決めていた場合にだけ使います。 4. **オッズ比**とその95%信頼区間を確認します。 5. **APA 7 の報告文をコピー**します。
計算は端末内で行われ、入力した度数はどこにも送信されません。
フィッシャーの正確確率検定とは・使う場面
フィッシャーの正確確率検定(Fisher's exact test)は、2つの二値変数に関連があるかを調べる検定です。たとえば治療群と対照群で改善した患者の割合が異なるかを検討します。
カイ二乗検定と違い、大標本による近似を使いません。行和と列和を固定したうえで、超幾何分布からあり得るすべての表の確率を正確に計算し、観測された表と同じかそれ以上に極端な表の確率の合計を p値とします。
次のような場合に使います。
- **2×2分割表**の度数データである
- 標本が**小さい**、または**期待度数**が5未満のセルがある([カイ二乗検定](/ja/tools/chi-square-calculator)が信頼できなくなる目安としてよく使われる基準)
- 小規模試験での有害事象のような、まれな事象を扱う
大標本ではカイ二乗検定とほぼ同じ結果になり、フィッシャーの検定もそのまま有効です(計算量が増えるだけです)。
前提条件
- **観測の独立性**:各対象はちょうど1つのセルに数えられる。同じ人の前後比較のような対応のあるデータには、マクネマー検定を使います。
- **2つの二値変数**による2×2の度数表であること。割合、平均、率ではなく度数を使います。
- **周辺度数の固定**:検定は行和と列和を条件とします。実際には一方の周辺度数しか計画で固定されていない場合にも広く使われ、そのぶんやや保守的になります。
最小サンプルサイズの条件はありません。それこそが「正確」検定である理由です。
計算式
分割表を次のように表します。
| | 結果あり | 結果なし | 合計 | |---|---|---|---| | 群 1 | a | b | a + b | | 群 2 | c | d | c + d | | 合計 | a + c | b + d | n |
周辺度数を固定したとき、ある表が得られる確率は超幾何分布に従います。
`P = [ (a+b)! (c+d)! (a+c)! (b+d)! ] / [ a! b! c! d! n! ]`
**片側 p値**:観測された表と、仮説の方向により極端なすべての表の P の合計。
**両側 p値**:観測された表の確率以下の確率をもつすべての表の P の合計(R や SciPy が採用している標準的な方法)。
**標本オッズ比**:`OR = (a · d) / (b · c)`
**95%信頼区間(Woolf の対数法)**:`exp[ ln(OR) ± 1.96 · √(1/a + 1/b + 1/c + 1/d) ]`
いずれかのセルが0だと標本オッズ比は0か無限大になり、対数による区間には補正(各セルに0.5を加えるのが一般的)が必要です。
計算例
小規模なパイロット研究で、患者10人が新しい治療を、10人が標準治療を受けました。
| | 改善あり | 改善なし | 合計 | |---|---|---|---| | 新治療 | 9 | 1 | 10 | | 標準治療 | 3 | 7 | 10 | | 合計 | 12 | 8 | 20 |
「改善なし」のセルの期待度数は4で5を下回るため、フィッシャーの正確確率検定が適しています。
結果(Python と SciPy で検算済み):
- **両側 p = .020**(0.0198)
- 片側 p(新治療のほうが良い)= .0099
- **オッズ比 = 21.0**、95% CI(Woolf)**[1.78, 248.11]**
新治療で改善するオッズは標準治療の21倍でした(9:1 対 3:7)。患者が20人しかおらず、1つのセルが1例のみのため、信頼区間は非常に広くなっています。データは中程度の効果とも、きわめて大きな効果とも矛盾しません。
比較として、連続性補正なしのピアソンのカイ二乗検定では χ²(1) = 7.50、p = .006 となり、正確な p値よりかなり小さくなります。この標本サイズでは近似が当てにならないことがわかります。
なお、R の `fisher.test()` は別のオッズ比、すなわち条件付き最尤推定値(この例では17.27、正確な95% CI [1.39, 1047.84])を出力します。どちらも妥当なので、どちらを報告したかを明記しましょう。
結果の解釈
- **p値**:関連がないという帰無仮説のもとで、周辺度数を固定したときに観測と同じかより極端な表が得られる確率です。この例では p = .020 なので、α = .05 で改善率に差があるといえます。
- **両側と片側**:既定は両側 p値です。片側検定は方向を事前に決めていた場合にのみ正当化され、有意でない両側の結果を救うために使うことはできません。
- **オッズ比**:OR > 1 なら1行目のほうが結果のオッズが高く、OR < 1 なら低く、OR = 1 なら関連なしです。信頼区間が1を含まなければ有意な結果と一致します。
- **信頼区間の幅**:小標本ではかなり広くなりがちです。推定の精度がわかるよう必ず報告しましょう。
- **保守的な検定**:p値が離散的に変化するため、実際の第1種の過誤率は名目上の α より低くなるのが普通です。
相対リスクやリスク差も必要なら、[オッズ比 計算ツール](/ja/tools/odds-ratio-calculator)をご利用ください。
APA 7 形式での報告
検定名、各群の度数または割合、正確な p値、オッズ比とその信頼区間を記載します。
> 改善は標準治療(10人中3人、30%)より新治療(10人中9人、90%)で多かった。フィッシャーの正確確率検定の結果、有意な関連が認められた,*p* = .020(両側), *OR* = 21.0, 95% CI [1.78, 248.11]。
検定統計量や自由度は報告不要です。p値が両側か片側かを明記してください。
この分割表がより大きなデータセットの一部であれば、Data2Paper の[論文生成](/ja/generate-paper)で CSV や Excel からすべての分析を行い、論文ドラフトまで作成できます。前半は無料でプレビューできます。
よくある間違い
- **「期待度数5未満」の基準を観測度数に当てはめる**:この基準は周辺度数から計算した期待度数についてのものです。
- **度数ではなく割合を入力する**:検定には生の度数が必要です。
- **対応のあるデータにフィッシャーの検定を使う**:同じ対象の前後比較にはマクネマー検定を使います。
- **データを見てから片側 p値に切り替え**、.05 を下回らせる。
- **p値だけを報告する**:オッズ比、各群の割合、信頼区間も記載しましょう。
- **オッズ比をリスク比と呼ぶ**:結果がよく起こる場合、OR は相対リスクよりずっと大きくなることがあります(この例では RR = 0.9 / 0.3 = 3.0 に対し OR = 21.0)。
- **小標本で有意でない結果を「効果なし」と解釈する**:信頼区間を確認しましょう。