大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

線形回帰

線形回帰は ŷ=m·x+c を当てはめ、残差平方和を最小にする傾き m と切片 c を選びます。切片付き単回帰には閉形式解があります。平均を求め、中心化した二つの和から割り算と引き算で解けます。x が全て同じでなければ最適な直線は一意です。

「平方」が目的関数の性質を決めます。誤差 1、3、9 の代価は 1、9、81。画面は縦の残差を正方形の辺として描き、総面積を減らします。一点の外れ値が直線全体を引く理由もここにあります。

最良の当てはめとは

点 (x,y) の予測は ŷ=m·x+c、残差は r=y−ŷ。y 方向の差であり、直線までの最短距離ではありません。x から y を予測するので、入力と出力を交換すると通常は別の回帰線になります。

SSE(m,c) = Σ (yᵢ − (m·xᵢ+c))²
MSE = SSE / n

SSE は平方誤差の合計、MSE は一点当たりです。同じデータなら最適パラメータは一致します。別のデータ集合を比べる際は単位と評価条件も揃えます。絶対誤差、最大絶対誤差、直線への直交距離を最小化すれば、「最良」の定義が変わり、答えも多くの場合変わります。

探索なしで解ける理由

SSE は m,c の二次関数です。x に広がりがあれば底が一つの鉢になり、全 x が同じなら谷へ退化してパラメータは一意でなくなります。偏微分をゼロにすると二つの関係を得ます。

最適線は平均点を通る。 ∂SSE/∂c=0 は残差の和がゼロという条件で、c=ȳ−m·x̄ です。切片があり追加制約のない通常の最小二乗では、外れ値があっても成立します。

傾きは共変動と x の広がりの比。

Sxy = Σ (xᵢ−x̄)(yᵢ−ȳ)
Sxx = Σ (xᵢ−x̄)²
m = Sxy / Sxx
c = ȳ − m·x̄

Sxy>0 は中心化した x と y の同方向の変動、ゼロは積の相殺を示します。非線形関係を否定しません。逆に x を予測する傾きは Sxy/Syy で、元の傾きの逆数ではありません。

平均に一走査、中心化した和にもう一走査を使います。学習率も収束判定も不要です。勾配降下法は適切な刻み幅なら同じ解へ近づけますが、任意の幅で収束するわけでも有限回で厳密に到達するわけでもありません。高次元や別のモデルでは反復法に利点があります。

平方が外れ値を重くする

残差の絶対値 0.2 は代価 0.04。同じ x で誤差 9.2 へ動かすと、誤差は 46 倍、平方は 2116 倍の 84.64 です。

再当てはめは合計だけを減らします。初期例では固定した八点が 1.56→21.96 と悪化する代わりに、移動点が 84.64→33.64 に下がり、合計は 86.2→55.6。これが新しい最小二乗解で、動かない点は合計で約十四倍を負担します。

解法の失敗ではなく損失の性質です。絶対誤差の限界的な罰則は残差とともに増えず、Huber 損失はゼロ付近で平方、遠くで絶対値に近づきます。観測の削除は入力ミスや対象母集団からの逸脱の証拠に基づけ、単に直線から離れているだけで除きません。

当てはめ後に残差を x に対して描きます。曲がり、扇形の広がり、単独の大残差は、モデル形、誤差の変化、異常観測を調べる手掛かりです。MSE 一個では構造が失われます。

ステップごとの例

初期の九点は:

(−4,−3) (−3,−3) (−2,−1) (−1,−1) (0,0)
(1,1) (2,1) (3,3) P=(4,3)

Σx=Σy=0 で平均点は原点。候補 m=0,c=0 は常に平均 y を返す基準線です。P だけを動かせます。

  1. 問い、拍 1。 12×12 の平面の九点を二パラメータの一本の線で予測します。
  2. 候補、拍 2。 琥珀色の ŷ=0 は x を無視します。y の平均を使う、x に依存しないベースラインです。
  3. 一残差、拍 3。 P (4,3) から ŷ=0 への縦の差は 3 です。
  4. 一平方、拍 4。 辺 3、面積 9。残差を二倍にすれば面積は四倍です。
  5. 全平方、拍 5。 残る八点にも正方形を描きます。
  6. 合計、拍 6。 SSE=40、MSE=40/9≈4.44。
  7. 平均の固定点、拍 7。 (0,0) を印で示します。最適線はここを通り、残る問題は傾きです。
  8. 傾き、拍 8。 Sxy=48、Sxx=60 から m=0.8。
  9. 回転、拍 9。 c=0 のまま平均点を軸に回します。平方は各フレームの線から再計算します。
  10. 最適値、拍 10。 旧線が破線で現れます。SSE=1.6、MSE≈0.18。面積は元の 1/25 で、他の m,c はこれを下回りません。
  11. P を移動、拍 11。 x=4 のまま y を 3→−6。旧線は固定し、残差絶対値は 0.2→9.2、代価は 0.04→84.64。合計 86.2 の約 98% を P が占めます。
  12. 再計算、拍 12。 x̄=0、ȳ=−1、Sxy=12 から ŷ=0.2x−1。手法は同じでデータだけが変わります。
  13. 交換条件、拍 13。 八点は 1.56→21.96、P は 84.64→33.64、最小合計は 55.6。九点中六点は悪化、一点は不変、二点(P を含む)は改善します。総和最小は全点の改善ではありません。
  14. 終了。 解は目的関数どおりです。外れ値の影響が用途に合わないなら、同じ SSE を解く別ソルバーではなく損失とデータを見直します。

「目測」は ŷ=x で、よく見えても平方和は最適の 2.5 倍。「誤った固定点」は ŷ=3 で、回転だけでなく平行移動が必要です。「曲がるデータ」は y=x²−3 上の七点で、対称性から Sxy=0。最適線は ŷ=1、MSE=12 です。この床は直線モデルの表現限界です。

計算量

n 点の二走査で時間 O(n)、数個の累積量で追加空間 O(1)。Σx,Σy,Σxy,Σx² を一走査で集計する形もありますが、大きな近い数の減算で数値条件が悪くなりがちです。

多特徴でフルランクの正規方程式は (XᵀX)⁻¹Xᵀy と書け、構成と解法は約 O(nd²+d³)。逆行列を直接実装せず、X,y を QR/SVD の最小二乗ソルバーへ渡せます。明示的な逆と XᵀX による条件数の二乗を避けます。特徴が多い場合は反復法の費用と比較します。

境界ケース

  • 全 x が同じ:Sxx=0 で傾きは一意でありません。本課の八固定点は既に x に広がりがあるため、P だけでは到達しません。
  • Sxy=0:平均の水平線になります。曲線の例では x が y を決めても線形関係ではありません。
  • 候補が描画範囲外:パラメータと誤差は有効です。クリップと未定義を区別します。
  • x の重複:全て同じでなければ問題ありません。
  • 点が線上:現在の残差はゼロでも平均や Sxy には寄与し、削除とは異なります。

よくある間違い

  • 直線への直交距離を測る。それは全最小二乗などの別問題で、PCA と関連し、x と y をより対称に扱います。
  • 必ず反復探索が必要だと思う。単回帰には閉形式解があります。
  • SSE と MSE を混同する。本例は九倍違うため、指標名を付けます。
  • MSE だけでモデルの適切さを決める。残差の構造と用途も必要です。曲線例の 12 は直線の再調整では下がりません。
  • 外れ値への感度をソルバーのせいにする。平方損失が大残差を重くします。
  • 全 y の平行移動で傾きが変わると思う。中心化した Sxy,Sxx は不変で、c が変化を吸収します。
  • 平均点と原点を同一視する。初期値では一致するだけで、P を動かすと線は新しい平均点を追います。