順位データのケンドール一致係数 W 計算機
ケンドールの W は、2人以上の評価者が同じ項目群をどの程度一貫して順位付けしたかを測る指標です。評価者ごとに1行、項目ごとに1列を入力すると、0から1までの係数を返します。0は全体的な一致がない状態、1は完全一致を示します。同順位は平均順位として扱い、標準的な同順位補正を適用し、同順位の有無も表示します。専門家委員会、審査、選好調査、順位データの信頼性確認にご利用いただけます。
無料で実行
順位行列を正しく配置します
データは長方形の行列として入力してください。各行は1人の評価者、各列は全行で共通する同一項目、各セルはその項目の順位です。したがって列順を統一する必要があります。項目数が n で同順位がなければ、通常は各行に 1 から n までの整数が1回ずつ入ります。1を最高または最低のどちらにしても構いませんが、全評価者で方向をそろえてください。評価者と項目はいずれも2以上必要です。全行は同じ長さで有限数のみを含み、合計が n(n+1)/2 でなければなりません。この確認により、転記ミス、項目漏れ、順位へ変換されていない尺度を検出できます。後から監査できるよう、項目名の対応表も別途保存してください。
同順位には平均順位を使用します
複数項目を同等と判断した場合は、それらが占める位置の平均を各項目に割り当ててください。2位と3位を2項目が共有するなら、両方を 2.5 とし、次を 4 とします。両方を 2 にして次を 3 にすると合計が変わり、標準順位になりません。本計算機は重複順位を検出し、評価者の識別力を下げる同順位についてケンドールの分母を補正します。全評価者が全項目を同順位にすると順位情報がないため、W は未定義となり入力エラーを返します。同順位が丸め処理や不完全な評価ではなく、真に等しい判断を表すこともご確認ください。小数の平均順位は整数へ丸めず、そのまま保持してください。
背景を踏まえて一致度を解釈します
ケンドールの W は 0 から 1 の範囲です。1に近いほど項目の相対順位が似ており、0に近いほど共通の順序が少ないことを示します。ただし記述統計量なので、弱い、中程度、強い一致を自動的に区切る普遍的なしきい値はありません。妥当な期待値は評価者数、項目数、判断の難しさ、決定の重要性で異なります。また、全員が一致しても根拠が不適切な場合があるため、W は合意した順序の正しさを保証しません。元の順位行列、評価者情報、文書化した手順と併せてご判断ください。推測統計上の有意性が必要なら、適切なカイ二乗検定または置換検定を別途実施してください。再現性のため、行列サイズと同順位の扱いも報告します。
活用例
専門家委員会を確認する
提案、リスク、研究優先度を専門家が一貫して順位付けしているか測定します。
審査結果を監査する
各審査員の順位を総合する前に、審査員間の一致度を定量化します。
選好の信頼性を評価する
製品、概念、候補者、政策案について、反復または並行して得た順位を比較します。
よくある質問
利用料金はいくらですか?
API は1回 $0.002 です。ブラウザーでは無料で実行できます。
0と1は何を意味しますか?
0は順位和に全体的一致がない状態、1は評価者の完全一致を表します。
同順位を含められますか?
はい。平均順位を入力すると、標準的な同順位補正が自動適用されます。
全行を同じ長さにする理由は何ですか?
全評価者が、各列で一貫して識別された同じ項目群を順位付けする必要があるためです。
p値も返されますか?
いいえ。ケンドールの W のみを返します。有意性には研究設計に適した別の検定が必要です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/kendall-w \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rankings":[[1,2,3,4],[1,2,3,4],[2,1,3,4]]}'const res = await fetch("https://api.kit.forhosting.com/stat/kendall-w", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rankings": [
[
1,
2,
3,
4
],
[
1,
2,
3,
4
],
[
2,
1,
3,
4
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/kendall-w",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rankings": [
[
1,
2,
3,
4
],
[
1,
2,
3,
4
],
[
2,
1,
3,
4
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/kendall-w", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rankings":[[1,2,3,4],[1,2,3,4],[2,1,3,4]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rankings":[[1,2,3,4],[1,2,3,4],[2,1,3,4]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/kendall-w", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"rankings": [
[
1,
2,
3,
4
],
[
1,
2,
3,
4
],
[
2,
1,
3,
4
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.kendall_w",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_raters | 500 |
max_items | 500 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |