個のサンプルデータ
が与えられたとき、最小二乗法 で 線形回帰モデル を求める方法をまとめます(いつも忘れちゃう)。
線形回帰モデル
例えば、上のサンプルデータが、 人の身長、体重、座高だったとして、身長の値を体重と座高を線形の式で表したいなー、ってときに、線形回帰モデルを使います。
この場合、線形回帰モデルを求めるというのは、下の線形回帰モデルの係数 を求めることに対応します。
人のデータから、上の線形回帰モデルを1つ求めるわけだけど、一般的に
人のデータと求める線形回帰モデルには誤差があります。
だってそうでしょう?みんなの体重が同じ式で、ぴったり表せるわけないじゃん。
で、人はこう考えるわけさ。
「線形回帰モデルとサンプルデータとの誤差が一番小さい係数求めよ!」
これが最小二乗法のざっくりとした説明。
最小二乗法
次は、で?実際にどう求める?って話。
改めて、問題設定を書くと、、
個のサンプルデータ
が与えらたとき、線形回帰モデル
を求める。
まず、誤差ベクトル を定義する。
の
番目の成分は、
番目のサンプルデータと線形回帰モデルの誤差である。
この誤差ベクトル の大きさ(ノルム)を最小化するのが、最小二乗法だ。誤差ベクトル
を最小化する問題を下記の問題
とする。
今、 個のサンプルデータに対し、行列
とベクトル
を定義する。
さらに、係数ベクトル
を定義すると、 問題 は次のように書ける。
ここでは証明しないけど、目的関数
は凸関数である。よって、微分して0となる が問題
の最小解。
とおくと、 の勾配ベクトルは、
最小解 は、
満たすので、以下の線形方程式を解けばよい。
そして、係数ベクトルとして、
を得る。逆行列が存在する条件は、行列 の列ベクトルが線形独立であることです。
以上、最小二乗法で線形回帰モデルを求める方法でした。