線形単回帰モデルを数式で理解する
線形単回帰モデル
線形単回帰(Simple linear regression)モデルは1つの入力(変数)を用いて予測をするものであり、回帰モデルの中でも最もシンプルなものです。シンプルであるがゆえに入力と出力との関係を解釈しやすいモデルです。また、特に訓練データの数が少ない場合においては、非線形モデルよりも良い性能を発揮することもあります。そのため、回帰モデルにおいて基礎となるモデルと考えられますので、その仕組みについて把握しておくこと、また使いこなせることは非常に重要であると考えております。
今回はこの線形単回帰モデルを数式を用いて解説を行っていこうと思います。
線形単回帰モデルの概観
入力を、出力をとしたときに、この2つの変数の間に直線で表せるような関係性があるとします。たとえば以下の図のような関係です。
これは直線の関係性があるといって良いと考えられますので、線形単回帰モデルを用いることででを予測することが可能になります。ここで、直線を引くよりも、たとえば各点を結ぶジグサグの線を引くほうがより良い性能のモデルになるのではないのかという考えもあるかもしれません。しかしながら、それは間違いになります。機械学習においてはいわゆる過学習というものになり、それは交差検証を行うことで間違いであることがわかります。そして、間違いである理由は線形単回帰モデルはいわゆる統計モデルの一種になりますが、観測されるデータにはランダムの誤差が含まれているからです。つまり統計モデルで考えた場合、以下のような関数からデータは生成されたと考えます。
今回は、このを線形単回帰モデルで推定することにします。これはつまりには誤差が足されているというわけですから、線形単回帰モデルによって推定された直線上にすべてのデータが乗ることはありえないわけで、直線付近にデータが散らばるのが適切なのです。この誤差は予測な不可能な変数(確率変数)です。もう少し正確に言うと、モデルで予測をしたときに、予測しきれない部分を誤差としているということになります。 さて、線形単回帰モデルは1変数の直線ですので、
という中学校で習った1次関数を用います。が傾きでが切片でした。ただ、線形単回帰モデルでは式が少しだけ異なっていて、こちらは誤差項を考慮しなければなりません。したがいまして、下式のようになります。
また、線形単回帰モデルでは一般的にやではなく、とを用います。くわえて、全部で個のデータ(のとき、のとき、...、のとき)が観測されたとすると、線形単回帰モデルの数式は
と表されます。それぞれの文字には以下のように名前がついています。
- : 応答変数(目的変数, 従属変数)(response variable)
- : 説明変数(独立変数)(explanatory variable)
- : 切片項(intercept term)
- : 回帰係数(regression coefficient)
- : 誤差項(error term)
線形単回帰モデルの仮定
意外と知られていないかもしれないのですが、この線形単回帰モデルには以下の仮定が置かれています。
- 説明変数は確率変数ではなく、定数である
- 誤差項の期待値は0である()
- 誤差項同士は無相関である()(つまり自己相関は0である)
- 誤差項の分散は均一である()
1は目的変数ののみを確率変数として扱うということ、3は時系列性を持ってしまっているということです。これは線形単回帰モデルが時系列データを扱えないというわけはなく、誤差項に時系列性を持たせないように説明変数を選択すれば可能になります。 これらの仮定から外れたデータに対して線形単回帰モデルを適用したときに、どのようなことが起こるのかは今度実験的に解説したいと思います。
回帰係数を求める方法(回帰係数の推定)
さて、得られたデータをこのモデルに当てはめるにはどうすればいいかを考えてみます。これはつまり、線形単回帰モデルのパラメータであるとを得られたデータから求めることになります。機械学習で言えば訓練(学習)です。誤差項の無い1次関数であれば2点(2データ)あれば、連列方程式を用いて切片と傾きを計算できました。しかし誤差項がある線形単回帰モデルではそう単純な話でもありません。まずは下の2つの直線を見比べてみてください。
これは3データに対して線形単回帰モデルを適用したものとお考えください。どちらの方がより適切と言えるでしょうか。直感的には右側の方が良さそうです。良さそうでは評価が曖昧ですので、その理由を定量的に評価できるように数式化してみましょう。
数式化するにあたって、まずなぜ直感的に右側の方が良さそうなのかを考えてみます。それは各観測データがモデルの直線に近いからであると思います。それを図示してみます。
緑色の丸が観測データ、青色の直線がモデル、赤色の矢印がモデルと観測データとの誤差を表しています。こう考えると、直線を引く上で(モデルを推定する上で)大事なことは誤差をなるべく小さくすることだとわかります。誤差は「観測値」と「モデルによる予測値」の差分なので数式で表すと、
ここで注意しなければならないのが、観測値が直線の上にあるか下にあるかで誤差の符号が変わってしまうので、絶対値を取るか2乗してプラスに統一する必要があります。ここでは、後の計算が楽になるので2乗することにします。すべての観測値の分だけ誤差を2乗し、それらを足し合わせます。
これを最小化するようなとを求めれば良いことになります。このアプローチを最小二乗法と呼びます。をとについて最小化するので、それぞれについて偏微分して0とおいた連立方程式を解けば求まります。
最小二乗法の計算
実際にとを求めてみます。もっと効率が良い方法があるとは思うのですが、愚直に計算していってみます。
この関数をとについて偏微分します。
イコール0と置きます。
式を変形してとを求めていきます。
を外します()。
はデータ数なのでゼロはありえないため()、で割ります。
ここでとの平均値は以下のように計算ができるので、
、を用いると、
したがいまして、の推定量は
ここではの推定量です。ではを求めていきます。(3)式に(4)式を代入します。
でくくります。添字が付いていない文字はが外に出ます。
だいぶそれらしくなってきました。続いて分子と分母をそれぞれ変形します(天下り式ではありますが・・・)。まず分母です。
なお、2行目から3行目への変形は平均値の式である(2)式を用いています。次は分子です。
したがいまして、(5)式は、
とてもキレイになりました!さらに、以下の記号を用意します。
すると、の推定量は
という形になります。の推定量と並べて書いてみます。
推定量の考察
求めた推定量の数式について少し考えてみます。 まずです。
の推定量が含まれているため切片の値はに依存していますが、の平均値がかけられています。説明変数であるを中心化もしくは標準化するととなるため切片はつまり目的変数の平均値です。さらにを中心化もしくは標準化すると回帰の直線は原点を通ります。
つづいてです。こちらは、分母がの分散、分子がとの共分散になっています。共分散は2変数の連動性を表しているもので、データが標準化されている場合は相関係数と一致します。よってととで無関係(無相関)であれば分子が0になりますので、回帰係数つまり直線の傾きは0になります。
参考
現代数理統計学の基礎