はじめに
最小二乗法はデータ解析の基本ですが、意外にその内容の理解が難しかったりします。特に、入力データと出力データの積の和が出てくる理由があいまいな人も多いんじゃないでしょうか。以下では、最小二乗法の公式の意味をちょっと考えてみたいと思います。
最小二乗法
何か実験をして、観測値を得ることを考えます。例えば抵抗値のわからないものに、様々な電圧をかけて、流れる電流を測ったとしましょう。
この時、入力電圧をx、出力電流をyとすると
という比例関係が期待されます。この比例定数aを実験から精度よく求めたい時、どうすればよいでしょうか?
実験をN回繰り返すことにして、i番目の実験の入力電圧xiに対し、出力電流yiを得たとしましょう。このデータセット(xi,yi)を使って、最もよくaを推定したい、というのが本稿の目的です。
ここで考えなくてはいけないのが「最も良くaを推定する」の「良い推定」とはどういうものか、ということです。そこで、予測値と、実際の値の差を考えます。入力電圧がxiである時、我々はy=axという形を期待しているので、予測値はaxiになります。しかし、実際の値はyiなので、その差
εi=yi−axi
を考えます。これを残差と呼びます。この残差は正にも負にもなるため、この二乗和を全体の誤差ということにしましょう。
E≡i∑N(εi)2=i∑N(yi−axi)2=a2i∑Nxi2−2ai∑Nxiyi+i∑Nyi2
さて、この誤差は、比例定数aの関数です。aが大きすぎても小さすぎても誤差が大きくなるので、どこかにちょうど良いaの値があるでしょう。その「ちょうど良い」値のとき、aを増やしても減らしてもEの値は大きくなるはずです。したがって、Eをaで微分してゼロとなる点が、Eを最小にするaです。Eをaで微分すると、
dadE=2ai∑Nxi2−2i∑Nxiyi
これがゼロとなるのですから、最終的にaの推定値は
a=∑iNxi2∑iNxiyi
となります。これは、よく知られた最小二乗法となります。y=axでフィッティングするタイプの最小二乗法では、分母に入力データの分散、分子に入力データと出力データの共分散が現れます。その意味をもう少し考えてみましょう。
最小二乗法の意味
もともと、我々が欲しいのは、y=axの傾きでした。もし、データが一つしかなければ、その傾きは
a=x1y1
と、入力と出力の比で表すしかありません。これを、データ1によるaの推定値a1としましょう。同様にa2,a3,⋯が定義されるので、その平均、すなわち
a~=N1i∑Nxiyi
でaを推定しても良さそうです。先程の推定値
a=∑iNxi2∑iNxiyi
とは何が違うのでしょうか?
実は、最小二乗法によるaの推定値は、入力データxiの値が大きいほど、大きな重みを持って足していることに対応しています。
y=axという形で、xとyから傾きaを推定したい時、(x,y)=(1.1,0.9)のデータよりも、(x,y)=(9.9,10.1)のデータの方が信頼できます。そこで、原点から遠いほど、それに比例した重みをつけて足すことにします。ここから分子の
i∑Nxiyi
の項が出てきます。同様に、分母も同じ重みを考慮しなければならないため、最終的に
a=∑iNxi2∑iNxiyi
が出てきます。つまり、最小二乗法は「y=ax型のフィッティングをするなら、我々は原点から遠いデータほど重視するよ」というポリシーを含意します。
異なる誤差による定義
逆に、各データセットによる傾きの推定値の単純平均、すなわち
a~=N1i∑Nxiyi
を与える誤差を考えることができます。以下のような残差を考えましょう。
ε~i≡a−xiyi
すなわち、データから求めた傾きがどれだけ正しいかを示すものです。この二乗和を全体の誤差と定義します。
E~≡i∑Nε~i2=i∑N(a−xiyi)=Na2−2ai∑Nxiyi+i∑N(xiyi)2
aで微分すると
dadE~=2Na−2i∑Nxiyi
これがゼロとなるようなaは、先程考えた、傾きの単純平均による推定値
a~=N1i∑Nxiyi
となります。
まとめ
データセット(xi,yi)が与えられた時、y=axの形でフィッティングし、aを求めたい時、「測定値と推定値の差」を残差として、その二乗和を最小にするaを求めることで、いわゆる最小二乗法の公式
a=∑iNxi2∑iNxiyi
が出てきます。この式には「原点から離れているデータほど大きい重みを持って考慮する」という意味があります。
逆に、「傾きの測定値と推定値の差」を残差とし、その二乗和を最小にしようとすると、傾きの推定値として各データセットから求まる傾きの単純平均の形
a=N1i∑Nxiyi
が出てきます。こちらは分散や共分散が出てこない簡単な式になり、「原点からの距離に対して重みをかけたりせず、全てのデータを平等に扱う」というポリシーを採用したことになります。
ここで注意すべきは「残差の二乗和を最小にする」という意味でどちらも「最小二乗法」になっていることです。一般に最小二乗法というと前者を指しますが、後者を排除する理由は全くありません。我々が普段「推定の良さとして前者を選ぶ」という選択をしている、ということです。
一般に何かを推定する際には、「何が良い推定であるか」を定義する必要があり、そこにはなんらかの意思決定があります。最も簡単なy=ax型の最小二乗法によりフィッティングでそれがわかりやすい見られる例なので挙げてみました。参考になれば幸いです。
Discussion