マクネマー検定
対応のある件数59、6、16、80では、マクネマー検定は不一致の22組だけを使い、p値は0.05をわずかに上回るため、5%水準では有意ではありません。連続性補正は初期設定で有効です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 59
- B
- 6
- C
- 16
- D
- 80
- N
- 161
- 不一致ペア数
- 22
- カイ二乗
- 3.6818181818
- P値
- 0.0550088336
マクネマー検定は、対応のある二つの二値分類が系統的に食い違うかどうかを問います。同じ対象を二度観察します。治療の前後、同じ症例を採点する二人の評価者、同じ患者への二つの診断検査などです。そのペアを2x2表にまとめます。一致ペアは対角に座り帰無には寄与せず、慣例で b と c と呼ばれる二つの不一致セルだけがカイ二乗統計量に入ります。本計算機はその対応表の非負整数セルカウント四つを受け取り、負のカウントを黙って切り捨てず拒否し、自由度1のマクネマーカイ二乗統計量と対応する上側尾のp値を返します。連続性補正は既定でオンで、よく使う統計パッケージのエドワーズ形式に合わせます。オフにすれば、不一致差の二乗を不一致合計で割る1947年の元の比に戻せます。
対応のある2x2表でのマクネマー検定の定義
観測した四つのペアカウントを教科書どおりに書いてください。左上 a は第一がはい・第二がはい、右上 b は第一がはい・第二がいいえ、左下 c は第一がいいえ・第二がはい、右下 d は第一がいいえ・第二がいいえです。セル a と d は一致です。
これらの対象は分類が変わっていないので、周辺同質性の検定から打ち消されます。セル b と c が不一致ペアのカウントで、マクネマーの議論はその和を条件にします。
陽性結果の二つの周辺確率が等しいという帰無の下では、各不一致ペアが b に入るか c に入るかは等確率なので期待カウントは等しく、ピアソン残差は自由度1のカイ二乗(b 引く c)の二乗を(b 足す c)で割った値に潰れます。エドワーズの連続性補正は、b と c の絶対差が1より大きいときに既定で適用され、その分子を絶対差から1を引いた値の二乗に置き換えます。
統計量は少し小さくなり、広く使われる統計パッケージの既定です。p値は自由度1のカイ二乗分布の上側尾、同等に統計量の半分の平方根の相補誤差関数であり、ここでは正規化された不完全ガンマで計算するため印刷表は不要です。b 足す c がゼロなら比は未定義で、p値を1と捏造せず要求を拒否します。
各手順は決定的な浮動小数演算です。
送る内容と返る内容
必須の非負整数セルカウントを四つ送ります。名前は a, b, c, d です。false にすると補正なしの1947年統計量になります。
分割表は負の度数を持てないため、負のカウントは拒否されます。マクネマー検定は離散ペアカウントに定義され、黙って丸めた測定値には定義されないため、非整数も拒否されます。不一致セルがどちらもゼロなら統計量は未定義で、ゼロ除算せず要求は失敗します。
典型確認は、五十九・六・十六・八十の対応表(連続性補正後のカイ二乗は二十二に対する八十一)と、必ず失敗すべき意図的な負セルです。宿題とデモには無料ブラウザフォームを、多くの対応2x2検定には同一契約をスクリプトから呼び出してください。
実務で対応マクネマーカイ二乗が現れる場面
入門の生物統計や高校の統計では、同じ対象の治療対対照、二回の来院での曝露対非曝露、治療後の回復対未回復といった前後の二値演習が絶えず出ます。独立性のカイ二乗検定は二つの周辺を無関係な標本として扱い、対応のあるt検定は存在しない数値の変化点を要求します。
臨床と疫学のチームは、マッチした症例対照ペア、同じ患者への二つの診断検査、前後の有害事象フラグについて、二つの対応周辺が異なるかという科学的問いにマクネマーのカイ二乗を今も報告します。品質と信頼性の技術者は工程変更の前後で同じ単位の合格不合格を比べ、対応を無視する非対応の二割合z検定ではなく不一致ペアの統計量を必要とします。
同じ項目をはい・いいえで採点する二人の評価者は、非対角セルがまさにマクネマー入力になる対応2x2を作ります。非対応2x2のフィッシャー正確確率検定、数値の前後測定の対応t検定、対応平均差の信頼区間が後で必要なら、このマクネマー検定計算機のページを詰め込むのではなく、別の検索意図とランディングとして扱ってください。
活用例
対応2x2の宿題チェック
学習者と採点者は、カイ二乗表を引いたり不一致カウントを取り違えたりせず、整数セル四つからマクネマーカイ二乗と自由度1のp値を確かめます。
マッチした臨床・診断表
分析者は、同じ患者への二つの検査や症例対照ペアなど、対応する二つの二値周辺が異なるかを、帰無に効くのが b と c だけのときに検定します。
同じ単位の前後合格判定
技術者は工程変更の前後で同一項目の二値分類を比べ、不一致ペアのカイ二乗とp値を公表します。
よくある質問
2x2表のどのセルが統計量に入りますか?
不一致ペアのカウント b(第一がはい・第二がいいえ)と c(第一がいいえ・第二がはい)だけです。一致セル a と d は応答と総計 n にエコーされますが、カイ二乗からは打ち消されます。
連続性補正は適用されますか?
既定でははいです。 correction が true で |b−c| が1より大きいとき、エンジンはエドワーズ形式 (|b−c|−1)²/(b+c) を使います。元の (b−c)²/(b+c) にするには correction を false にしてください。
セルが負または非整数だとどうなりますか?
マクネマー検定は非負整数のペアカウントに定義され、分数や負の度数は丸めや切り捨てではなく拒否されます。
フィッシャー正確検定や対応t検定と何が違いますか?
フィッシャー正確確率検定は独立標本の非対応2x2を扱います。対応t検定は数値の前後測定が必要です。マクネマー検定は同じ対象の二つの対応二値分類のカイ二乗です。
不一致のペアが1組もない場合はどうなりますか?
bとcがどちらも0だと、統計量の分母が0になり計算できません。その場合はp値を1と決めつけず、入力した表を受け付けない仕組みになっています。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/mcnemars-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":59,"b":6,"c":16,"d":80}'const res = await fetch("https://api.kit.forhosting.com/stat/mcnemars-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 59,
"b": 6,
"c": 16,
"d": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/mcnemars-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 59,
"b": 6,
"c": 16,
"d": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/mcnemars-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":59,"b":6,"c":16,"d":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":59,"b":6,"c":16,"d":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/mcnemars-test", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 59,
"b": 6,
"c": 16,
"d": 80
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.mcnemars_test",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_cell | 10000000 |
max_n | 40000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
成功したAPI呼び出しは公開ベースの1件あたり$0.002で課金され、無効入力は課金されません。
送る内容と返る内容
エンジンは行列向け別名 n11, n12, n21, n22 および a11, a12, a21, a22 も受け付けるので、数値行列を既に持つスクリプトがフィールド名を変える必要はありません。任意のブール値 correction は continuity_correction や correct でも受け付け、既定は true でエドワーズ形式を選びます。各カウントは JSON 整数でも数字列でも構いません。分数、ブール、NaN、Infinity、空文字、欠落フィールドは、該当セルを名指しする invalid_input で失敗します。成功時の応答は四セル、総計 n、不一致合計 n_discordant、小数12桁に丸めた chi_square、自由度1の p_value、1に等しい df、適用した correction フラグ、慣例のalphaが0.05の significant_at_05、手法ラベル、短い formula 文字列をエコーします。成功したAPI料金は公開ベースの1件あたり$0.002で、検証失敗は残高を消費せず、数値を無理に出すためにカイ二乗の代用品を捏造することもありません。
実務で対応マクネマーカイ二乗が現れる場面
きれいなJSONを返す信頼できる単一の基準があれば、自由度1の尾を手で引かずに採点が速くなります。本能力は純粋なparseエンジンのため、API料金は成功1件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
技術的な質問
料金はいくらですか。
ブラウザツールは無料で手元で動きます。API要求は成功1件あたり$0.002のKIT前払い残高を使い、無効入力は課金されません。