最小2乗法
- \(
z = \sum \{ y_i - (a + b x_i) \}^2
\)
- が最小になるように選ばれる。ただし, \( \sum = \displaystyle \sum_{i=1}^{n} \) とする。
-
- \(z\) を \(a\),\(b\) でそれぞれ偏微分し,\(0\) とおく。
- \begin{align}
an + b\sum x_i &= \sum y_i\\
a\sum x_i + b\sum x_i^2 &= \sum x_i y_i
\end{align}
- これらを連立して解けば,\(a\),\(b\) を得ることができる。
-
- 連立方程式を行列に変換する。
- 左辺の係数を係数行列とし,\(\boldsymbol{A}\) とおく。
- \(
\boldsymbol{A} =
\begin{pmatrix}
n & \sum x_i \\
\sum x_i & \sum x_i^2
\end{pmatrix}
\)
-
- 変数 \(a\) および \(b\) を列ベクトルとし,\(\boldsymbol{X}\) とおく。
- \(
\boldsymbol{X} =
\begin{pmatrix}
a \\
b
\end{pmatrix}
\)
-
- 右辺の定数項を列ベクトルとし,\(\boldsymbol{C}\) とおく。
- \(
\boldsymbol{C} =
\begin{pmatrix}
\sum y_i \\
\sum x_i y_i
\end{pmatrix}
\)
-
- このように定義された行列およびベクトルによって上記の連立方程式を表現できる。
- \(
\boldsymbol{A}\boldsymbol{X} = \boldsymbol{C}
\)
- すなわち
- \(
\begin{pmatrix}
n & \sum x_i \\
\sum x_i & \sum x_i^2
\end{pmatrix}
\begin{pmatrix}
a \\
b
\end{pmatrix}
=
\begin{pmatrix}
\sum y_i \\
\sum x_i y_i
\end{pmatrix}
\tag{1}
\)
-
- \(
\displaystyle
\frac{\Delta_i}{D}
\)
- は \(i\) 番目の変数の解となる。これをクラマーの公式という。ただし,\(D \ne 0\)。
-
- 具体的には
- \begin{align}
D &= |\boldsymbol{A}|\\
&=
\begin{vmatrix}
n & \sum x_i \\
\sum x_i & \sum x_i^2
\end{vmatrix}\\
&=n \sum x_i^2 - (\sum x_i)^2
\end{align}
-
- \begin{align}
\Delta_a &=
\begin{vmatrix}
\sum y_i & \sum x_i \\
\sum x_i y_i & \sum x_i^2
\end{vmatrix}\\
&= \sum x_i^2 \sum y_i - \sum x_i \sum x_i y_i
\end{align}
-
- \begin{align}
\Delta_b &=
\begin{vmatrix}
n & \sum y_i \\
\sum x_i & \sum x_i y_i
\end{vmatrix}\\
&= n \sum x_iy_i - \sum x_i \sum y_i
\end{align}
-
- したがって
- \begin{align}
a &= \displaystyle \frac{\Delta a}{D}\\
&= \displaystyle \frac{\sum x_i^2 \sum y_i - \sum x_i \sum x_i y_i}{n \sum x_i^2 - (\sum x_i)^2}
\tag{2}
\end{align}
- \begin{align}
b &= \displaystyle \frac{\Delta b}{D}\\
&= \displaystyle \frac{n \sum x_i y_i - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2}
\tag{3}
\end{align}
-
- ここで,\(|D| \ll 1\) となるときには値が発散するので,位取りを工夫するなどして回避する必要がある。
-
-
- \(
\boldsymbol{X} = \boldsymbol{A}^{-1} \boldsymbol{C} = \boldsymbol{B}
\)
- 新たに得られる定数ベクトル \( \boldsymbol{B} \) の各要素は各変数の解に等しい。
-
- 逆行列を手計算によって求めるのは煩雑なので,Excelを利用する。
- 係数行列 \(\boldsymbol{A}\) と定数ベクトル \(\boldsymbol{C}\) の各要素を入力する。
- \(\boldsymbol{A}\) と同じ大きさの領域を別の場所にドラッグして選択する。
- 「=minverse(」を入力。
- \(\boldsymbol{A}\) をドラッグして選択。→範囲が入力される。
- 「)」を入力。<Shift>と<Ctrl>を同時に押しながら<Enter>を押して確定。→逆行列 \(\boldsymbol{A}^{-1}\) の要素が表示される。
- \(\boldsymbol{C}\) と同じ大きさの領域を別の場所にドラッグして選択する。
- 「=mmult(」を入力。
- \(\boldsymbol{A}^{-1}\) をドラッグして選択。→範囲が入力される。
- 「,」を入力。\(\boldsymbol{C}\) をドラッグして選択。→範囲が入力される。
- 「)」を入力。<Shift>と<Ctrl>を同時に押しながら<Enter>を押して確定。→定数ベクトル \(\boldsymbol{B}\) の要素が表示される。
- 詳細は Excelによる連立1次方程式の解法 を参照のこと。
-
-
- \begin{align}
a\sum x_i^2 + b\sum x_i^3 &= \sum x_i y_i\\
a\sum x_i^3 + b\sum x_i^4 &= \sum x_i^2 y_i
\end{align}
- これらを連立して解けば,\(a\),\(b\) を得ることができる。
-
-
- \(
\begin{pmatrix}
\sum x_i^2 & \sum x_i^3 \\
\sum x_i^3 & \sum x_i^4
\end{pmatrix}
,
\begin{pmatrix}
\sum x_i y_i \\
\sum x_i^2 y_i
\end{pmatrix}
\)
-
- \(a\), \(b\) を算出する。
- \begin{align}
a &= \displaystyle \frac{\Delta a}{D}\\
&= \displaystyle \frac{\sum x_i^4 \sum x_i y_i - \sum x_i^3 \sum x_i^2 y_i}{\sum x_i^2 \sum x_i^4 - (\sum x_i^3)^2}
\end{align}
- \begin{align}
b &= \displaystyle \frac{\Delta b}{D}\\
&= \displaystyle \frac{\sum x_i^2 \sum x_i^2 y_i - \sum x_i^3 \sum x_i^2 y_i}{\sum x_i^2 \sum x_i^4 - (\sum x_i^3)^2}
\end{align}
-
-
- \(
\displaystyle
\frac{1}{d^2} = \frac{4}{3} \left( \frac{h^2+hk+k^2}{a_0^2} \right)+\frac{l^2}{c_0^2}
\)
- なる関係がある。
- 粉末X線回折の結果から \(n\) 本の回折線を得た。面間隔と,それに対応する Miller指数から,最小2乗法によって格子定数を推定する方法を説明せよ。
-
- 解
-
最小2乗法