最小二乗法の計算はいろいろの場面で使ってきたが,原理とかあまり考えたことが無かったのでまとめてみた。
一次方程式が解ければあとは応用が効くと思うので,ここでは次の簡単な式で考えてみる。
\(y = a1 + a2・x \)
x,yの数組のデータが与えられて,最適なa1とa2を最小二乗法でもとめる問題である。
この式から次の誤差方程式ができる。
\(V = a1 + a2・x - y \) --- (1)
この式から最小二乗法により次の2つの方程式が得られる。
\(\displaystyle \frac{\partial ΣV^2}{\partial a1} = 0 \) --- (2)
\(\displaystyle \frac{\partial ΣV^2}{\partial a2} = 0 \) --- (3)
(2)式を展開すると以下となる。
\(\displaystyle \frac{\partial ΣV^2}{\partial a1} =\)
\(\displaystyle \frac{\partial Σ( a1 + a2・x - y)^2}{\partial a1} \)
\( = Σ 2(a1 + a2・x - y )= 0 \) --- (4)
同様に(3)式より,
\(\displaystyle \frac{\partial ΣV^2}{\partial a2} =\)
\(\displaystyle \frac{\partial Σ( a1 + a2・x - y)^2}{\partial a2} \)
\( = Σ 2x(a1 + a2・x - y )= 0 \) --- (5)
(4),(5)式は以下の行列式を意味する。定数の2は式全てにかけてあるので省略した。
\(
\left(\begin{array}{ccc}
Σ1 & Σx \\
Σx & Σx^2
\end{array}\right)
\left(\begin{array}{cc}
a1 \\
a2
\end{array}\right)
=\left(\begin{array}{cc}
Σy \\
Σxy
\end{array}\right)
\) --- (6)
これは2元1次の方程式なので、この行列式を解くことでa1,a2が求まる。
また,形からa3,a4と増えた場合は,行と列が増え,xの次数も上がっていくことが分かる。
【例題】次のデータでy=a1+a2・xのa1とa2をもとめる。
x | y |
0 | 0.9 |
5 | 4.3 |
10 | 6.5 |
15 | 10.3 |
各項目を計算すると以下の行列式となる。
\(
\left(\begin{array}{ccc}
4 & 30 \\
30 & 350
\end{array}\right)
\left(\begin{array}{cc}
a1 \\
a2
\end{array}\right)
=\left(\begin{array}{cc}
22.0 \\
241.0
\end{array}\right)
\) --- (7)
これを解くと,a1=0.940,a2=0.608が得られる。この値で計算し誤差を計算すると以下となる。
x | y | 計算値 | 誤差 |
0 | 0.9 | 0.94 | -0.04 |
5 | 4.3 | 3.98 | 0.32 |
10 | 6.5 | 7.02 | -0.52 |
15 | 10.3 | 10.06 | 0.24 |
誤差の2乗和は0.432となる。2個係数を決めたので誤差の偏差は以下となる。
\( s^2 = 0.432/(4-2) = 0.216 \)
\( s = 0.465 \) --- (8)
また,a1,a2の誤差の偏差は以下で計算できる。a1の場合,以下の行列の解を求める。
\(
\left(\begin{array}{ccc}
4 & 30 \\ 30 & 350
\end{array}\right)
\left(\begin{array}{cc}
a1 \\ a2
\end{array}\right)
=\left(\begin{array}{cc}
1.0 \\ 0.0
\end{array}\right)
\) --- (9)
この行列のa1の解はa1=0.70。これによりa1の誤差の偏差は以下で計算する。
a1誤差の偏差\(=s*\sqrt{a1}=s*\sqrt{0.7}\)=0.465x 0.837=0.389
同様にa2は次の行列で計算すると,a2=0.008となるので同様に,
a2誤差の偏差\(=s*\sqrt{a2}=s*\sqrt{0.008}\)=0.465x 0.0894=0.04159
\(
\left(\begin{array}{ccc}
4 & 30 \\ 30 & 350
\end{array}\right)
\left(\begin{array}{cc}
a1 \\ a2
\end{array}\right)
=\left(\begin{array}{cc}
0.0 \\ 1.0
\end{array}\right)
\) --- (10)
以上により最終結果は以下となる。
\(y = (0.94±0.39) + (0.608±0.042)x \) となる。
この結果は『測定値誤差とデータ解析の基礎事項』p.65の計算例と同じ結果である。