0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【統計基礎】なぜ最小"二乗"法か?

Posted at

はじめに

統計や機械学習の入門書では必ずといって良いほど登場する「単回帰分析」。
これは説明変数$x$と目的変数$y$の間の関係を$$ y = ax + b $$と推定するものだが、このような関係式を求めるために「最小二乗法」を使うのが普通だ。

しかしながら、なぜ最小"二乗"法なのかを説明している教科書は少ないと思う。
誤差を最小化したいのであれば、「最小絶対値法」でも「最小四乗法」とかでも良いのではないか?

本記事では、よく知られた「最小二乗法」がなぜ標準たり得るのかを解説する。

想定読者としては、

  • 統計・機械学習の勉強を始めたばかりの人
  • 一通り入門書を読み終わった程度の人
  • 回帰を使ったデータ分析は行っているが、背後にある理論には自信がない人

あたりを考えている。

数式がメインの説明になり、本記事を全部理解しようとすると大学1~2年程度の数学は必要になるが、大事なのは「よく使われている最小二乗法にはちゃんとした理論的基盤が存在する」ということであり、数式は追える人だけ追えばよいと思う。

最小二乗法のおさらい

先述の通り、単回帰分析とは説明変数と目的変数の関係を $y=ax+b$ という関係式で推定するものである。
$$ (x_1, y_1), ~(x_2, y_2), ~\cdots, ~(x_n, y_n) $$というデータが得られているとすると、単回帰分析による $y_i$ の予測値 $\hat{y}_i$ は $$ \hat{y}_i = ax_i + b $$ であるので、誤差 $e_i$ は$$ e_i = y_i - \hat{y}_i = y_i - ax_i - b $$となる。

よって最小二乗法は、$$ \sum_{i=1}^n e_i^2 = \sum_{i=1}^n (y_i - ax_i - b)^2 $$を最小化するように $a$ と $b$ を決定する。

と、ここで、疑問がひとつ。

全体の誤差を最小化したいのであれば、二乗である必然性はないのではないか?

誤差は負になり得るので、$e_i$ の単純な和をとるのは流石に不適だとしても、

最小絶対値法
$$ {\rm minimize} ~\sum_{i=1}^n |y_i - ax_i - b| $$
や、
最小四乗法
$$ {\rm minimize} ~\sum_{i=1}^n (y_i - ax_i - b)^4 $$
でも特に問題ないのではないか。

最尤法

さっそく答えを書くと、キーワードは「最尤法」である。
最尤法とは、おおざっぱに言うと「与えられたデータが(ある仮定のもとで)一番それっぽく見えるパラメータを選ぶ」方法である。
ググればいくらでも解説は出てくるので、最尤法自体の説明は割愛するが、最小二乗法とは「誤差を正規分布と仮定した最尤法」なのである。

最尤法からの最小二乗法の導出

単回帰モデルにおいて、誤差 $e_i$ が互いに独立に平均0、標準偏差 $\sigma$ の正規分布に従うと仮定すると、誤差 $e_i$ の確率密度関数は
$$ PDF(e_i) = \frac{1}{\sqrt{2\pi}\sigma} {\rm exp} \left(-\frac{e_i^2}{2\sigma^2}\right) = \frac{1}{\sqrt{2\pi}\sigma} {\rm exp} \left(-\frac{(y_i - ax_i - b)^2}{2\sigma^2}\right)$$
となる。

データ $$ (x_1, y_1), ~(x_2, y_2), ~\cdots, ~(x_n, y_n) $$ が得られているときの尤度関数 $l ~(a, b)$ は
$$ l ~(a, b) = \prod_{i=1}^n ~\frac{1}{\sqrt{2\pi}\sigma} {\rm exp} \left(-\frac{(y_i - ax_i - b)^2}{2\sigma^2}\right) $$

最尤法の定石として、対数尤度関数をとり、
$$ L ~(a, b) = \log l ~(a, b) = n\log\left(\frac{1}{\sqrt{2\pi}\sigma}\right) - \frac{1}{2\sigma^2} \sum_{i=1}^n (y_i - ax_i - b)^2$$
これを最大化する $a$、$b$ が求めるものである。
右辺第1項、および $\Sigma$ の係数は $a$、$b$ に無関係なので、結局
$$-\sum_{i=1}^n (y_i - ax_i - b)^2$$
を最大化、すなわち
$$\sum_{i=1}^n (y_i - ax_i - b)^2$$
を最小化する $a$、$b$ を求めればよい。これは最小二乗法そのものではないか。

つまり、最尤法による回帰係数の決定方法は最小二乗法と一致する。

これこそが、最小二乗法が最小"二乗"法たり得る所以なのである。

まとめ

以上のように、最小二乗法が実は最尤法と一致していたことを見ることができた。
この性質ゆえ、数ある「全体的な誤差が小さくなるように回帰係数を決める方法」の中でも最小二乗法が妥当とされているのだろう。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?