最小二乗法の残差計算機|残差平方和とRMSE
この最小二乗法の残差計算機は、指定した直線が観測データにどの程度適合するかを測定します。対応するx値とy値のリストに加え、当てはめた直線の傾きと切片を入力してください。各予測値、符号付き残差、残差の合計、残差平方和、二乗平均平方根誤差を表示します。すでに当てはめ式があり、その誤差の確認、候補となる直線の比較、課題の検算、または直線で十分に表現されていない観測値の特定を行いたい場合に役立ちます。
無料で実行
観測値と当てはめた直線を入力します
観測した座標をx_valuesとy_valuesという2つのリストで指定してください。リスト内の位置で組が決まり、最初のx値は最初のy値、2番目のx値は2番目のy値に対応します。そのため、両方のリストは同じ長さで、少なくとも1つの観測値を含み、すべて有限の数値である必要があります。次に、評価する直線の傾きと切片を入力します。計算機は「予測y = 傾き × x + 切片」という式を使用し、係数そのものは推定しません。教科書、表計算ソフト、統計ソフト、または前段の回帰処理ですでに直線が得られており、残った誤差を調べる場合に、この違いが重要です。すべての値で互換性のある単位を使用してください。xが時間、yが円なら、傾きは円毎時、切片は円で指定します。出力には入力した係数と対応する観測値の個数も表示されるため、意図したデータと式が評価されたか確認できます。1回のリクエストで最大10,000組を処理できます。
各残差と符号を読み取ります
計算機は各観測値について、まず対応するx座標で当てはめ直線を評価し、予測値を求めます。次に「残差 = 観測y − 予測y」を計算します。正の残差は観測点が直線より上にあり、負の残差は下にあることを示します。残差がゼロなら、直線はその観測点を正確に通っています。予測値と残差の配列は入力順を保つため、並べ替えや識別子による照合をせずに、各結果を元の点と比較できます。符号は、1つの要約値では見えない系統的な構造を示すことがあります。正の残差が長く続いた後に負の残差が続く場合、曲線的な関係、欠落した変数、または関係の変化が考えられます。孤立した大きな残差は、特異な観測値や入力ミスを示すことがあります。residual_sumは符号付き誤差を合計し、mean_residualはその合計を点数で割ります。同じデータから切片を含む通常の最小二乗直線を求めた場合、この合計は浮動小数点の丸めを除いて通常ゼロに近くなります。ただし、正負の誤差は相殺されるため、合計がゼロに近いだけでは良好な適合を証明できません。
RSSとRMSEで適合度を評価します
残差平方和はRSSまたはSSEとも呼ばれ、各残差の二乗をすべて足した値です。二乗することで符号がなくなり、直線の上下にある誤差が相殺されず、大きなずれがより強く反映されます。RSSがゼロなら、入力したすべての点が指定した直線上に正確にあります。同じデータセットと同じ応答単位で比較する場合、RSSが小さい直線ほど適合が良いと判断できます。ただし、RSSは観測数とともに増え、単位はyの単位の二乗です。大きさや測定尺度が異なるデータセット同士の比較には注意が必要です。計算機は、RSSを観測数で割って平方根を取った二乗平均平方根誤差も返します。RMSEは元のyと同じ単位で、代表的な誤差の大きさを表すため、解釈しやすい指標です。この値は記述的な適合指標であり、統計的推論で使う自由度調整済みの残差標準誤差ではありません。まったく同じ点に対して候補直線を比較するときは、集計指標だけでなく個々の残差パターンも確認してください。数値上の最良結果でも、曲率、集団、影響の強い点、または不適切な線形モデルが隠れている場合があります。
活用例
回帰の課題を検算する
当てはめ直線を手計算した後、予測値、符号付き残差、RSSを確認できます。
候補となる直線を比較する
同じ観測値に複数の傾きと切片を適用し、それぞれのRSSを比較できます。
モデルの誤差を調べる
特に大きな残差や、要約統計では見えにくい符号のパターンを特定できます。
よくある質問
残差とは何ですか?
同じx座標について、観測されたy値から当てはめ直線が予測したy値を引いた値です。
RSSとSSEは同じ意味ですか?
この文脈では同じです。どちらも残差を二乗して合計した値を指します。
最小二乗直線そのものを求められますか?
いいえ。既存の直線の傾きと切片を入力すると、その予測値と残差を評価します。
異なるデータセットのRSSを比較できますか?
注意が必要です。RSSは観測数とyの尺度に依存するため、同じデータに対する比較が最も直接的です。
APIリクエストの料金はいくらですか?
APIは1回$0.002です。同じ決定論的な計算をブラウザーでは無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/least-squares-residuals \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x_values":[0,1,2,3],"y_values":[1,2.2,2.8,4.1],"slope":1,"intercept":1}'const res = await fetch("https://api.kit.forhosting.com/calculus/least-squares-residuals", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x_values": [
0,
1,
2,
3
],
"y_values": [
1,
2.2,
2.8,
4.1
],
"slope": 1,
"intercept": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/least-squares-residuals",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x_values": [
0,
1,
2,
3
],
"y_values": [
1,
2.2,
2.8,
4.1
],
"slope": 1,
"intercept": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/least-squares-residuals", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x_values":[0,1,2,3],"y_values":[1,2.2,2.8,4.1],"slope":1,"intercept":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x_values":[0,1,2,3],"y_values":[1,2.2,2.8,4.1],"slope":1,"intercept":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/least-squares-residuals", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"x_values": [
0,
1,
2,
3
],
"y_values": [
1,
2.2,
2.8,
4.1
],
"slope": 1,
"intercept": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.least_squares_residuals",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |