バッコ博士の構造塾

建物の安全性について本当のプロが綴る構造に特化したブログ

最小二乗法の計算:公式の導出と手計算でできる簡単な例題

f:id:bakko-taishin:20181209143229j:plain

実験や計測によってたくさんのデータが得られます。得られたデータを適切に処理することで特性や傾向が理解できるようになります。

 

「このデータ、右肩上がりの傾向があるな」というような時に、それを近似できるような関数を求めたくなりますね。適当にエイっと決めるのではなく、理に適った決め方をするために「最小二乗法」があります。

 

一次関数(直線)で近似する場合の公式の導出をしつつ、簡単な例題を使用して実際に計算してみましょう。

 

 

最小二乗法による一次関数近似の公式の導出

f:id:bakko-taishin:20181209143356j:plainf:id:bakko-taishin:20181209143414j:plain

f:id:bakko-taishin:20181209144140j:plain
近似するデータ群を(xi, yi)(i=1,2,3,…n)とします。

 

①:一次関数なので、未知数はaとbの2つです。

 

②:①式のxの値がxiのときyの値です。

 

③:データ群と近似式のyの値の差です。

 

④:③式の差分を二乗しています。

 

⑤:差分の二乗の総和です。この値を最小化するのが目的です。

 

⑥,⑦:②式の関係を用いて⑤式内の項を書き換えます。

 

⑧:⑥⑦式を⑤式に代入しています。

 

⑨:未知の係数aの二次関数として整理しています。

 

⑩,⑪,⑫:⑨式の係数の中身です。

 

⑬:⑨式をaに関して微分します。この値がゼロになるとき、aに関して差分の二乗の総和が最小になります。

 

⑭:⑬式を整理すると、差分の二乗の総和を最小にするaは、bの関数になります。

 

⑮:⑨式に⑭式を代入しています。

 

⑯:⑮式に⑩⑪⑫式を代入しています。

 

⑰:未知の係数bの二次関数として整理しています。

 

⑱,⑲,⑳:⑰式の係数の中身です。

 

㉑:⑰式をbに関して微分します。この値がゼロになるとき、差分の二乗の総和が最小になるbの値が求まります。

 

㉒:㉑式に⑱⑲式を代入しています。bの値が求まりました。これを⑭式に代入すればaも求まります。

 

簡単な例題

データ数が5個しかない、簡単な例を用いて実際に計算してみましょう。先ほどの式に値を代入していくだけです。

f:id:bakko-taishin:20181209144145j:plainf:id:bakko-taishin:20181209144149j:plain

f:id:bakko-taishin:20181209144153j:plain

 

なぜ二乗にするのか

最後に、「なぜ二乗にするのか」だけ簡単に説明しておこうと思います。

 

正負

まず、データと近似関数の差分は、正負どちらの値をとるかわかりません。そのため、そのまま足し合わせてしまうと変なことになってしまいます。

 

差分+5と差分-5を合わせてゼロだから、データと近似関数との誤差もゼロ、とはなりませんね。

 

だからと言って絶対値を持ち出すと、計算がとても面倒になってしまいます。二乗にすれば常に正の値になるのでわかりやすいのです。

 

重みづけ

xy平面上に点が3つある場合に、ある直線はこの3点とのyの値の差の絶対値が1、3、11、別の直線では全て5になったとしましょう。どちらの直線の方が、よりこの3点を近似できているでしょうか。

 

両方とも差の合計は15ですが、後者の直線の方が良さそうだと感じませんか。差の合計が同じであっても、1つだけ他と比べて差が大きいものがあると、うまく近似できていないように思えます。

 

そこで、差が大きければ大きいほどペナルティが大きくなるよう、二乗にすることで重みづけをするのです。そうすることで置いてきぼりにされるデータを減らすことができます。