最小二乗回帰による予測計算機
この最小二乗回帰予測計算機は、説明変数と応答変数の対応データに直線を当てはめ、新しい説明変数の値でその直線を評価します。傾き、切片、予測値、読みやすい式を決定論的な結果として返します。統計学の課題の確認、小規模な校正表からの推定、表計算ソフトを使わない反復可能な線形予測の自動化に利用できます。計算に使うのは入力された値だけであり、ネットワークサービス、無作為抽出、変化する外部データには依存しません。
無料で実行
対応する観測値から最小二乗直線を求めます
観測した説明変数を x に、対応する応答変数を y に入力し、各組が両方の配列で同じ位置になるようにしてください。2組以上が必要で、配列の長さは同じでなければならず、x には変動が必要です。計算機は最初に各系列の平均を求めます。続いて、x が平均の周囲でどの程度変動するか、中心化した x と y がどのように共変動するかを測ります。中心化した積和を x の中心化平方和で割ると傾きが得られ、y の平均から傾きと x の平均の積を引くと切片が得られます。この係数で、観測応答と当てはめ値の縦方向の差の二乗和を最小にする直線が定まります。すべての入力は有限の数値でなければなりません。欠損値、数値文字列、無限大、不正な配列は暗黙に変換せず拒否します。1回の要求では最大1万組まで処理できます。
新しい入力値に対する応答を予測します
新しい説明変数の値を predict_x に指定してください。観測された組から係数を求めた後、その値を同じ式に代入し、結果を prediction として返します。出力には n、slope、intercept、predict_x、表示用の式、ordinary_least_squares という手法名も含まれるため、推定値と使用したモデルを一緒に記録できます。観測した x の範囲内の予測は内挿であり、近くのデータに支えられるため一般に説明しやすくなります。範囲外は外挿です。計算自体は有効でも、実際の関係は曲がる、頭打ちになる、または変化する可能性があります。結果は当てはめた応答であり、将来の観測値を保証するものではありません。信頼区間や予測区間も算出しません。ネットワーク、乱数、時刻を使わないため、同じ入力から常に同じ出力が得られます。成功した API 要求の公開基本料金は1件 $0.002 です。
前提を確認し、係数を解釈します
傾きは、x が1単位増えたときの y の当てはめ上の変化を表します。正の傾きは増加関係を、負の傾きは減少関係を示します。切片は x が0のときの y の当てはめ値ですが、0が観測範囲から遠ければ実用的な意味は小さくなります。予測を利用する前に、可能であれば点を図示し、曲線性、特異な観測、分離した群、縦方向のばらつきの変化を確認してください。直線はこれらを隠す場合があります。また、観測が十分に独立しているか、通常の最小二乗法に適する精度で x が測定されているかも検討してください。x がすべて同じ場合は傾きの分母が0になるため拒否します。長さの違う配列についても、組み合わせを推測せず拒否します。返された式は透明な計算要約として用い、説明では元の単位を保ち、桁数の多さを現実の確実性の高さと混同しないでください。
活用例
校正直線から推定する
機器の測定値を既知の基準値に当てはめ、同じ係数で新しい測定値への応答を予測します。
統計学の課題を確認する
教科書や課題で指定された入力について、最小二乗係数と予測応答を検算します。
単純な線形予測を自動化する
短い対応系列から、表計算式を手作業で作り直さずに反復可能な推定値を得ます。
よくある質問
どの直線を当てはめますか?
縦方向の残差二乗和を最小にする通常最小二乗直線 y = slope * x + intercept を当てはめます。
観測した x の範囲外も予測できますか?
可能ですが外挿になります。計算は決定論的でも、実際の関係がデータ範囲外で線形とは限りません。
同じ x 値だけではなぜ計算できませんか?
x に変動がないと傾きの分母が0となり、この形式の一意で有限な直線が存在しないためです。
予測区間も結果に含まれますか?
含まれません。当てはめ直線の点予測のみを返し、不確実性区間や推測統計量は算出しません。
API 要求の料金はいくらですか?
成功した API 要求には1件 $0.002 の公開基本料金が適用されます。検証エラーでは計算を行いません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/linear-regression-predict \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[1,2,3,4],"y":[3,5,7,9],"predict_x":5}'const res = await fetch("https://api.kit.forhosting.com/calculus/linear-regression-predict", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
1,
2,
3,
4
],
"y": [
3,
5,
7,
9
],
"predict_x": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/linear-regression-predict",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
1,
2,
3,
4
],
"y": [
3,
5,
7,
9
],
"predict_x": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/linear-regression-predict", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[1,2,3,4],"y":[3,5,7,9],"predict_x":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[1,2,3,4],"y":[3,5,7,9],"predict_x":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/linear-regression-predict", 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
],
"y": [
3,
5,
7,
9
],
"predict_x": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.linear_regression_predict",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |