ボンフェローニ補正計算機
有意水準0.05を10回の比較で分けると、1回あたりの基準は0.005です。元の水準と予定している検定の数を入力し、結果を見る前に各p値をこの厳しい基準と比べてください。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- アルファ
- 0.05
- 比較数
- 10
- 調整後α
- 0.005
同じ問いの家族に対して複数の仮説検定を行うと、偽陽性を少なくとも一つ出す確率は、比較を足すたびに大きくなります。ボンフェローニ補正は、その問題への古典的で保守的な答えです。元の家族単位の有意水準アルファを比較回数mで割り、個々の検定をより厳しいしきい値「アルファ割るm」で判定します。このボンフェローニ補正計算機は、その二つの数を受け取り、検定ごとの打ち切りとして使うべき調整後の有意水準を返します。比較回数は正の整数でなければなりません。
ボンフェローニ補正の意味と応答に含まれる内容
家族単位の誤り率とは、計画した一連の検定のうち少なくとも一つの第1種の過誤を犯す確率です。どの比較も未調整のアルファで判定すると、その家族単位の確率はおおむね「1引く(1引くアルファ)のm乗」のように増え、五パーセントで独立した十回の検定を行うだけでも、誤った星印が出る確率はすでに四十パーセントを超えます。
カルロ・エミリオ・ボンフェローニの不等式は、独立性を仮定しない簡単な上界を与えます。各比較をアルファ割るmで検定すれば、家族単位の率をアルファ以下に保てます。その一回の除算が、この計算機の数学的な核のすべてです。
ゼロよりわずかに大きく一以下の有限な元の有意水準と、正の整数の比較回数を送ると、エンジンは調整後アルファに加え、整えた入力、手法名 Bonferroni、数式文字列 alpha-adj はアルファ割るm を返します。
教科書の典型例は、五パーセントを十比較で割ると調整しきい値が〇・五パーセント、一パーセントを五比較で割ると〇・二パーセントになる、というものです。比較が一つだけのときは成功です。割るものが無いので、調整後アルファは元のアルファと一致します。
この手続きは意図して保守的です。検定間の依存は推定せず、Holm–Bonferroni のようにp値を順位付けせず、Tukey HSD のようなスチューデント化された範囲の事後検定でもありません。それらは別の検索意図と別のランディングです。
課題・プロトコル・査読者がボンフェローニで調整した有意水準を明示的に求めたとき、計画した検定家族の横に書くしきい値が、ここで得られます。
実務でボンフェローニ調整アルファが現れる場面
高校・大学の統計の授業では、多重比較の演習、計画対比の記述、「m回の検定に合わせてアルファを調整せよ」という文章題が絶えず出ます。臨床や実験室のプロトコルでは、少数の主要評価項目が五パーセントの家族単位率を共有しなければならないとき、今も分析計画にボンフェローニと書きます。
調整しきい値は各評価項目の横に置くべきで、草稿のたびに手計算し直すべきではありません。対照に対して複数の対比較を行う製品分析チームは、p値を見る前に計画した家族サイズを検定ごとの打ち切りへ変換できます。それが誠実な作業順です。
何千もの独立検定を課すゲノムやスクリーニングのノートは、のちに偽発見率の制御へ移る場合でも、保守的な基準線としてボンフェローニを教えます。α割るm の決定的な補助があれば、その基準は固定できます。検証失敗は残高を消費しません。
公開された上限内で依頼し、丸めた調整アルファをテストに固定すれば、宿題、LMSプラグイン、エッジワーカー向けに再現可能なボンフェローニしきい値が得られ、自前の統計ライブラリを立てる必要はありません。
のちにHolmの下降法、Šidák、Tukey HSD、Benjamini–Hochberg のFDRが要るなら、このボンフェローニ補正のページを膨らませず、別の検索意図と別のランディングとして扱ってください。
活用例
教室での多重比較ドリル
学習者に家族単位のアルファと計画した検定回数を送らせ、ボンフェローニの打ち切りがアルファ割るmに一致することを、比較が一つの端点も含めて確かめます。
プロトコルと解析計画のしきい値
あらかじめ決めた家族サイズを、臨床・実験室・製品実験の記述に置くべき評価項目ごとの有意水準へ変換します。
採点フィクスチャとパイプライン検査
整数でない比較回数を拒否しなければならない単体テスト、LMS自動採点、一括ノート向けに、決定的な期待調整アルファを生成します。
よくある質問
比較回数が正の整数でないとどうなりますか?
ゼロ、負の数、分数、非数値テキストは比較回数ではなく、課金されません。
Tukey HSD や Holm–Bonferroni と同じですか?
違います。 このページはアルファをmで割るだけです。Tukey HSD は群平均に対するスチューデント化範囲の事後検定、Holm はp値を順位付けします。別の道具です。
検定を何回も行うとなぜ補正が必要なのですか?
検定を1回増やすたびに、少なくとも1回は偽陽性が出る確率が上がるためです。有意水準で割ることで、検定全体の誤りの確率を元の水準以下に保てます。
ボンフェローニ補正は検定が独立していることを前提にしますか?
いいえ。ボンフェローニの不等式は、検定どうしが独立でなくても、全体の偽陽性の確率を選んだ水準以下に抑えます。検定間の関係を推定しないため、慎重な方法とされます。
比較が1回だけのときはどうなりますか?
調整後の有意水準は元の水準と同じになります。分ける必要がないためで、1回だけでも正しい入力として結果が返ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/bonferroni-correction \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"alpha":0.05,"comparisons":10}'const res = await fetch("https://api.kit.forhosting.com/stat/bonferroni-correction", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"alpha": 0.05,
"comparisons": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/bonferroni-correction",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"alpha": 0.05,
"comparisons": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/bonferroni-correction", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"alpha":0.05,"comparisons":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"alpha":0.05,"comparisons":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/bonferroni-correction", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"alpha": 0.05,
"comparisons": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.bonferroni_correction",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_comparisons | 1 |
max_comparisons | 1000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
分数・ゼロ・負の数・非数値の文字列は、黙って切り下げたり推測したりせず、invalid_input で拒否します。成功したAPI呼び出しは$0.002で課金され、不正な入力は課金されません。
入力契約、別名、誤り時の振る舞い
一つ目は元の家族単位有意水準 alpha です。衝突する二つの数を誤って送らないよう、それらの名前のうち一つだけを指定してください。解析後、エンジンはゼロより真に大きく、かつ高々一である値を要求します。この検査は意図的です。 〇・〇五ではなく五のような生の百分率は表計算のよくある誤りで、切り詰めれば上流の桁ずれを隠してしまいます。comparisons は正の整数でなければなりません。宿題やプロトコル確認には無料のブラウザフォームを使い、採点用フィクスチャや分析パイプラインでボンフェローニしきい値をまとめて要るときは、同じ契約をスクリプトから呼び出してください。必須フィールドを二つ持つJSON本体をPOSTしてください。アルファはJSONの数値でも数値文字列でも構いません。空文字、欠落、非数値テキスト、NaN、Infinity は、フィールド名を添えた invalid_input で失敗します。二つ目のフィールドは同時検定の回数 comparisons(m)で、別名は m、n_comparisons、num_comparisons、k です。ゼロ、負の数、二点五のような分数、整数でない指数表記、公開上限の十億を超える値は、フィールド名を挙げて正の整数が必要だと述べるメッセージで失敗します。これが能力の契約です。 整数でない比較回数を黙って切り下げたりはしません。成功したAPI呼び出しの料金は公開ベース$0.002/件です。検証失敗は前払い残高を消費せず、KITカタログの他項目と同じ invalid_input を返します。
実務でボンフェローニ調整アルファが現れる場面
整ったJSONを返す信頼できるオラクルは、採点・デモ準備・対話型授業の設計を速くします。この能力は純粋なparseエンジンなので、成功した呼び出しは毎回、モデルトークンも外向きネットワークも無しで公開ベース料金$0.002です。
技術的な質問
ボンフェローニで調整した有意水準とは何ですか
α_adj = α / m。元の家族単位アルファと正の整数の比較回数を送ると、APIは検定ごとのしきい値 adjusted_alpha を返します。
アルファ 0.05 を 10 比較で割る例は正しいですか
はい。その古典例は adjusted_alpha 0.005 を返します。比較が一つだけのときは、元のアルファがそのまま返ります。
この補正の料金はいくらですか
ブラウザの道具は無料で、端末上で動きます。API要求は成功一件あたり$0.002のKIT前払い残高を使い、不正な入力は課金されません。