今回はデータ処理の一つの要である最小二乗法について学ぶ.
2つの変数間の関係が理論的に判っているものを実験などで計測し,その係数を求めたい場合がある.(例えば比例関係となるばね係数や,1次遅れ系の時定数など)
実際の実験データや計測データなどには「測定誤差」が含まれるため,例えば線形関係でも一直線上にデータが綺麗に並ぶとは限らない.
このような場合は,得られたデータ群をもとに最もよく当てはまる関数の係数を決める方法が用いられる.
その代表例が最小二乗法である.
最小二乗法で決定できる関数の形は様々であり,工学でよく用いられる関数は1次関数の他に二次関数、高次の多項式,指数関数,周期関数など,様々な場面で用いられる.
いま,比例関係にある計測データとして $N$
個の点群 ($x_i , y_i$) が得られたとする.
これらのデータから,もっともよく当てはまる関数(この場合は直線)の係数を決定する方法が,最小二乗法である.
求めたい直線の式を $y=ax+b$ とする.
$a, b$ は,定数とする.
ここでは,簡単な直線の例で示すが,2次関数,指数関数などの最小二乗法においても,考え方は同じである.
直線と,既知の点との差(青色矢印の部分)は,当てはめの度合いを示しており,残差と呼ばれる.
残差の合計が小さいほど,直線が点群の傾向をよく表していると言える.
ただし,残差の値は正負になるのでそのまま足すとよろしくない.
そこで,残差を二乗して足したものを最小化することを考える.
残差の二乗和を $e$ は以下の式で表される. 残差は直線の傾きと切片 $(a,b)$ の関数となる.
\begin{align} e(a,b) = \sum_{i=0}^{N-1}\left( y_i - (ax_i+b)\right)^2 \end{align}
$e$ は $ a, b$ の2次関数となるので,これが最小となる必要条件は,
\begin{align} \dfrac{\partial e}{\partial a} = \sum_{i} 2\left( y_i - (ax_i+b)\right)(-x_i)=0 \notag\\ \dfrac{\partial e}{\partial b} = \sum_{i} 2\left( y_i - (ax_i+b)\right)(-1)=0 \end{align}
である.式を展開して
\begin{align} \sum x_iy_i - a\sum x_i^2 - b\sum x_i=0 \notag\\ \sum y_i -a\sum x_i -b\sum 1=0 \end{align}
これは,$a,b$ に関する連立一次方程式であるから,$a, b$ について解いて
\begin{align} a &= \dfrac{\sum x_i\sum y_i - N\sum x_iy_i}{\left(\sum x_i\right)^2-N\sum x_i^2} \notag\\ b &= \dfrac{\sum x_iy_i\sum x_i - \sum x_i^2\sum y_i}{\left(\sum x_i\right)^2-N\sum x_i^2}\\ \end{align}
となる.
一見複雑に見えるが,それぞれ右辺は既知の点
$(x_i, y_i)$ の算術演算のみで表されるから,
簡単な代数計算により係数 $a, b$ が求まる.
計算のヒント: