最小二乗法

目次(このページで分かること)

最小二乗法とは何か?

最小二乗法は、実験値などの複数の計測データの組が与えられた場合、そのデータ間の最ももっともらしい関係式を求める方法です。

例えば、あるバネの「伸び」とその時のバネを引っ張る「力」を計測した結果、以下のようなグラフになったとします。

データ間が一次関数(\( \displaystyle l = \beta F \))の関係にあると仮定し、最小二乗法により具体の関係式を求める( \( \displaystyle \beta \)を求める )と次式となります。

\( \displaystyle l = 0.9825 F \)

グラフにすると以下となり、バラつきのある実験値の中央付近を通っていることが分かります。

関係式を得ることで任意の力\( F \)の値におけるバネの伸び\( l \)の推定値を得ることができるようになります。

このように最小二乗法ではデータの関係式の基本的な形(一次関数など)を仮定し、その具体の係数を求める、という手順で、データの組の最ももっともらしい関係式を求めます。

具体の計算方法は下で解説します。

最小二乗法の計算方法(係数が一つの場合)

このページでは求める係数が一つ( \( \beta\)だけ )の最も単純なケースで最小二乗法を解説します。

係数が2つの場合は単線形回帰で解説しています。(単線形回帰は係数が2つの最小二乗法です)

計算手順の概要

STEP
計測データの組が与えられる

\( (x_{i},y_{i}) \hspace{10pt}i = 1 \cdots n \)

STEP
データ間の関係式を仮定する

\( y = \beta x \)

STEP
誤差(計測データと関係式による計算値の差)の二乗和が最小になるように関係式の係数を決定する

具体の計算方法

次のような\( n \)個のデータの組が与えられたとします。

データNo.\( x \)\( y \)
1\( x_{1} \)\( y_{1} \)
\( \vdots \)\( \vdots \)\( \vdots \)
\( i \)\( x_{i} \)\( y_{i} \)
\( \vdots \)\( \vdots \)\( \vdots \)
\( n \)\( x_{n} \)\( y_{n} \)

\( x_{i} \)や\( y_{i} \)は実際に計測された数値(例えばバネの「伸びの長さ」や「力の大きさ」など)です。

そして、データの関係式が次のような一次式になると仮定します。

$$ \displaystyle y = \beta x $$

この関係式による予測される\( \hat{y} = \beta x_{i} \)の値とデータとして与えられた\( y_{i} \)の値の差を誤差\( \epsilon_{i} \)とします。

\( \hspace{10pt} \displaystyle 誤差 \epsilon_{i} = y_{i} – \hat{y} \)

\( \hspace{35pt} \displaystyle = y_{i} -(\beta x_{i}) \)

グラフにすると下図になります。

最小二乗法では、全てのデータの誤差の二乗を足し上げ(誤差の二乗和)、それを最小とするように\( \beta \)を決定します。

\( \hspace{10pt} \displaystyle 誤差の二乗和 =  \sum_{i=1}^{n} \epsilon_{i}^{2} =  \sum_{i=1}^{n} \left\{ y_{i} -(\beta x_{i}) \right\}^{2} \)

この式を\( \beta \)に関する式にするため、展開して整理すると、

(スマホでご覧の方へ、画面から見切れてしまう式は横スクロールできます)

\( \hspace{20pt} \displaystyle =  \sum_{i=1}^{n} \left\{ y_{i}^{2} -2y_{i}(\beta x_{i}) +(\beta x_{i})^{2} \right\} \)

\( \hspace{20pt} \displaystyle =   \sum_{i=1}^{n}y_{i}^{2} -2\sum_{i=1}^{n}y_{i}(\beta x_{i}) +\sum_{i=1}^{n}(\beta x_{i})^{2} \)

\( \hspace{20pt} \displaystyle =   \left( \sum_{i=1}^{n}y_{i}^{2} \right) – 2\left( \sum_{i=1}^{n}x_{i} y_{i} \right) \beta +\left( \sum_{i=1}^{n}x_{i}^{2} \right) \beta^{2} \)

\( \hspace{20pt} \displaystyle =   \left( \sum_{i=1}^{n}x_{i}^{2} \right) \beta^{2} – 2\left( \sum_{i=1}^{n}x_{i} y_{i} \right) \beta + \left( \sum_{i=1}^{n}y_{i}^{2} \right) \)

となり、\( \beta \)に関する二次関数になります。

括弧付きの\( \sum \)のところは実験結果から算出される定数です。

\( \beta^{2} \)の係数\( \displaystyle \left( \sum_{i=1}^{n}x_{i}^{2} \right) \)は必ずプラスとなるため、この関数は\( f(x) = x^{2} \)のように、下に凸の外形になります。

このため、微分値ゼロのところで極小値(最小値)になります。

\( \beta \)についての微分がゼロとは

\( \hspace{10pt} \displaystyle \frac{ d \left( 誤差の二乗和 \right) }{d \beta} \hspace{15pt} =  2 \left( \sum_{i=1}^{n}x_{i}^{2} \right) \beta – 2\left( \sum_{i=1}^{n}x_{i} y_{i} \right) = 0\)

となります。

よって、

$$ \hspace{10pt} \displaystyle \beta =  \frac{\displaystyle \sum_{i=1}^{n}x_{i} y_{i} }{\displaystyle \sum_{i=1}^{n}x_{i}^{2} } $$

で「誤差の二乗和」は極小値(最小値)となります。

この\( \beta \)を最初に仮定した関係式\( \displaystyle y = \beta x \)に代入すると、データの組の最終的な関係式は次式となります。

$$ \hspace{10pt} \displaystyle y =   \left( \frac{\displaystyle \sum_{i=1}^{n}x_{i} y_{i} }{\displaystyle \sum_{i=1}^{n}x_{i}^{2} } \right) x $$

例題:バネの実験

あるバネについて、「伸び」とその時のバネの引っ張る「力」を計測する実験を20回行ったところ、以下の計測値が得られたとします。

データNo.\( F \):力\( l \):バネの伸び
10.010.16513
20.062110.07002
30.114210.13161
40.166320.15908
50.218420.01799
60.270530.28499
70.322630.17251
80.374740.39585
90.426840.37102
100.478950.5874
110.531050.51242
120.583160.58462
130.635260.52771
140.687370.75159
150.739470.72144
160.791580.85361
170.843680.92478
180.895790.97358
190.947890.92415
2010.81081

グラフにすると下図になります。

関係式が次式のような一次式に従うと仮定し、最小二乗法を適用してみます。

\( \displaystyle l = \beta F \)

先程の\( \beta \)を求める式におい\( n \)⇒\( 20 \)、\( x \)⇒\( F \)、\( y \)⇒\( l \)と置き換えると、次式になります。

\( \hspace{10pt} \displaystyle \beta =  \frac{\displaystyle \sum_{i=1}^{20}F_{i} l_{i} }{\displaystyle \sum_{i=1}^{20}F_{i}^{2} } \)

これを具体に計算すると\( \beta=0.9825 \)となり、推定される関係式は

\( \displaystyle l = 0.9825 F \)

となります。

グラフにすると下図となり、バラツキの中心付近を通ります。

ちなみに、誤差の二乗和をグラフにすると次図になり、\( \beta=0.9825 \)で極小値(最小値)になります。

何に使う?

回帰分析

回帰分析も目的は「データ間の関係式を求める」ことです。

そして、回帰分析からすると最小二乗法はその手段の一つです。

この記事では、最も単純なケース(求める関係式の係数が一つの場合)で最小二乗法を解説しましたが、回帰分析の手法である単線形回帰や重線形回帰は関係式の係数が複数の場合の最小二乗法です。

このため、最小二乗法の基本的な考え方がわかり、なおかつ、多変数関数の最小値の求め方(勾配ベクトルがゼロ)が分かれば、単線形回帰、重線形回帰も理解できます。

なお、最尤法を用いても、最小二乗法と同じ関係式を導出できますが、最小二乗法による導出で十分と思われますので、割愛します。

単線形回帰については、次のページをご覧ください。

ご意見・ご感想をください
葉っぱ

サイトをご訪問いただき、ありがとうございました。
このサイトの作成者の葉っぱです。
分かりやすく、面白いサイトを作るため、ご意見・ご感想をいただけると嬉しいです。
いただく際は次のTwitterのDM、もしくはページ下部の「お問い合わせ」からお願いいたします。

目次(このページで分かること)