Aritalab:Lecture/Math/LR
Contents |
回帰分析
回帰分析には 1 変量の単回帰 (univariate linear regression) と多変量の重回帰 (multivariate linear regression) があります。モデルしたい変量を y (目的変量)、説明に使う変量を x 、係数を b で表します( b0 は定数項)。
- (重)回帰モデル
- y = b0 + x1 b1 + x2 b2 + ... + xn bn (つまり y を複数の変量 x1~xn の線形結合でモデルするやり方)
特に 1 変数の場合を単回帰モデルといいます。
最小二乗法
ここでは最適パラメータを求める最小二乗法を単回帰を使って説明します。
- y1 = b0 + x1 b1 + r1
- y2 = b0 + x2 b1 + r2
- : :
- yn = b0 + xn b1 + rn
y ... 目的となる変数(説明される側なので従属変数とよぶ) |
x ... 説明に使う変数(原因となる側なので独立変数とよぶ) |
r ... 残差 (説明しきれない部分) |
というデータがあると仮定しましょう。y と x が与えられ、ここで決めたいのは最適な b0, b1 の値です。r は残差 (residual) といって、yi と b0 + xib1 との差を表します。
最小二乗法とは残差の二乗和 S を最小化するアプローチです。
- S = Σi ri2 = Σ (b0 + xib1 - yi)2
S を b0 と b1 による二次関数とみなします。S の最小値を満たす b0 と b1 を求めるには、S を b0 と b1 のそれぞれで(偏)微分して 0 とおいた連立方程式を解けばOKです。二乗の式をそのまま微分します。
- ∂S/∂b0 = ∑ 2( b0 + x b1 - y) = 0
- ∂S/∂b1 = ∑ 2( b0 + x b1 - y) x = 0
ここから、 y = x b1 + b0 という式が出てきます。つまり、目的の b0 と b1 は
- y1 = b0 + x1 b1
- y2 = b0 + x2 b1
- : :
- yn = b0 + xn b1
を満たすことになります。これを行列の形に書くと
これから逆行列を用いて b を表せば
- b = (XTX)-1XTy
となります(XTについては、以下の一般逆行列の説明を参照)。重回帰の場合も同じ式になります(行列 X の列数が増えるだけ)。 与えられた y, x からこの式を計算するだけで自動的に b の値が求まるのです。
一般逆行列
すべての行列に逆行列があるわけではありません。そもそも正方(X,Y方向が同じ段数)でないと、逆行列はありません。しかし普通の行列は正方ではありません。そこで正方行列を無理やり作る方法が、自分の転置行列をかけるやり方です。 XTX は必ず正方になります。そこで y = X b の左側から XT をかけて
- XT y = (XTX) b
この式から b を求めることができます。
行列のランク落ち
線形代数における行列のランク落ちとは、線形独立な変数の数が次数より少ない状態を指します。 回帰分析でいうと、説明変数間に非常に相関が高いものがある場合です(共線性といいます)。 このとき、逆行列の計算も上手くいかず、 b の値がおかしくなります。