Menu

残差とは

残差とは、点が回帰直線からどれだけ上または下にあるかです。一つひとつは小さな引き算ですが、全部合わせると、その直線が良いかどうかを教えてくれます。

著者: Nethanel Bar, 共同創業者兼CEO

最終更新

回帰直線はすべての x について y の値を予測します。ほとんどの点はちょうどその上には乗らず、点の実際の値と直線が示す値との差が、その点の残差です。回帰の中でいちばん単純な量で、引き算1回にすぎませんが、残差を読むことで、当てはまっている直線と、当てはまっているように見えるだけの直線を見分けられます。

下の点をドラッグしてください。縦の線分の一つひとつが残差で、直線より上の点は青、下の点はオレンジです。表にはすべての残差と、その2乗の和が並びます。

y = x + 1傾き1切片1残差平方和10
xy予測値 ŷ残差 y − ŷ
1422
223-1
324-2
4550
5660
6871
8990

線分の一つひとつが残差です。直線より上は青、下はオレンジ。点をドラッグして、2乗の和が変わるのを見てください。

実測値 − 予測値

座標 (x, y) の点に対して、直線は ŷ(「ワイハット」と読みます)と書く値を予測します。残差は

e = y - ŷ

実測値から予測値を引いたもので、つねにこの順番です。

5つの点 x = 1, 2, 3, 4, 5、y = 2, 4, 5, 4, 5 をとります。回帰直線は y = 0.6x + 2.2 です。x = 3 では直線は 0.6 × 3 + 2.2 = 4 と予測し、実際の点は (3, 5) なので、残差は 1 です。x = 1 では 2.8 と予測し、点は (1, 2) なので、残差は -0.8 です。

x実測値 y予測値 ŷ残差残差²
122.8-0.80.64
243.40.60.36
35411
444.6-0.60.36
555.2-0.20.04
合計02.4

符号が教えること

残差が正なら、点は直線より上にあります。実際の値が予測より高かったので、直線は過小に見積もっています。残差が負なら、点は直線より下にあり、直線は過大に見積もっています。残差が 0 なら、点はちょうど直線上にあります。

大きさは y の単位で表されます。y がテストの点数なら、残差 -0.8 は、その生徒が自分の x に対して直線が予測したより 0.8 点低かったという意味です。

合計が 0 になる理由

表の残差の列を見てください。-0.8、0.6、1、-0.6、-0.2 を足すとちょうど 0 です。これは偶然ではありません。切片のある最小二乗法の直線なら、必ずそうなります。

その直線の切片は b = ȳ - m x̄ として選ばれます。n 個の点すべてについて残差 y - (mx + b) を合計すると、y の値の和は nȳ、mx の項の和は mnx̄、b の項の和は nb になります。b の公式を代入すると、3つの部分が打ち消し合って 0 になります。言葉で言えば、直線は上の点と下の点がちょうどつり合うように置かれているのです。

残差を2乗しないと何も測れないのもそのためです。そのままの和は、良い直線でも悪い直線でもつねに 0 です。

残差平方和

各残差を2乗して合計すると、残差平方和が得られます。SSE と書かれることもよくあります。上の5点では 0.64 + 0.36 + 1 + 0.36 + 0.04 = 2.4 です。

回帰直線は、この数をできるだけ小さくする直線として定義されます。ほかのどの直線もこれより悪くなります。直線 y = 0.5x + 2.5 も平均の点 (3, 4) を通り、グラフではほとんど同じに見えますが、残差は -1、0.5、1、-0.5、0 で、その2乗の和は 2.5 です。直線 y = x + 1 は 4 です。最小値 2.4 は y = 0.6x + 2.2 だけのものです。

2乗することには、知っておくべき副作用があります。残差 2 は和に 4 を加え、残差 4 は 16 を加えるので、ほかから遠く離れた1点が直線全体を自分のほうへ引き寄せます。上の図で1つの点を隅までドラッグし、和が跳ね上がり直線が傾くのを見てください。

残差プロット

残差プロットは、横軸に x を、縦軸に各点の残差をとります。当てはめた直線は 0 の高さの水平線になり、問いは単純になります。パターンは残っているか。

パターンのない帯なら、直線は当てはまっています。 残差が形を持たずに 0 の上下に散らばり、どの x でも幅がほぼ同じなら、直線が傾向をとらえていて、残っているのはノイズです。

曲線なら、直線は間違った形です。 x = 0〜5 での平方数 0, 1, 4, 9, 16, 25 に直線を当てはめると、y = 5x - 10/3、r ≈ 0.9599 になり、とてもよく当てはまっているように聞こえます。残差は本当のことを語ります。

Graph-112345-4-3-2-1123xy
0 から 25 までの平方数に当てはめた直線 y = 5x - 10/3 の残差。両端で正、真ん中で負。

残差は 10/3、-2/3、-8/3、-8/3、-2/3、10/3 と並び、U 字を描きます。直線は毎回、真ん中で高すぎ、両端で低すぎます。曲線に直線を当てはめると必ずこう見えます。放物線ならこれらの点にぴったり当てはまり、二次回帰の計算ツールが見つけるのもその放物線です。

扇形なら、ばらつきが大きくなっています。 残差が一方の端で小さく、もう一方の端で大きいなら、直線は平均としては正しくても、x が大きくなるにつれて予測の精度が落ちます。価格や人口のように割合で増えるデータはよくこう見え、次に試すのはふつう指数モデルです。

残差と外れ値

ほかと比べて残差が異常に大きい点、つまり直線からはるか上や下にある点は、y についての外れ値です。もう一度見る価値があります。入力ミスかもしれませんし、本当に性質の違うケースかもしれません。

残りの点から左右に遠く離れた点は、別の種類の問題です。直線は平均の点を軸に回転するので、x の方向に遠くにある点は長いてこを持ち、直線を自分のほうへ引き寄せることができます。そのため、直線を最も大きく変えたのに、残差は小さいということが起こります。つまり残差が小さいことは、その点がふつうであることの証明になりません。上の図で、いちばん右の点をまっすぐ下へドラッグし、直線がついてくるのを見てください。

ひとつ試す

直線は 4.6 と予測し、点は 4 にあるので、点は直線より 0.6 下にあります。0.6 になったなら、引き算が逆向きです。つねに実測値 − 予測値です。自分のデータについては、回帰分析の計算ツールが直線とその残差平方和を出し、相関係数のページでは当てはまりの強さを1つの数で表す意味を説明しています。

よくある質問

残差とは何ですか。
データ点から当てはめた直線までの縦の距離です。実測した y から、その x で直線が予測する y を引いたものです。点が (3, 5) で、直線が x = 3 で 4 と予測するなら、残差は 5 − 4 = 1 です。
残差はどう計算しますか。
点の x を直線の式に代入して予測値を出し、その予測値を点の実際の y から引きます。残差 = 実測値 − 予測値。順番が大切です。予測値 − 実測値にすると、大きさは同じでも符号が逆になります。
残差が負だとどういう意味ですか。
点が直線より下にあるということで、直線は実測値より高い値を予測した、つまり過大に見積もったことになります。残差が正なら点は直線より上にあり、直線は過小に見積もっています。残差が 0 なら、点はちょうど直線上にあります。
残差の合計が 0 になるのはなぜですか。
切片のある最小二乗法の直線では、必ずそうなります。切片は b = y の平均 − m × x の平均として選ばれるので、直線は平均の点を通ります。すべての点について y − (mx + b) を合計すると、n × y の平均 − m × n × x の平均 − n × b となり、これはちょうど 0 です。
良い残差プロットはどう見えますか。
0 のまわりにパターンのない横長の帯ができ、左端でも右端でも幅がほぼ同じです。残差が曲線(U 字や逆 U 字)を描いていれば、直線はそのデータにとって間違った形です。図の右へ行くほど広がる扇形なら、x が大きくなるにつれて予測の信頼性が下がります。
残差平方和とは何ですか。
すべての残差を2乗して合計したものです。点が全体として直線からどれだけ離れているかを測り、最小二乗法ができるだけ小さくする量です。x = 1〜5、y = 2, 4, 5, 4, 5 では最小二乗法の直線の残差平方和は 2.4 で、ほかのどの直線もこれより大きくなります。

関連する考え方

Coddyのプログラミング言語のイラスト

Coddy で数学を学ぶ

始める