Aritalab:Lecture/Math/LR

From Metabolomics.JP
< Aritalab:Lecture | Math
Revision as of 11:45, 8 September 2016 by Adm (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

を満たすことになります。これを行列の形に書くと

\mathbf{y = Xb} \quad \mathbf{y} = \begin{bmatrix} y_1\\ y_2\\ \vdots \\ y_n \end{bmatrix}, \mathbf{X} = \begin{bmatrix} 1&x_1\\ 1&x_2\\ \vdots&\vdots\\ 1&x_n \end{bmatrix}, \mathbf{b} = \begin{bmatrix} b_0\\ b_1 \end{bmatrix}

これから逆行列を用いて b を表せば

b = (XTX)-1XTy

となります(XTについては、以下の一般逆行列の説明を参照)。重回帰の場合も同じ式になります(行列 X の列数が増えるだけ)。 与えられた y, x からこの式を計算するだけで自動的に b の値が求まるのです。

R による実習ページ

一般逆行列

すべての行列に逆行列があるわけではありません。そもそも正方(X,Y方向が同じ段数)でないと、逆行列はありません。しかし普通の行列は正方ではありません。そこで正方行列を無理やり作る方法が、自分の転置行列をかけるやり方です。 XTX は必ず正方になります。そこで y = X b の左側から XT をかけて

XT y = (XTX) b

この式から b を求めることができます。

行列のランク落ち

線形代数における行列のランク落ちとは、線形独立な変数の数が次数より少ない状態を指します。 回帰分析でいうと、説明変数間に非常に相関が高いものがある場合です(共線性といいます)。 このとき、逆行列の計算も上手くいかず、 b の値がおかしくなります。

Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox