MATLAB,Python,Scilab,Julia比較 第2章 その21【最小二乗法⑳】

MATLAB,Python,Scilab,Julia比較 第2章 その21【最小二乗法⑳】 数値計算
MATLAB,Python,Scilab,Julia比較 第2章 その21【最小二乗法⑳】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia2-backnumber/

はじめに

平均、分散、共分散を用いた1次関数最小二乗法の係数算出について。
いままで導出してきた変形式を組み合わせてみる。
今回は係数\(b\)を求めるのがメイン。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

いままで導出してきた数式たち

フクさん
フクさん

じゃ、準備が整ったところで、
前回までの変形式たちを再掲しておこう。

\(
\begin{eqnarray}
\displaystyle a\sum 1 &=& an \dots 総和の変形 \\
\displaystyle n\bar{y}&=&\sum y_i \dots 平均の変形 \\
\displaystyle \sigma_x^2 &=&\bar{x_i^2}-(\bar{x})^2 \dots 分散の変形 \\
\displaystyle \sigma_{xy}&=&\frac{1}{n}\sum x_i y_i – \bar{x}\bar{y} \dots 共分散の変形
\end{eqnarray}
\)

フクさん
フクさん

さらに、1次関数最小二乗法を求めるための連立方程式も再掲しておく。

\(
\begin{eqnarray}
\displaystyle a\sum x_i^2 + b\sum x_i &=& \sum x_i y_i \dots (1)\\
\displaystyle a\sum x_i + b\sum 1 &=& \sum y_i \dots (2)
\end{eqnarray}
\)

太郎くん
太郎くん

これらを組み合わせると、1次関数最小二乗法を係数を求める数式が完成する・・・はずってことか。

フクさん
フクさん

そうそう。

係数bを求める

フクさん
フクさん

まずは(2)の式を元に係数\(b\)を求める。
総和の変形、平均を使用する
導出過程は以下になる。

\(
\begin{eqnarray}
\displaystyle a\sum x_i + b\sum 1 &=& \sum y_i \\
a\sum x_i + nb&=&\sum y_i \\
nb&=&\sum y_i – a\sum x_i \\
b&=&\frac{1}{n}\sum y_i-\frac{a}{n}\sum x_i \\
b&=&\bar{y}-a\bar{x} \qquad//
\end{eqnarray}
\)

太郎くん
太郎くん

おー!
\(y\)の平均と\(x\)の平均から\(b\)が求まるって理屈か!

係数aは?

太郎くん
太郎くん

あれ?でも\(a\)の値がわかってないから、
これだと\(b\)が求まらない??

フクさん
フクさん

そうだね。
現段階では\(a\)は不明。
よって、\(b\)も不明。

太郎くん
太郎くん

どうするの?

フクさん
フクさん

今回は(2)の式をつかっただけなので、
(1)の式に対して\(b\)を代入することで、\(b\)が消える。
結果として\(a\)が求まるはず。
\(a\)が求まれば、自然と\(b\)も求まる。
って理屈が使えそうだ。

太郎くん
太郎くん

普通の連立方程式と考え方は一緒か。

フクさん
フクさん

そうそう。

まとめ

フクさん
フクさん

まとめだよ。

  • いままでの導出した変形式と一次関数最小二乗法の連立方程式を再掲。
  • 最小二乗法の連立方程式の片方からbを算出。
    • aが不明なため、このままではbも不明だが、もう片方の式のbに代入すればaが求まる。
    • aが求まれば、bも求まるはず。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました