最小二乗法

 理系学部に入学すると、大学1回生に一般教養科目の一つで実験の授業があると思います。そして、その実験において、データをまとめる作業の工程で最小二乗法という言葉を目にすることになるかと思います。私も最小二乗法というものは大学1回生の実験の授業で初めて知りました。

 また、この第4次産業革命真っ只中の時代、ビッグデータ、データマイニング、AIの技術が発展しようとしていますが、これらに重要な学問は統計学になります。そして最小二乗法というものはその統計学を勉強する時に最初の方に出てくる、基本的なデータ分析法になります。つまり、この第4次産業革命真っ只中の時代において、最小二乗法というものは当たり前のように知っていなければなりません。

 ここではその最小二乗法について、中高生でもわかるように心掛け、順を追って説明したいと思います!

 

 ~目次~

回帰分析

最小二乗法

 ☑公式(結論)

 ☑残差

 ☑残差平方和

 ☑公式の導出((a)と(b)の導出)

まとめ

 

  

・回帰分析

 最小二乗法について理解する前に、まずは回帰分析とは何かについて、下記記事を読んでから続きをお読みください。

 

 

・最小二乗法

☑公式(結論)

 

 上記の「回帰分析とは?」の記事のビールの例における \(y=a+bx\) の \( a \) と \( b\) の結果を先に紹介します。これを公式として、覚えてもらっても問題無いかと思います。

 

 \[ \left\{ \begin{array}{l} a= \bar{y}-b\bar{x} \\ b= \displaystyle\frac {(x_{1}y_{1}+x_{2}y_{2}+\cdots+x_{i}y_{n})-n\bar{x}\bar{y}} {(x^{2}_{1}+x^{2}_{2}+\cdots+x^{2}_{i})-n\bar{x}^2} = \displaystyle\frac {\sum^{n}_{i=1}x_{i}y_{i}-n\bar{x}\bar{y}} {\sum^{n}_{i=1}x^{2}_{i}-n\bar{x}^2} \end{array} \right. \]

 

 ただし、 \( n \) は全データの総数、 \( \bar{x} \) は \( x_{1} \cdots x_{n} \) の平均値、 \( \bar{y} \) は \( y_{1} \cdots y_{n} \) の平均値

 

 

 次に、 \( a \) と \( b\) の導出方法について順を追って説明していきます。

 

☑残差

7点のデータが取られている様子

 上のデータのように7点の青点のデータが取られているとします。左から順番に \( (x_{1}, y_{1} ), ( x_{2}, y_{2} ) , \cdots , ( x_{7}, y_{7} ) \)とします。

 このデータもなんとなく右肩上がりで、次の図の緑点線ように線を引っ張ることができると思います。

7点のデータと直線

 この時の緑点線の直線の式を求めることが回帰分析を行うことでした。その直線の式をここでは\(\hat{y_i}=a+bx_i\)とします。

 ここで注意ですが、\(y\)と\(\hat{y} \)は別の値であることに気を付けてください。\(y_i\) はほんとのデータの値で、\(\hat{y_i} \)は回帰分析による推測値ということです。

 そうすると、基本的には \(y_i\)と\(\hat{y_i} \) は同じ値になることはほとんど無く、差があります。その差を残差と言い、\(e_i= y_i – \hat{y_i} \)と定義します。

 ところで、この残差 \(e_i \)でありますが、どうなった方が良いと思いますか??おわかりかと思いますが、 残差 \(e_i \) が0に近い値の方が、回帰分析により導出した直線の式 \(\hat{y_i}=a+bx_i\) が正確であると言えますよね。

 さらに、\(e_1 \)から\(e_7\) まで全ての\(e_i \)について、差が 0に近いければベストという事になります!

 

☑残差平方和

 上記でも述べたように、 \(e_1 \)から\(e_7\) まで全ての\(e_i \)について、差が 0に近いような \(a\)と\(b\) を求めようと思います。

 いくつか方法はありますが、一つは残差平方和最小になる時の \(a\)と\(b\) を考えることにします。残差平方和とは次式のように定義されます。 \[(残差平方和)=e^2_1+ e^2_2+ \cdots + e^2_n= \sum^n_{i=1} e^2_i = \sum^n_{i=1} (y_i-a-bx_i)^2\]

 「 \(e_1 \)から\(e_7\) まで全ての\(e_i \)について差が 0に近い 」=「 残差平方和より小さい値になる」 ということは、式から直感的にわかっていただけますよね!

 

 

☑ 公式の導出(\(a\)と\(b\)の導出)

  \(a\)と\(b\) を導出していきます。

 上記の残差平方和の式をまずは\(a\)について整理していきましょう。

  \[\begin{eqnarray} (残差平方和)&=&\sum^n_{i=1} (y_i-a-bx_i)^2\\ &=&\sum^n_{i=1} \{a-(y_i-bx_i)\}^2 \\ &=&\sum^n_{i=1} \{a^2-2(y_i-bx_i)a+(y_i-bx_i)^2\}\\ &=&\sum^n_{i=1}a^2-\sum^n_{i=1}2(y_i-bx_i)a+\sum^n_{i=1}(y_i-bx_i)^2\\ &=&na^2-2\{\sum^n_{i=1}(y_i-bx_i)\}a+\sum^n_{i=1}(y_i-bx_i)^2\\ &=&n[a^2-\displaystyle\frac{2}{n}\{\sum^n_{i=1}(y_i-bx_i)\}a]+\sum^n_{i=1}(y_i-bx_i)^2\\ &=&n\{a-\displaystyle\frac{1}{n}\sum^n_{i=1}(y_i-bx_i)\}^2+\displaystyle\frac{1}{n}\{\sum^n_{i=1}(y_i-bx_i)\}^2+\sum^n_{i=1}(y_i-bx_i)^2\\ \end{eqnarray}\]

 式が複雑そうに見えますが、やったことは \(a\) について整理を行い、 \(a\) についての2次関数になるので、頂点の座標がわかる形式に式を整理しただけです。高校数学の数Ⅰのレベルです!

 さて、今求めたいものは残差平方和の値が最も小さくなるような \(a\)と\(b\) の値です。ここで上式から残差平方和が最も小さくなる時の\(a\)と\(b\)の条件式がわかりますよね!上式は\(a\) についての2次関数になるので、放物線の頂点が最小値になるので、その時の \(a\)の値を求めればいいのです!

放物線の頂点

 よって、 残差平方和の値が最も小さくなる時、\[a= \displaystyle\frac{1}{n}\sum^n_{i=1}(y_i-bx_i)\]になります。ここで上式をもう少し整理したいと思います。

  \[\begin{eqnarray} a&=&\displaystyle\frac{1}{n}\sum^n_{i=1}(y_i-bx_i)\\ &=&\displaystyle\frac{1}{n}\sum^n_{i=1}y_i-\displaystyle\frac{b}{n}\sum^n_{i=1}x_i\\ &=&\bar{y}-b\bar{x} ・・・①\end{eqnarray}\]

 ただし、 \( \bar{x} \) は \( x_{1} \cdots x_{n} \) の平均値、 \( \bar{y} \) は \( y_{1} \cdots y_{n} \) の平均値

 

 これでようやく公式の1つ目の式を導出することができました!また、\(a\)と\(b\)の関係式を1つ作ることができました! \(a\)と\(b\) について連立方程式を立て、 \(a\)と\(b\) を求めたいので、もう一つ \(a\)と\(b\)の関係式を1つ作る必要があります。

 そこで次は、残差平方和の式を\(b\)について整理していきます! 今回は途中式は省略しますが、\(b\)についての2次関数と見た時、残差平方和の式は下記のように整理できます。

\[\begin{eqnarray} (残差平方和)&=&\sum^n_{i=1} (y_i-a-bx_i)^2\\ &=&(\sum^n_{i=1}x_i^2)\{b-\displaystyle\frac{\sum^n_{i=1}(y_i-a)x_i}{\sum^n_{i=1}x_i^2}\}^2-\displaystyle\frac{(\sum^n_{i=1}(y_i-a)x_i)^2}{\sum^n_{i=1}x_i^2}+\sum^n_{i=1}(y_i-a)^2 \end{eqnarray}\]

 

 よって、 残差平方和の値が最も小さくなる時、\[b= \displaystyle\frac {\sum^n_{i=1}(y_i-a)x_i}{\sum^n_{i=1}x_i^2}\]になります。 整理すると \[\sum^n_{i=1} x_iy_i =a\sum^n_{i=1}x_i+b\sum^n_{i=1}x_i^2・・・②\]です。

 ここで①式を②に代入すると、

\[\begin{eqnarray} \sum^n_{i=1} x_iy_i &=&(\bar{y}-b\bar{x})\sum^n_{i=1}x_i+b\sum^n_{i=1}x_i^2\\ b&=&\displaystyle\frac{\sum^n_{i=1} x_iy_i-\bar{y}\sum^n_{i=1} x_i}{\sum^n_{i=1}x_i^2-\bar{x}\sum^n_{i=1} x_i}\\ b&=&\displaystyle\frac{\sum^n_{i=1}x_iy_i-n\bar{y}(\displaystyle\frac{1}{n}\sum^n_{i=1}x_i)}{\sum^n_{i=1}x_i^2-n\bar{x}(\displaystyle\frac{1}{n}\sum^n_{i=1}x_i)}\\ b&=&\displaystyle\frac{\sum^n_{i=1} x_iy_i-n\bar{x}\bar{y}}{\sum^n_{i=1}x_i^2-n\bar{x}^2}\\ \end{eqnarray}\]

 

 2つ目の式も導出できました!

 

 

・まとめ

✓「数式でデータの関係を導くこと」を回帰分析といいます

✓回帰分析を行うために式を導出する必要があります。その一つに最小二乗法があります。

✓回帰分析により推測値\(\hat{y_i}=a+bx_i\) を求めたい場合、最小二乗法により \(a\)と\(b\) を求める必要があります。 \(a\)と\(b\) の導出の公式は下記の通りです。

 \[ \left\{ \begin{array}{l} a= \bar{y}-b\bar{x} \\ b= \displaystyle\frac {(x_{1}y_{1}+x_{2}y_{2}+\cdots+x_{i}y_{n})-n\bar{x}\bar{y}} {(x^{2}_{1}+x^{2}_{2}+\cdots+x^{2}_{i})-n\bar{x}^2} = \displaystyle\frac {\sum^{n}_{i=1}x_{i}y_{i}-n\bar{x}\bar{y}} {\sum^{n}_{i=1}x^{2}_{i}-n\bar{x}^2} \end{array} \right. \]

 

 ただし、 \( n \) は全データの総数、 \( \bar{x} \) は \( x_{1} \cdots x_{n} \) の平均値、 \( \bar{y} \) は \( y_{1} \cdots y_{n} \) の平均値

 

これで、推測値\(\hat{y_i}=a+bx_i\)を計算することができるのです!

 

 あなたも回帰分析により、 ビールの売り上げを気温から予測することができますね!しかし、ビールの売り上げは気温だけではもちろん説明できません。気温が低くても12月は忘年会やお歳暮、親戚一同集まったりとどう考えても寒くてもビール飲みますよね?つまりは、気温以外にも季節や月単位でビールの売り上げを説明できる要因があるということです。さらに、ビールの売り上げは複数の要因によって決まるという事です。

 複数の要因を分析する場合は、回帰分析といいました。後日、重回帰分析についても解説したいと思います!

1件のピンバック

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です