最小二乗法

**最小二乗法**（さいしょうにじょうほう、さいしょうじじょうほう；**最小自乗法**とも書く、）は、誤差を伴う測定値の処理において、その誤差の二乗の和を最小にするようにし、最も確からしい関係式を求める方法である。測定で得られた数値の組を、適当なモデルから想定される1次関数、対数曲線など特定の関数を用いて近似するときに、想定する関数が測定値に対してよい近似となるように、残差平方和を最小とするような係数を決定する方法、あるいはそのような方法によって近似を行うことである。

## 歴史
はじめて最小二乗法の概念が発表されたのは1806年にアドリアン＝マリ・ルジャンドルが出版した『彗星軌道の決定のための新方法』である。しかし、1809年にカール・フリードリヒ・ガウスが出版した『天体運動論（Theoria motus）』の中で1795年頃から最小二乗法を用いて天体の軌道を計算していることを述べた（実際に1801年大晦日、小惑星セレスの軌道をガウスは当てている）ため、その後ドイツとフランスで最小二乗法の先見者の激しい論争が起こった。

ルジャンドルは現在広く知られている正規方程式を作り出すなどの功績を残した。ガウスは最小二乗法の発見後、1797年から1798年の二年間、誤差の確率分布の研究に専念し、正規分布を発見した。さらに、もし誤差が正規分布に従うならば、最小二乗法によって推定された回帰係数が最尤推定値に一致することを証明している。
このような功績から（ルジャンドルの研究には確率論的な要素が不足していることもあり）最小二乗法を確立したのはガウスとされるのが一般的である。

また、1812年にピエール＝シモン・ラプラスは『確率の解析的理論（Analytical Theory of Probabilities）』において最小二乗法の確率論的根拠を論じており、独立な誤差の和の確率分布が正規分布に従うこと（中心極限定理）を証明している。

## 計算の概要
### 前提条件
最小二乗法では測定データ y はモデル関数 f(x) と誤差 \varepsilon の和で
:y=f(x)+\varepsilon
と表せるとする。物理現象の測定データには、誤差が含まれ、それは系統誤差と偶然誤差を含んでいる。この内、偶然誤差は、測定における信号経路の微視的現象に由来するならば、正規分布であると期待されることが多い。また、社会調査などの誤差理由の特定が困難な場合でも誤差が正規分布になると期待する考え方もある。

誤差が正規分布に従わない場合、最小二乗法によって得られたモデル関数はもっともらしくないことに注意する必要がある。偶然誤差が正規分布していない場合、系統誤差が無視できない位大きくそれをモデル関数に含めていない場合、測定データに正規分布から大きく外れた外れ値を含む場合などが該当する。

上記を含め、最小二乗法の理論的基盤には次のような前提が設けられている。
* 測定値の誤差には偏りがない。すなわち誤差の平均値は 0 である。
* 測定値の誤差の分散は既知である。ただし測定データごとに異なる値でも良い。
* 各測定は互いに独立であり、誤差の共分散は 0 である。
* 誤差は正規分布する。
* *<math>m</math>* 個のパラメータ（フィッティングパラメータ）を含むモデル関数 f が知られていて、測定量の真の値を近似誤差なく再現することのできるパラメータが存在する。

### 基礎的な考え方
話を簡単にするため、測定値は x, y の二次元の平面に分布するものとし、想定される分布（モデル関数）が y=f(x) の形である場合を述べる。想定している関数 f は、既知の関数 g(x) の線型結合で表されていると仮定する。すなわち、

例えば、 g_k(x)=x^{k-1} は、多項式近似であり、特に *<math>m = 2</math>* の時は f(x)= a_1 + a_2 x という直線による近似（線形回帰）になる。

今、測定で得られた、次のような数値の組の集合があるとする。

これら (x, y) の分布が、y = f(x) というモデル関数に従うと仮定した時、想定される理論値は

ということになり、実際の測定値との残差は、各 i につき |y_i - f(x_i)| ということになる。

この残差の大きさは、xy 平面上での (x_i, y_i) と (x_i, f(x_i)) との距離でもある。

ここで、理論値からの誤差の分散の推定値は残差の平方和

で与えられるから、*<math>J</math>* が最小になるように想定分布 f を（すなわち a_k を）、定めればよいということになる。

それには、上式は *<math>a_k</math>* を変数とする関数と見なすことができるので、*<math>J</math>* を *<math>a_k</math>* について偏微分したものを 0 と置く。こうして得られた *<math>m</math>* 個の連立方程式（正規方程式）を解き、*<math>a_k</math>* を決定すればよい。

### 一次方程式の場合
さらに簡単な例として、モデル関数を1次関数とし、
:f(x)=ax+b\,
とおくと、*<math>a, b</math>* は次式で求められる。
:a=\frac{n\textstyle\sum\limits_{k=1}^n x_k y_k -\sum\limits_{k=1}^n x_k \sum\limits_{k=1}^n y_k}{n\textstyle\sum\limits_{k=1}^n {x_k}^2 -\left( \sum\limits_{k=1}^n x_k \right)^2}
:b=\frac{\textstyle\sum\limits_{k=1}^n {x_k}^2 \sum\limits_{k=1}^n y_k -\sum\limits_{k=1}^n x_k y_k \sum\limits_{k=1}^n x_k}{n\textstyle\sum\limits_{k=1}^n {x_k}^2 -\left( \sum\limits_{k=1}^n x_k \right)^2}
:

## 解法例
当てはめたい関数 *<math>f</math>* は、

と表すことができる。上付き添字 T は転置行列を表す。最小にすべき関数 *<math>J</math>* は
:
\begin{align}
J (\boldsymbol{a}) &= (G \boldsymbol{a}-\boldsymbol{y})^\textrm{T} \, (G \boldsymbol{a}-\boldsymbol{y}) \\
&= \left(\begin{bmatrix} G & \boldsymbol{y} \end{bmatrix} \begin{bmatrix}  \boldsymbol{a}\\ -1\end{bmatrix} \right)^\textrm{T} \, \left(\begin{bmatrix} G & \boldsymbol{y} \end{bmatrix} \begin{bmatrix}  \boldsymbol{a}\\ -1\end{bmatrix} \right)
\end{align}

と表される。ここに *<math>G</math>* は、G_{ij} = g_j(x_i) なる成分を持つ *<math>n \times m</math>* 行列、 \boldsymbol{y}=(y_1, y_2, \ldots, y_n)^\textrm{T}、係数\boldsymbol{a}=(a_1, a_2, \ldots, a_m)^\textrm{T} である。

これの最小解 \boldsymbol{a} は、\begin{bmatrix} G & \boldsymbol{y} \end{bmatrix} ^\textrm{T} \begin{bmatrix} G & \boldsymbol{y} \end{bmatrix}  = \tilde{R}^\textrm{T} \tilde{R} を満たす上三角行列\tilde{R}の計算を経て、解 \boldsymbol{a} を得ることができ、全体の計算量に無駄が少ない。下記の表式を用いると \tilde{R} = \begin{bmatrix} R  & Q^\textrm{T} \boldsymbol{y} \\ \boldsymbol{0}^\textrm{T} & \alpha \end{bmatrix}  が得られ、R \boldsymbol{a}= Q^\textrm{T} \boldsymbol{y} から係数解 \boldsymbol{a} を求める。

また前節で述べたように *J* を\boldsymbol{a}のそれぞれの成分で偏微分して 0 と置いた *<math>m</math>* 個の式（正規方程式）は行列を用いて、

と表される。これを**正規方程式**（）と呼ぶ。この正規方程式を解けば係数解 \boldsymbol{a} が求まる。

係数解 \boldsymbol{a} の解法には以下のようないくつかの方法がある。

* 逆行列で正規方程式を解く
*: 行列 G^TG が正則行列（つまりフルランク）である場合は、解 \boldsymbol{a} = (G^\textrm{T} G)^{-1} G^\textrm{T} \boldsymbol{y} は一意に求まる。ただし G^TG の逆行列を明示的に求めることは通常は良い方法ではない。
:: 計算量が小さい方法としてコレスキー分解（G^\textrm{T} G = R^\textrm{T} R、R は *<math>m \times m</math>* 上三角行列）による三角行列分解を経て、最終的に R \boldsymbol{a}= R^{-\textrm{T}} G^\textrm{T} \boldsymbol{y} を解けばよい。
:: 数値的安定性確保のためには、積 G^TG を経ない三角行列分解が良い。すなわち以下と同じくQR分解（直交分解）による G = Q R から、R \boldsymbol{a}= Q^\textrm{T} \boldsymbol{y} を解く。

* 直交分解で正規方程式を解く
*: コレスキー分解の方法よりも計算量が大きいが、数値的に安定かつ汎用な方法として、QR分解や特異値分解（SVD）を用いる方法がある。これらの方法では計算の過程で積 G^TG を必要としないため数値的安定性が高い。また G^TG が正則行列でない（ランク落ちしている）場合は正規方程式の解が不定となるが、その場合でも、これらの手法では解 *a* のうちノルムが最も小さいものを求めることができる。特異値分解を用いる場合は、特異値のうち極めて小さい値を 0 とみなして計算することで数値計算上の大きな誤差の発生を防ぐことができる()。
* 擬似逆行列を使う方法もあるが、計算効率が悪いため、特殊な場合（解析的な数式が必要な場合など）を除いてあまり用いられない。

## 拡張
### 多次元
想定される分布が媒介変数 *t* を用いて (x, y) = (f(t), g(t)) の形（あるいは f, g は複数の媒介変数によって決まるとしても同様）であっても考察される。

すなわち、測定値 (x_i, y_i) がパラメータ t_i に対する (f(t_i), g(t_i)) を理論値として近似されているものと考えるのである。

この場合、各点の理論値 (f(t_i), g(t_i)) と測定値 (x_i, y_i) の間に生じる残差は

である。故に、残差平方和は

となるから、この値が最小であるように、f, g を決定するのである。

このように、*<math>n</math>* 組の (x, y) の測定値 (x_i, y_i)(i = 1, 2, ..., n) を*<math>n</math>* 組の (x_1, x_2, ..., x_m) の測定値 (x_{1i}, x_{2i}, ..., x_{mi})(i = 1, 2, ..., n) に拡張したものも考察することができる。

### 測定の誤差が既知の場合
*<math>n</math>* 回の測定における誤差があらかじめ分かっている場合を考える。異なる測定方法で測定した複数のデータ列を結合する場合などでは、測定ごとに誤差が異なることはしばしばある。誤差が正規分布していると考え、その標準偏差  \sigma_i (i=1,2,\ldots,n ) で、誤差の大きさを表す。すると、誤差が大きい測定より、誤差が小さい測定の結果により重みをつけて近似関数を与えるべきであるから、

を、最小にするように *f* を定める方がより正確な近似を与える。

毎回の測定が独立ならば、測定値の尤度は *<math>exp(-J')</math>* に比例する。そこで、上記の *<math>J'</math>* を最小にする *<math>f</math>* は、最尤推定値であるとも解釈できる。また、*<math>J'</math>* は自由度 *<math>n-m</math>* のカイ二乗分布に従うので、それを用いてモデル *<math>f</math>* の妥当性を検定することもできる。

毎回の測定誤差が同じ場合、*<math>J'</math>* を最小にするのは *<math>J</math>* を最小にするのと同じ意味になる。

### 非線形最小二乗法

もし、*<math>f</math>* が、*<math>a_k</math>* の線型結合で表されないときは、正規方程式を用いた解法は使えず、反復解法を用いて数値的に *<math>a_k</math>* の近似値を求める必要がある。例えば、ガウス・ニュートン法やレーベンバーグ・マーカート法が用いられる。とくにレーベンバーグ・マーカート法（）は多くの多次元非線形関数でパラメータを発散させずに効率よく収束させる（探索する）方法として知られている。

### 異常値の除去
前提条件の節で述べたように、測定データを最小二乗法によって近似する場合、外れ値または異常値が含まれていると極端に近似の尤もらしさが低下することがある。また、様々な要因によって異常値を含む測定はしばしば得られるものである。

誤差が正規分布から極端に外れた異常値を取り除くための方法として修正トンプソン-τ法が用いられる。

## 関連項目

*  ()
* ガウス＝マルコフの定理
* 曲線あてはめ

## 脚注

### 注釈


### 出典