タイル指数計算機
タイル指数計算機は、情報エントロピーから導かれた方法を用いて、集団内の所得がどの程度不均等に分布しているかを測定します。同じ重みを持つ個人、世帯、地域などの単位ごとに、正の所得を1件ずつ入力してください。Theil T に加え、計算に使った件数、所得合計、平均所得を返します。0 は完全な平等を表し、値が大きいほど所得の集中が強いことを示します。決定論的な計算なので、分析、再現可能な報告書、データ処理、比較の自動化に利用できます。
無料で実行
タイル指数から分かること
タイル指数は、所得分布を0以上の1つの格差指標にまとめます。すべての観測値がまったく同じ所得なら、各所得と平均所得の比は1になり、対数を使う各項は0になるため、最終的な指数も0です。所得が少数の観測対象に集中するほど、指数は大きくなります。金額の合計や平均とは異なり、結果には単位がありません。そのため、対象集団の定義が一貫していれば、通貨や数値の規模が異なる分布も比較できます。この指標は高所得側を含む分布全体の変化に反応しますが、どの世帯が貧しいか、または豊かであるかを特定するものではありません。見た目が異なる2つの分布が同じ指数になる場合もあります。件数、平均、分位点、分析の背景と併せて解釈してください。本計算機が返すのは Theil T であり、別の尺度である Theil L ではありません。結果を公表したり外部資料と比較したりする場合は、この方式を明記することが重要です。
計算方法
n 件の所得について、まず算術平均を求めます。次に各所得を平均所得で割り、その比の自然対数を求め、比と自然対数を掛けます。すべての項を合計し、最後に n で割った値が Theil T です。つまり、平均に対する相対所得と、その自然対数の積を平均した指標です。自然対数を使うことが必須であり、常用対数や底が2の対数を使うと数値の尺度が変わります。入力する値は、有限で0より厳密に大きい数でなければなりません。この条件により未定義の対数を避け、仕様を明確に保ちます。0、負数、欠損値、無限大、数値以外の値は黙って除外せず、入力エラーとして返します。配列の各要素には同じ人口ウェイトが与えられます。1件のレコードが複数人を表す場合は、個別の観測値に展開するか、適切な頻度ウェイトを用いて事前にデータを変換してください。返される合計と平均を見れば、入力集団が意図どおりに扱われたか確認できます。
集団の比較と結果の読み方
比較するすべてのデータで、対象集団、集計期間、所得の定義、税金や給付の扱いを統一してください。世帯の月収と個人の年収を混在させると数値自体は計算できますが、有効な比較にはなりません。タイル指数の体系は、全体の格差を集団内の要素と集団間の要素に分解できる点で有用です。ただし、その分解には各集団の人口と所得合計が必要であり、単一配列を扱う本計算機では実行しません。一貫した定義の集団ごとに個別の指数を計算することはできますが、それらの独立した結果を加法的な分解と混同しないでください。Theil の値を良い、または悪いと判定する普遍的なしきい値はありません。社会、市場、標本設計、分析目的によって意味が変わります。少数の極端な値が結果を支配していないか、物価調整が統一されているか、標本に代表性があるかも確認してください。自動処理では、後から再現できるよう、出力とともに元の入力配列を保存することを推奨します。
活用例
所得分布の経年比較
一貫した定義の年次所得データで格差を測り、報告期間ごとに所得集中が強まったか弱まったかを追跡します。
地域間格差の確認
所得の定義、人口単位、通貨基準、観測期間をそろえ、地域ごとの Theil T を算出します。
再現可能な指標の組み込み
検証済みの正の値から決定論的な格差指標を求め、監査用に件数、合計、平均も保存します。
よくある質問
タイル指数が0とはどういう意味ですか?
入力したすべての観測対象の所得が等しく、指定した集団内の所得分布が完全に平等であることを意味します。
所得に0や負数を指定できますか?
指定できません。すべて有限かつ0より厳密に大きい値である必要があります。この仕様では対数式が定義できないため、0や負数は入力エラーになります。
どの種類のタイル指数を計算しますか?
Theil T を返します。各所得と平均所得の比に、その比の自然対数を掛けた値の平均です。Theil L は計算しません。
通貨を変更すると結果も変わりますか?
すべての所得に同じ正の換算係数を掛けても、通常の浮動小数点精度による差を除き、指数は変わりません。
所得の観測値にウェイトは付きますか?
配列の各要素は同じ重みです。異なる人数を表すレコードは、計算前に個別データへ展開するか、適切に変換してください。
API での計算料金はいくらですか?
API の料金は1リクエストあたり $0.002 です。同じ決定論的な計算をブラウザーで無料実行することもできます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/theil-index \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"incomes":[10,20,30,40]}'const res = await fetch("https://api.kit.forhosting.com/stat/theil-index", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"incomes": [
10,
20,
30,
40
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/theil-index",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"incomes": [
10,
20,
30,
40
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/theil-index", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"incomes":[10,20,30,40]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"incomes":[10,20,30,40]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/theil-index", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"incomes": [
10,
20,
30,
40
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.theil_index",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |