ジニ係数計算ツール:0から1で格差を測定
ジニ係数計算ツールは、所得などの非負値の一覧を、広く利用されている格差指標にまとめます。結果が0なら入力値はすべて等しく、1に近いほど少数の観測値に合計が集中しています。データは並べ替えておく必要がなく、計算は常に同じ入力から同じ結果を返します。係数とともに観測数も表示するため、表計算ソフトや独自プログラムを用意せずに、素早い比較、再現可能な報告、統計処理の自動化へ利用できます。
無料で実行
係数を文脈とともに解釈します
ジニ係数は、非負の変数の分布を0から1までの数値に要約します。0は完全な均等を表し、すべての観測値が同一です。係数が高くなるほど、合計の大きな部分が少数の観測値へ集中しています。そのため、所得、顧客支出、口座残高、作業量など、さまざまな非負量の比較に便利です。ただし、係数だけで分布全体を説明できるわけではありません。同じ係数でも、分布の形、中央値、極端な値、標本数が大きく異なる場合があります。各値の意味、対象に含めた観測、標本同士の比較可能性を記録してください。世帯所得と個人資産のように定義の異なる値を安易に比べないことが重要です。本ツールは基本的な文脈を残せるよう観測数も返します。分布の形が重要な場合は、グラフや記述統計を併用してください。ジニ係数は簡潔な手掛かりであり、公平性や政策に対する最終判断ではありません。
計算方法を理解します
値はどの順序でも入力できます。計算時に配列のコピーを小さい順へ並べ替えるためです。続いて、各順位と観測値の合計を対応させる、ジニ公式の加重和形式を適用します。この方法は、すべての組み合わせの絶対差を平均する方法と同じ母集団ジニ係数を返しますが、全ペアを作らないため長い配列でも効率的です。すべての値が等しければ結果は0です。全値が0の場合、通常の式では合計0による除算が発生しますが、観測値が同一なので本ツールでは0と定義します。係数は丸めずに返すため、JavaScript数値に通常見られる精度上の表現が現れることがあります。0から1という解釈は非負領域を前提とするため、負の値は受け付けません。無限大などの有限でない値も、意味のある決定的な統計量を作れないため拒否されます。
データを整えて慎重に比較します
同じ単位で測定し、同じ期間を対象とした観測値から配列を作成してください。入力前に、ラベル、通貨記号、欠損値記号、小計行を除きます。0は有効であり、重要な場合も多いため、平均を下げるという理由だけで削除しないでください。実際に測定量が0の対象を表すなら含めます。地域、チーム、期間を比較する際は、常に同じ採用基準を適用してください。標本の選び方が変わるだけでも、実際の分布が同じまま係数が動く可能性があります。世帯規模、物価、購買力、曝露量による調整が必要かも検討してください。空配列、負数、数値以外の要素、公開上限を超える配列は明確なエラーになります。ブラウザー版は即時確認に、1回$0.002のAPIは反復処理に適しています。定義、フィルター、観測数、係数を一緒に保存すると、後から再現しやすくなります。
活用例
所得分布を比較する
同じ基準で定義した集団や報告期間について、所得の集中度を測定します。
顧客集中度を監視する
売上や口座価値が広く分散しているか、少数顧客へ集中しているかを要約します。
作業配分を評価する
人、機械、キューの非負の作業件数を、再現可能な格差指標で比較します。
よくある質問
ジニ係数が0とはどういう意味ですか?
入力した観測値がすべて等しいことを意味します。全観測値が0の場合も結果は0です。
配列を並べ替える必要はありますか?
いいえ。内部で値のコピーを並べ替えるため、入力した配列自体は変更されません。
0の値を含められますか?
はい。0は有効な非負の観測値であり、実際の測定値を表す場合は含めてください。
負の値が拒否されるのはなぜですか?
本ツールが採用する0から1までの標準的な解釈は、非負値を前提とするためです。
標本補正は適用されますか?
いいえ。入力配列の標準的な母集団係数を返し、有限標本に対する補正は行いません。
APIの利用料金はいくらですか?
APIは1回$0.002です。同じ決定的な計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/gini-coefficient \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":[10,20,30,40]}'const res = await fetch("https://api.kit.forhosting.com/stat/gini-coefficient", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
10,
20,
30,
40
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/gini-coefficient",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
10,
20,
30,
40
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/gini-coefficient", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":[10,20,30,40]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":[10,20,30,40]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/gini-coefficient", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"values": [
10,
20,
30,
40
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.gini_coefficient",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |