価格と需要量データでギッフェン財を判定する計算ツール
ギッフェン財とは、通常の需要関係とは逆に、その財の価格が上がると需要量も増える特殊な財です。この計算ツールは、観測された価格と需要量の組に最小二乗法で直線を当てはめます。傾き、相関、当てはまりの良さ、隣接する変化の方向を示し、明確な判定を返します。ただし、結果は入力データの診断です。価格だけが観測需要量を引き起こしたことを証明するものではありません。
無料で実行
比較可能な観測値をご用意ください
同じ財について、正の自己価格とゼロ以上の需要量を持つ観測値を2件以上入力してください。異なる価格帯の観測値が多いほど、単純な前後比較より有用です。市場、期間、商品の定義、数量単位はそろえてください。所得、人口、季節性、販促、品質、期待、代替財や補完財の価格も需要を動かします。これらが大きく変化すると、正の傾きが交絡要因を表す場合があります。同じ価格の観測値も利用できますが、異なる価格が最低2つ必要です。測定精度に比べて小さすぎる正の反応を除外したい場合は、任意の傾き許容値をご指定ください。
判定方法をご確認ください
需要量を自己価格の線形関数として、最小二乗法で推定します。傾きは価格が1単位上がったときの平均的な需要量の変化です。この傾きが指定した許容値を厳密に上回る場合だけ、ギッフェン的な動きと判定します。切片、共分散、相関係数、決定係数も表示しますが、これらは記述統計であり有意性検定ではありません。また価格順に並べ、隣接する組で需要量が増加、減少、不変となる回数を数えます。同価格の組には価格変化がないため、この比較には含めません。
正の結果は慎重に解釈してください
正の結果は、入力標本の推定需要量が許容値を超えて自己価格とともに増えたことを意味します。ギッフェン財の観測上の特徴とは一致しますが、それだけで証明にはなりません。経済学的な識別には、代替効果と所得効果の分離、および別の説明の統制が必要です。相関、決定係数、隣接変化も併せてご確認ください。重要な判断では、所得、地域、品質、期間でデータを分け、計量経済学的統制や実験設計をご利用ください。負の結果は、このデータが基準を満たさないことだけを示します。ブラウザー版は無料で、APIは1回$0.002です。
活用例
家計消費データの予備調査
生活必需品の購入量が価格とともに増えるかを、詳細な需要研究の前に確認します。
教材データの検算
推定傾きを再現し、実証パターンをギッフェン財の理論的定義と比較します。
市場調査の優先順位付け
統制した計量分析に値する正の自己価格関係を持つ商品や層を抽出します。
よくある質問
正の結果でギッフェン財だと証明できますか?
いいえ。観測値に正の推定反応があることを示すだけで、他要因を除く統制と因果的証拠が必要です。
異なる価格が2つ必要なのはなぜですか?
すべて同価格では、需要量が異なっても価格に対する傾きを推定できないためです。
傾き許容値にはどのような役割がありますか?
判定に必要な数量・価格当たりの最小の正の傾きを定め、微小な値による判定を防ぎます。
同じ価格を複数回入力できますか?
はい。回帰には使われますが、同価格の隣接値は比較可能な価格変化として数えません。
APIの料金はいくらですか?
1回のリクエストは$0.002です。観測値をAPIへ送らず、ブラウザー内で無料実行することもできます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/econ/giffen-good-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"observations":[{"price":2,"quantity":10},{"price":3,"quantity":13},{"price":4,"quantity":15},{"price":5,"quantity":19}]}'const res = await fetch("https://api.kit.forhosting.com/econ/giffen-good-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"observations": [
{
"price": 2,
"quantity": 10
},
{
"price": 3,
"quantity": 13
},
{
"price": 4,
"quantity": 15
},
{
"price": 5,
"quantity": 19
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/giffen-good-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"observations": [
{
"price": 2,
"quantity": 10
},
{
"price": 3,
"quantity": 13
},
{
"price": 4,
"quantity": 15
},
{
"price": 5,
"quantity": 19
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/giffen-good-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"observations":[{"price":2,"quantity":10},{"price":3,"quantity":13},{"price":4,"quantity":15},{"price":5,"quantity":19}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"observations":[{"price":2,"quantity":10},{"price":3,"quantity":13},{"price":4,"quantity":15},{"price":5,"quantity":19}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/giffen-good-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"observations": [
{
"price": 2,
"quantity": 10
},
{
"price": 3,
"quantity": 13
},
{
"price": 4,
"quantity": 15
},
{
"price": 5,
"quantity": 19
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.giffen_good_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 10000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |