※ブログ記事の商品・サービスリンクにはアフィリエイトリンクが含まれます。

行列が苦手すぎる人向けの重回帰分析における最小二乗法【統計検定1級対策】

行列計算がとにかく苦手です。

解説の式をみていると普通の計算式と同様にいかない点が多すぎて、ルールの確認に奔走してしまいます。あと、行列式とかトレースとか転置行列とか冪等行列とか特殊なやつもよくわかりません。

ただ、統計の勉強をしていると重回帰分析などでどうしても避けられない・・・。

本のみならずネットで検索しながらやるんですが、ネットで出てくる記事や論文って多分その道を専攻している人向けで結構計算を端折られてしまうんですよね。そこでとりあえず全然できない自分でもできるように、基本的な行列計算のルール解説も盛り込んで、できるだけわかりやすく最小二乗法について書いてみます。

まず最小二乗法で知っておきたい行列のルール

 通常の行列計算の仕方はさすがに知っているので、あとは色々なルールたちです。

まずどちらかが単位行列などでなければ基本的には

行列AB≠BAです。

あと方程式を解くときも逆行列を使って

A=BXのときB^{-1}A=Xのようになります。

そして転置行列は多用されますので、下記の性質は必須です。

転置行列の基本的な4つの性質と証明 | 高校数学の美しい物語

いつもこちらのページにはお世話になってます。

そしてもうひとつがベクトルの微分というもの。

k次元のベクトル変数βでk次元のベクトル定数c、k×k次元の定数行列Aを微分する場合、下記の式が成り立ちます。

\frac{\partial(c^T\beta)}{\partial\beta}=c\\\frac{\partial(\beta^TA\beta)}{\partial\beta}=(A+A^T)\beta

微分は若干ややこしいですが、この辺を覚えていれば何とかやれます。

最小二乗法とは

回帰分析では結果変数yと説明変数xについて

y=\beta x+\epsilon

という関係が成り立ちます。ここで\epsilonは誤差項と呼ばれ、ランダムで入る誤差です。正規分布に従い、平均をとると0になるのが特徴です。この誤差項を最小にする、すなわち

y-\beta xを最小にするのが最小二乗法です。このときのβを求めることで推定量が求まります。重回帰分析の場合はそれぞれyが定数ベクトル、xは定数行列(分析の過程で得られたデータ)となり、βは変数ベクトルとなります。

行列になるといつもよくわからなくなるのですが、要はyとxの関係式

y_1=\beta_0+\beta_1 x_{11}+ \beta_2 x_{12}+...+\epsilon_1

という式を連立していったものなんですね。(x11というのは1個目のデータの1つめの説明変数を示してます)

行列を使った式に直すと

\bf{y=X \beta+\epsilon}

となります。

ベータの推定量を出してみよう

さて、ここからが本題。

求めたいのはyとxの関係性をつなぐβですが、前提条件として誤差項が最小でなければいけません。まず先ほどの誤差項を計算していきます。前述のように

\sum_{i=1}^n\epsilon_i^2=\epsilon^T\epsilon\\=(y-X\beta)^T(y-X\beta)

ここから丁寧に展開していきます。

\((y-X\beta)^T(y-X\beta)=y^Ty-(X\beta)^Ty-y^TX\beta+(X\beta)^TX\beta\)

ここで転置行列の性質から

(X\beta)^Ty=(X\beta)^T(y^T)^T=(y^TX\beta)^T

となるのですが

y^TX\betaはスカラー量(行列でもベクトルでもない)なので、転置行列使っても実は変化しないことがわかります。よって

\((y-X\beta)^T(y-X\beta)=y^Ty-2y^TX\beta+(X\beta)^TX\beta\\=y^Ty-2y^TX\beta+\beta^TX^TX\beta\)

となります。

この式をベクトルβで微分したときに0になる点でεが最小になると言えるので、微分してみると

-2X^Ty+2X^TX\beta=0

これを正規方程式と言います。

あとはこれを解いて

X^TX\beta=X^Ty\\\hat\beta=(X^TX)^{-1}X^Tyとなります。

2件のコメント

丁寧な説明ありがとうございます。
「ここから丁寧に展開していきます。」の後半のくだり、以降の計算式で小文字xが出てきますが、ここはx=1~nの行列を示す大文字太文字Xという理解で良いのでしょうか。

>松村さん

ご指摘有難うございます。おっしゃる通り小文字になってしまっていましたが大文字太文字Xの誤りでしたので、修正させていただきました。
申し訳ありませんでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)