回帰分析と最小二乗法
技術開発に関わっていると原因Xから結果Yを精度良く予測しなければならない機会は多いです。また製品開発の立場から次の製品でどのような不具合が発生するか予測することも重要です。最も基本的な予測手法は入力Xに対して応答Yをを線形近似することです。線形近似、つまり直線で関係を予測します。どのような直線が最も精度が高いか?これを与えてくれるものが最小二乗法です。
最小二乗法
いったい何を"二乗"して"最小"化するかというと、それはモデル式と実データとの誤差です。 1次近似の場合、モデル式は下記の通りです。
実データと予測結果には常に誤差が生じます。誤差を考慮すると下記の通りです。
最小二乗法は誤差を最小化します。最小化を定式化したいと思いますが、下記はどうでしょう?
残念ながら上式は誤差を最小化しません。実測より予測を小さくせよ、という意味になってしまいます。それでは下記はどうでしょう?
実測と予測の差を最小化する。正しいです。正しいですが困った事が起こります。誤差=0を境に符号が反転するので、滑らかにつながらず不連続点になります。
誤差を二乗すれば、最小化は誤差を0にする方向に働き、不連続点も生まれません。最小二乗法では最小値を求めるために微分を行います。不連続点があると微分できないため不都合が生じます。以上をグラフで示すと下記のようになります。
左から{error}、|error|、(error)^2です。二乗を最小化すれば、微分可能で上手く最小化できます。
最小二乗法による一次近似 - 傾き
誤差項の二乗について書き直すと下記のようになります。これを満たすa、bを求めるためにそれぞれの偏微分が0になる点を求めます。先ほどのグラフで底を打った極値を求めるイメージです。
まず傾きaで偏微分していきます。
ここで、上式=0とすると下記のようになります。
それぞれ下記のように置き換えると
このようになります。
最小二乗法による一次近似 - 切片
次に切片bで偏微分していきます。
ここでも、上式=0とすると下記のようになります。
傾きaと同様に下記のように書き換えると
置き換えた結果は下記で
最小二乗法による係数の推定値
傾きaと切片bでの偏微分結果をまとめると下記のようになります。
この2式を連立して解きます。第2式を第1式に代入すると
これで切片aを求めることができます。また分散公式を使うことにより下記のように変形できます。
さらに本節第2式に上式を代入すると
直線近似の切片bも求めることが出来ました。
まとめ
今回は一次近似での最小二乗法を書き下しました。式変形を覚える必要はないですが、偏微分=0で連立方程式を作ることが押さえられていればよいと思います。これを知っていれば変数がいくら増えても対応することが可能です。
また、通常は解析ツールで出力が出てくるので上記手続きを意識することは少ないですが、お使いのソフトがエラー出力した場合など背景技術を知っているとやはり強みになると思います。