最小二乗法による回帰切片計算ツール
xが1から5、yが2、4、5、4、5のとき、最小二乗法の直線はy軸と2.2で交わります。同じ長さのxとyのリストを入力すると、最もよく当てはまる直線の切片が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- X
- 1, 2, 3, 4, 5
- Y
- 2, 4, 5, 4, 5
- 切片
- 2.2
回帰切片とは、最小二乗法で当てはめた直線が y 軸と交わる位置です。同じ長さの数値配列を x と y に指定すると、通常の最小二乗直線の切片を返します。計算は決定論的であり、当てはめる前にすべての組を検証します。x の値がすべて同じ場合は分散がゼロになるため、一意の傾きと切片を決定できません。その際は誤解を招く数値ではなく、入力エラーを返します。
回帰切片が表すもの
単回帰は、一般に y = mx + b と表される当てはめ直線で2変数の関係を記述します。この式では m が傾き、b が切片です。2つの配列に入った対応観測値を受け取り、内部で通常最小二乗法の傾きを推定してから、その傾きに対応する切片を返します。
ゼロが初期投与量、経過時間、計測器への入力など、現実的または重要な x の値である場合、切片は有用な意味を持つことがあります。一方、ゼロが観測した x の範囲から大きく外れていても切片は数学的に定義されますが、外挿であるため慎重な解釈が必要です。精密な切片が得られても、直線モデルの妥当性、因果関係、基準値の実用的な意味が証明されるわけではありません。
重要な分析では散布図とモデルの仮定も確認してください。
最小二乗計算の仕組み
配列は位置によって対応付けられます。最初の x は最初の y、2番目の x は2番目の y に対応し、以後も同様です。両方の配列に有限数が2個以上あり、長さが等しいことを検証した後、各系列の平均を求めます。
次に x の中心化平方和と、x と y の中心化交差積を計算します。交差積を x の平方和で割ると、通常最小二乗法の傾きが得られます。最後に、y の平均から傾きと x の平均の積を引いて切片を算出します。
この式は、観測された y と当てはめた y の縦方向の差の二乗和を最小にする直線を選びます。中心化した逐次集計により、不必要に大きな未中心化二乗値を避け、通常の数値入力に対する安定性を保ちます。乱数による初期化や反復最適化は行わないため、同じ配列からは常に同じ結果が得られます。
この機能の契約は切片に限定されているので、応答には切片だけを含めますが、傾きは不可欠な中間値として内部で計算されます。
有効な入力、分散ゼロ、実用例
各要素は有限の JavaScript 数値でなければならず、文字列、欠損要素、NaN、無限大は拒否されます。少なくとも2組が必要です。主な数学的エラーは、すべての x が同じときに起こります。
この場合は x の分散がゼロで、最小二乗傾きの分母もゼロになります。複数の x 値で観測値を収集するか、回帰が適切な分析方法かを見直してください。校正の基準値の抽出、統計学の演習の確認、表計算ソフトの結果の検証、自動処理への安定した統計量の提供などに利用できます。
活用例
校正の基準値を求める
対応する基準測定値と出力値から、入力ゼロにおける当てはめ応答を計算します。
統計学の課題を確認する
対応観測値について、手計算や表計算ソフトで求めた y 切片を検算します。
分析処理を検証する
決定論的な対応データを使い、別の回帰実装が期待どおりの切片を返すか確認します。
よくある質問
切片にはどの式を使いますか?
通常最小二乗法を使います。傾き = Sxy / Sxx、切片 = 平均(y) − 傾き × 平均(x) です。
x と y の長さを同じにする必要があるのはなぜですか?
配列の位置ごとに値を対応付けるためです。長さが異なると相手のない観測値が生じ、入力が無効になります。
回帰切片は実際には何を意味しますか?
xが0のときに当てはめた直線が示すyの値です。基準となる投与量や経過時間の始まり、計器への入力など、xがゼロになることに現実的な意味があるときに役立ちます。
xの値がゼロから遠いときも切片を信頼できますか?
数学的には求まりますが、データの外側への外挿なので慎重に読む必要があります。値が正確でも、直線のモデルが適切だという証明にはなりません。
xの値がすべて同じだとエラーになるのはなぜですか?
xにばらつきがないと傾きが決まらず、同じようによく当てはまる直線が無数にできるためです。誤解を招く切片を返す代わりに、入力を受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/regression-intercept \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}'const res = await fetch("https://api.kit.forhosting.com/stat/regression-intercept", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/regression-intercept",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/regression-intercept", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[1,2,3,4,5],"y":[2,4,5,4,5]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/regression-intercept", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x": [
1,
2,
3,
4,
5
],
"y": [
2,
4,
5,
4,
5
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.regression_intercept",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
回帰切片が表すもの
切片は x = 0 における y の当てはめ値であり、通常のグラフで直線が縦軸と交わる位置でもあります。この計算ツールは b だけを求める用途に特化しています。
有効な入力、分散ゼロ、実用例
x と y には、要素数が同じ数値の JSON 配列を指定してください。同じ当てはめ点を通る傾きと切片の組が無数に存在するため、通常の y 対 x の最小二乗モデルでは一意の回帰切片を定められず、invalid_input を返します。このエラーを避けるために恣意的なノイズを加えないでください。ブラウザーでの計算は無料で、成功した API リクエストは1項目当たり $0.002 です。
技術的な質問
x の分散がゼロの場合はどうなりますか?
一定の x 配列では傾きの分母がゼロになり、一意の切片を決定できないため、invalid_input を返します。
切片には常に実用的な意味がありますか?
いいえ。x = 0 での当てはめ y を表しますが、ゼロが不可能な場合や観測範囲から遠い場合は解釈に注意が必要です。
API での計算料金はいくらですか?
成功した API リクエストは1項目当たり $0.002 です。無効な入力は結果を返す前に拒否されます。