MATLAB,Python,Scilab,Julia比較 第2章 その52【単回帰分析①】

MATLAB,Python,Scilab,Julia比較 第2章 その52【単回帰分析①】 数値計算
MATLAB,Python,Scilab,Julia比較 第2章 その52【単回帰分析①】

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

はじめに

正規方程式を用いた、単回帰分析について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

単回帰分析

フクさん
フクさん

前回で、正規方程式を導出したので、
これを使用して単回帰分析を行う。

太郎くん
太郎くん

具体的にはどうするの?

フクさん
フクさん

以下の流れになる。

  • 最小化したい二乗和誤差関数の特定
  • 正規方程式の各成分の定義
  • 単回帰分析の実施
フクさん
フクさん

実は、上二つは前回すでにやってはいるが、
念のため改めて再掲しておくってのが今回の趣旨だな。

太郎くん
太郎くん

確かに、正規方程式の利用例みたいな感じで書いてはくれたけど、
改めてやってもらった方がよいなー。

単回帰分析の二乗和誤差関数

フクさん
フクさん

前回も見せたが、単回帰分析は1次関数によるフィッティングなので、以下が二乗和誤差関数になる。

\(
\displaystyle\sum_{i=1}^n\{(\alpha x_i+\beta)-y_i\}^2
\)

太郎くん
太郎くん

これが最小になる条件の線が求めたいものってことだね。

正規方程式の各成分の定義

フクさん
フクさん

\((Ax-b)^2\)で最小化問題を解く場合はの各成分は以下となる。

\(
A=
\begin{bmatrix}
x_1 & 1\\
x_2 & 1\\
\vdots & \vdots\\
x_n & 1\\
\end{bmatrix},
\vec{x}=
\begin{bmatrix}
\alpha\\
\beta
\end{bmatrix},
\vec{b}=
\begin{bmatrix}
y_1\\
y_2\\
\vdots\\
y_n
\end{bmatrix}
\)

太郎くん
太郎くん

方程式が\((Ax-b)^2\)で一般化されてるから、
これをどう解釈したかってところだね。
一般化されたものを具体化するってやつか。

フクさん
フクさん

そうそう。

単回帰分析の実施

フクさん
フクさん

あとは正規方程式に上記パラメータを入れるだけで求めたい1次関数の各係数が求まる。

\(
x=(A^TA)^{-1}A^Tb
\)

太郎くん
太郎くん

これを各ツール、各言語でやっていくって感じか。

フクさん
フクさん

そうそう。
計算のステップ自体は大したことはないはずだ。

太郎くん
太郎くん

以下の流れかな。

  • サンプリングデータの用意
  • 正規方程式のパラメータへ成形
  • 正規方程式で各係数算出
  • サンプリングデータと求めらえた関数のプロット
フクさん
フクさん

それでOKなはずだ。

太郎くん
太郎くん

なんかモチベーション上がってきたー!

まとめ

フクさん
フクさん

まとめだよ。

  • 正規方程式を使って単回帰分析を行う。
  • 単回帰分析の二乗和誤差関数の定義。
  • 正規方程式の各成分の定義。
  • 上記を元に各ツール、各言語で演算を実施すればOK。

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

コメント

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