重回帰分析

トップページ研究分野と周辺システムの評価

単回帰分析では、説明変数xと、それに対応した目的変数yのサンプルがn組あるとき、単回帰方程式y=ax+bを求め、新たなxの値が分かれば、最も妥当なyの値を単回帰方程式の答えとして求める事が出来た。
しかし、実際の物事では、説明変数は二つ以上の場合が多い。
例えば、商品の売り上げ数(目的変数)は、「価格の安さ」「品質の良さ」の二つの説明変数(後者は何らかの方法で数値化する)が大きく影響すると考えられる。
説明変数が複数(n個)の回帰分析を、重回帰分析という(以下では最も簡単な説明変数二個の場合を扱う)。

重回帰分析の残差自乗(平方)和

二つの説明変数をx1、x2とすると、回帰式は以下のようになり、a1、a2、a3が定数となる。

ここに、n組の目的変数と説明変数の実測値があるとする。
説明変数の実測値はx1_1~x1_n、x2_1~x2_n、目的変数の実測値をy_1~y_nとする。
定数がa1、a2、a3の回帰式に説明変数の実測値を代入し、得られたyの値(ハットの付いたy)を理論値という。以下のようなn組の式ができる。

ハットのついたyの理論(予測値)と、実際のyの実測値の違いを残差というのだった(単回帰分析)。重回帰でも全く同じに考え、残差自乗和の最も小さくなるような係数a1、a2、a3を求め、最も当てはまりのよい回帰式を決定したい。
説明変数が二つの場合、各サンプルは3次元空間に散らばる点である。その各点までの距離が最も短くなる角度の平面を求める事に相当する。
残差(d)自乗和は、以下の式で求められる。

重回帰式を求める

残差自乗和を最小にするa1、a2、a3を求めるには、残差自乗和をa1、a2、a3の其々で偏微分した値を=0と置いた連立方程式を解けばよい。残差自乗和をSと置くと、以下のようになる。

偏微分は微分する文字以外は定数として扱うので、総和記号の外に括り出せる文字で微分する場合は、以下の例のように、総和記号の中の方が定数として扱われる。

微分する文字を含まない項はゼロとなるので、a_1で偏微分する場合は以下のようになる。まずΣの中をa_1の次数について揃え、Σをa_1の係数にして偏微分する。
次に、偏微分した式をΣに入れて整えると、回帰式を含む形になる。

Sをa_2、a_3で其々偏微分した結果も、同様の過程を経て以下のようになる。

結局、以下の連立方程式を解けば、残差の自乗の総和を最も小さくするa1、a2、a3が求まる。其々の総和の計算結果は、ma_1+na_2+ka_3=0の形になる(m、n、kは何らかの数)。

ベクトルと行列で重回帰式を求める

係数a1、a2、a3をベクトルaと考えて、行列を用いて解く事を試みる。目的変数yの実測値y1~ynをベクトルy、説明変数x1、x2の実測値を1を加えた行列X、ベクトルaと説明変数x1、x2の実測値で得られる目的変数の理論値(ハットの付いたy1~yn)をベクトルYとして、以下のように置く。

n個の残差のベクトルDは、D=y-Yであり、以下のようになる。

n個のベクトルの要素を足す事が、総和計算に該当する。残差の自乗和は、ベクトルDの転値ベクトルにDを掛けて得られる(「転置行列」)。

従って、残差自乗和Sは以下のように置け、行列とベクトルの計算(転置行列の計算は「転置行列」参照)によって、以下のようになる。

次に、残差自乗和Sを、ベクトルaの要素(回帰式の係数)で次々と偏微分した結果は、以下のようになっていたが、これをベクトルで表現する。

そのために、まずΣを以下のように分けておく。

其々の第1項を並べたベクトルは、以下のような行列とベクトルの積である事が分かる。

其々の第2項を並べたベクトルは、以下のような積となっている。

従って、Sをベクトルaで微分した結果は以下のようになり、Sを最小化する条件として、これが零ベクトルと等しいと置く。
移項して、逆行列を使うと係数ベクトルaが求まり、重回帰式も求まる。