階級データの最頻値計算
階級にまとめたデータで最も多い値を推定します。境界が0、10、20、30、40、度数が5、9、12、7なら、最頻値は20〜30の階級内の23.75です。計算の途中もすべて確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 階級境界
- 0, 10, 20, 30, 40
- 頻度
- 5, 9, 12, 7
- 計算モード
- 23.75
- 最頻階級の番号
- 2
- 階級幅
- 10
- 最頻階級の度数
- 12
階級データの最頻値計算機は、個々の観測値ではなく階級区間にまとめられたデータから、最も多い値を推定します。昇順の階級境界と各区間の度数をご入力ください。一意の最頻階級を特定し、その度数を直前と直後の階級の度数と比較して、区間内の最頻値を補間します。選択した階級、階級幅、隣接する度数、補間比率も返すため、結果の確認、説明、再現を簡単に行えます。
境界と度数を対応する順序で入力します
たとえば境界 0、10、20、30、40 は、階級 0–10、10–20、20–30、30–40 を表します。度数 5、9、12、7 は、同じ順序でこれらの階級に対応します。境界は有限数で厳密な昇順、度数は有限かつ非負でなければなりません。
区間だけでは観測値の集中箇所が分からないため、度数は省略できません。また、度数より境界がちょうど 1 つ多いことを必須とし、個数が誤った階級に暗黙に対応することを防ぎます。階級名や階級値ではなく、実際の階級境界をご使用ください。
表に 10–19 と 20–29 のような整数の両端を含む階級限界が示されている場合は、測定規則に合わせて 9.5–19.5 と 19.5–29.5 のような連続境界へ先に変換してください。これにより、階級幅と補間位置を正しく解釈できます。
補間式の意味を確認します
最頻階級は度数が最大の区間です。階級データの推定最頻値は L + (d1 / (d1 + d2)) × h で求めます。L は最頻階級の下側境界、h は階級幅、d1 は最頻度数から直前の度数を引いた値、d2 は最頻度数から直後の度数を引いた値です。
この比率により、推定値を下側境界と上側境界の間に配置します。直前の階級からの増加が直後の階級への減少より大きければ、結果は最頻区間の奥へ移動します。減少のほうが大きければ、下側境界に近くなります。
最頻階級が表の先頭または末尾にある場合、存在しない隣接度数は 0 とみなします。これは端の階級に用いられる一般的な規則であり、決定論的な推定が可能です。結果には最頻階級のインデックス、両境界、関係する 3 つの度数、階級幅、補間比率、最終的な最頻値を含めます。
中間値が示されるため、計算の監査や報告書での計算過程の提示にも利用できます。この方法は階級別の個数から山の位置を推定するものであり、階級化によって失われた正確な観測最頻値を復元するものではありません。
推定値の解釈と制約を理解します
返された最頻値は分布の局所的な山の推定値として扱い、元の観測値にその値が実在した証拠とはみなさないでください。階級化では個々の値を区間別の個数に置き換えるため、答えは選択した境界と、隣接度数の変化から最頻階級内の山を推定できるという仮定に依存します。区間が広いほど一般に推定は粗くなり、階級の分け方を変えると最頻階級が移る場合があります。
最大度数が同率の場合、単一の補間範囲を決められないためエラーになります。同率の山がある表は、多峰性として報告するか、最初の階級を任意に選ばず別の分析方法をご検討ください。すべて 0 の度数、下降または重複する境界、負の個数、有限でない数、配列長の不一致も受け付けません。
度数は非負であれば、整数の個数だけでなく小数の重みも使用できます。透明性の高い報告には、最終値とともに最頻階級と補間比率を保存してください。ネットワーク参照、無作為選択、時刻依存の入力が結果に影響することはありません。
活用例
階級別アンケートを要約する
回答者数を伴う得点帯として結果が公表された場合に、最も多い回答値を推定します。
製造測定値を分析する
測定値を固定区間に集計した後、分布の山のおおよその位置を求めます。
教材の計算を検算する
階級データの最頻値公式を再現し、補間に使われた各中間度数を確認します。
よくある質問
どの計算式を使用しますか?
L + (d1 / (d1 + d2)) × h を使用します。L と h は最頻階級を表し、d1 と d2 は両隣との度数差です。
境界が度数より 1 つ多いのはなぜですか?
各度数は連続する 2 つの境界間の区間に対応するため、n 区間には n + 1 個の端点が必要です。
最大度数が同率でも計算できますか?
できません。 一意の最頻階級がないため、多峰性として示すか、任意の階級を選ばず別の方法をご使用ください。
結果は実際に観測された値ですか?
必ずしもそうではありません。階級化すると元の値は失われるため、最頻区間内の推定値です。
10〜19、20〜29のような階級はどう入力しますか?
まず、その整数の区切りを測り方に合わせた連続的な境界に直します。たとえば9.5〜19.5、19.5〜29.5とすれば、階級の幅と補間した位置が正しい意味を持ちます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/grouped-mode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"class_boundaries":[0,10,20,30,40],"frequencies":[5,9,12,7]}'const res = await fetch("https://api.kit.forhosting.com/stat/grouped-mode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"class_boundaries": [
0,
10,
20,
30,
40
],
"frequencies": [
5,
9,
12,
7
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/grouped-mode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"class_boundaries": [
0,
10,
20,
30,
40
],
"frequencies": [
5,
9,
12,
7
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/grouped-mode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"class_boundaries":[0,10,20,30,40],"frequencies":[5,9,12,7]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"class_boundaries":[0,10,20,30,40],"frequencies":[5,9,12,7]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/grouped-mode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"class_boundaries": [
0,
10,
20,
30,
40
],
"frequencies": [
5,
9,
12,
7
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.grouped_mode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
境界と度数を対応する順序で入力します
階級化した観測値は、区間と個数で表します。class_boundaries には最小から最大までのすべての階級境界を、frequencies には各区間につき 1 つの度数を入力してください。したがって、4 区間には 5 つの境界が必要です。
推定値の解釈と制約を理解します
ブラウザーと API は同じ決定論的な算術を使用します。ページ上の操作は無料で、API リクエストは $0.002 です。
技術的な質問
度数がない場合はどうなりますか?
境界だけでは最頻階級を特定できず補間も行えないため、リクエストは invalid_input エラーを返します。
API での計算料金はいくらですか?
API リクエストごとに $0.002 です。同じ計算をブラウザーでは無料で実行できます。