最小2乗法で最ももっともらしい線が引けるわけ

2019/12/26

こんにちは、たまおさ(@tamaki_osamu)です。

実験なんかをしていると最小2乗法をよく使いますよね。ところでなぜ最小 2 乗法はうまい具合に近似線を引いてくれるのでしょうか。ふと疑問に思ったので調べてみました。

最小 2 乗法

最小 2 乗法では、データ[(x1,y1),..,(xi,yi),..,(xN,yN)][(x_1,y_1),..,(x_i,y_i),..,(x_N,y_N)]が与えられたとき、

min{i=1N(yif^(xi))2}\min \left\{ \sum^N_{i=1}(y_i-\hat{f}(x_i))^2 \right\}

を満たす関数f^\hat{f}を求めます。すなわち、残差平方和(residual sum of squares: RSS)を最小化します。このようにして求めたf^\hat{f}は近似式としてもっともらしい関数になります。

では、一体なぜ残差平方和を最小化するのでしょうか。これは、最小 2 乗法では与えられるデータについてある仮定をしているためです。

なぜ残差平方和を最小化するのか

一度、残差平方和を最小化する式を導出してみましょう。この導出の中でいくつかの仮定をします。

因果関係の仮定

まず基本的なことですが、データの組x,yx,y明確に区別してください。

最小 2 乗法では、xxyyの間に因果関係を仮定します。つまり、「xxならばyy」なのか「yyならばxx」なのかを区別する必要があります。因果の向きを逆転させる(xxyyを入れ替える)と最小 2 乗法の結果も異なってしまいます。因果の向きには注意が必要です。




また、最小 2 乗法は因果関係の存在を示すものではないことにも注意が必要です。あくまで、もし因果関係があったらそのモデルがどうなるかを推定しているにすぎません。

最尤推定

xxならばyy」という因果関係を仮定することにします。ちなみに統計ではこのようなxx説明変数yy目的変数と呼びます。このとき、yyxxで説明するモデルffを考えると、

y=f(x;θ)+ϵy = f(x;\theta) + \epsilon

と表すことができます。ここでθ\thetaはモデルffが持つパラメータで、ϵ\epsilon誤差を表します。

さて、ϵ\epsilonが確率分布p(ϵ)p(\epsilon)に従うとき、データd=[(x1,y1),..,(xi,yi),..,(xN,yN)]\bm{d}=[(x_1,y_1),..,(x_i,y_i),..,(x_N,y_N)]が得られる確率P(d)P(\bm{d})は、

P(d)=i=1Np(ϵi)=i=1Np(yif(xi;θ))P(\bm{d}) = \prod^N_{i=1}p(\epsilon_i) = \prod^N_{i=1}p\left(y_i - f(x_i;\theta)\right)

で書けます(このとき各データは互いに独立とします)。ここで考え方を変えて、データd\bm{d}が与えられたときのパラメータθ\thetaの関数L(θd)L(\theta|\bm{d})を考えても、

L(θd)=P(d)=i=1Np(yif(xi;θ))L(\theta|\bm{d}) = P(\bm{d}) = \prod^N_{i=1}p\left(y_i - f(x_i;\theta)\right)

で書けます。このL(θd)L(\theta|\bm{d})尤度と呼ばれる値で、データd\bm{d}におけるパラメータθ\theta尤もらしさ(もっともらしさ)を表しています。この尤度を最大化するように、つまり最も尤もらしいパラメータθ\thetaを推定する手法を最尤推定と言います。最小 2 乗法ではこの最尤推定を行うことでモデルを決定します。

ここで、尤もらしさとはあくまでデータd\bm{d}との適合度に過ぎないことに注意してください。つまり、尤度が最大であったとしても真のモデル(母集団)とよく適合するとは限りません。データが真のモデルをよく表していなければ、最尤推定されるモデルも見当違いなものになってしまいます。最小 2 乗法はデータには忠実ですが母集団に忠実なわけではありません。

誤差分布の仮定

尤度L(θd)L(\theta|\bm{d})を最大化するようなパラメータθ^\hat{\theta}を推定するには、誤差の確率分布p(ϵ)p(\epsilon)が分かっている必要があります。

そこで、ここでは差の確率分布として平均 0 の正規分布を仮定してみます。このとき、確率分布p(ϵ)p(\epsilon)は、

p(ϵ)=12πσ2exp(ϵ22σ2)p(\epsilon) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp{\left( -\frac{\epsilon^2}{2\sigma^2} \right)}

で書けます。このとき、尤度L(θd)L(\theta|\bm{d})は、

L(θd)=i=1N12πσi2exp((yif(xi;θ))22σi2)=i=1N12πσi2exp(12i=1N(yif(xi;θ))2σi2)\begin{aligned} L(\theta|\bm{d}) &= \prod^N_{i=1} \frac{1}{\sqrt{2\pi\sigma_i^2}} \exp{\left( -\frac{(y_i - f(x_i;\theta))^2}{2\sigma_i^2} \right)} \\ &= \prod^N_{i=1} \frac{1}{\sqrt{2\pi\sigma_i^2}} \cdot \exp{\left( -\frac{1}{2}\sum^N_{i=1}\frac{(y_i - f(x_i;\theta))^2}{\sigma_i^2} \right)} \end{aligned}

となります。

最小 2 乗法へ

最後に尤度L(θd)L(\theta|\bm{d})を最大化するようなパラメータθ^\hat{\theta}、つまり最尤推定されるモデル関数f^\hat{f}を求めていきます。いま誤差の分散σi2\sigma_i^2一定ならば、推定されるモデル関数f^\hat{f}は、

min{i=1N(yif^(xi))2}\min \left\{ \sum^N_{i=1}(y_i - \hat{f}(x_i))^2 \right\}

を満たすことが分かります。わお!残差平方和(RSS) の最小化を導くことができました!

まとめると、最小 2 乗法では"少なくとも"目的変数の誤差分布が平均 0 分散一定の正規分布であれば最ももっともらしいモデル関数を得られるってことです。

重み付き最小 2 乗法

ところで、誤差の分散σi2\sigma_i^2が一定ではない場合は、

min{i=1N(yif^(xi))2σi2}\min \left\{ \sum^N_{i=1} \frac{(y_i - \hat{f}(x_i))^2}{\sigma_i^2} \right\}

を最小化すれば良いことが分かります。これは重み付き最小 2 乗法と呼ばれるものです。つまり、誤差の分散が一定でない場合(データのばらつきが無視できない場合)は、通常の最小 2 乗法に1/σi21/\sigma_i^2の重みをつける必要があるということです。

logo

たまおさ

釣りとか登山とか好きです。(@tamaki_osamu)