Aritalab:Lecture/Math/LR

From Metabolomics.JP
< Aritalab:Lecture | Math(Difference between revisions)
Jump to: navigation, search
(Created page with "==回帰分析== 回帰分析には 1 変量の単回帰 (univariate linear regression) と多変量の重回帰 (multivariate linear regression) があります。モデル...")
 
Line 1: Line 1:
 
==回帰分析==
 
==回帰分析==
  
回帰分析には 1 変量の単回帰 (univariate linear regression) と多変量の重回帰 (multivariate linear regression) があります。モデルしたい変量を y (目的変量)、説明に使う変量を x 、係数を b で表します。
+
回帰分析には 1 変量の単回帰 (univariate linear regression) と多変量の重回帰 (multivariate linear regression) があります。モデルしたい変量を y (目的変量)、説明に使う変量を x 、係数を b で表します( b<sub>0</sub> は定数項)。
  
 
;(重)回帰モデル : y = b<sub>0</sub> + x<sub>1</sub> b<sub>1</sub> + x<sub>2</sub> b<sub>2</sub> + ... + x<sub>n</sub> b<sub>n</sub> (つまり y を複数の変量 x<sub>1</sub>~x<sub>n</sub> の線形結合でモデルするやり方)
 
;(重)回帰モデル : y = b<sub>0</sub> + x<sub>1</sub> b<sub>1</sub> + x<sub>2</sub> b<sub>2</sub> + ... + x<sub>n</sub> b<sub>n</sub> (つまり y を複数の変量 x<sub>1</sub>~x<sub>n</sub> の線形結合でモデルするやり方)
  
y を目的変量、x を説明変量、b を回帰係数といいます。 b<sub>0</sub> は定数項です。特に 1 変数の場合を単回帰モデルといいます。ここでは最適パラメータを求める最小二乗法の説明のために単回帰を使います。
+
特に 1 変数の場合を単回帰モデルといいます。
 +
 
 +
==最小二乗法==
 +
ここでは最適パラメータを求める最小二乗法を単回帰を使って説明します。
  
 
: y<sub>1</sub> = b<sub>0</sub> + x<sub>1</sub> b<sub>1</sub> + r<sub>1</sub>
 
: y<sub>1</sub> = b<sub>0</sub> + x<sub>1</sub> b<sub>1</sub> + r<sub>1</sub>
: y<sub>2</sub> = b<sub>0</sub> + x<sub>2</sub> b<sub>1</sub> + r<sub>1</sub>
+
: y<sub>2</sub> = b<sub>0</sub> + x<sub>2</sub> b<sub>1</sub> + r<sub>2</sub>
: y<sub>3</sub> = b<sub>0</sub> + x<sub>3</sub> b<sub>1</sub> + r<sub>1</sub>
+
:  :          :
: :
+
: y<sub>n</sub> = b<sub>0</sub> + x<sub>n</sub> b<sub>1</sub> + r<sub>n</sub>
 +
 
 +
というデータがあると仮定しましょう。y と x が与えられ、ここで決めたいのは最適な b<sub>0</sub>, b<sub>1</sub> の値です。r は残差 (residual) といって、y と b<sub>0</sub> + x<sub>1</sub>b<sub>1</sub> との差を表します。
 +
最小二乗法とは残差の二乗和 S を最小化するアプローチです。
 +
: S = <big>Σ</big><sub>i</sub> f<sub>i</sub><sup>2</sup>
 +
S の最小値を満たす b<sub>0</sub> と b<sub>1</sub> を求めるには、S を b<sub>0</sub> と b<sub>1</sub> のそれぞれで偏微分して 0 とおいた連立方程式を解けばOKです。つまり
 +
 
 +
: y<sub>1</sub> = b<sub>0</sub> + x<sub>1</sub> b<sub>1</sub>
 +
: y<sub>2</sub> = b<sub>0</sub> + x<sub>2</sub> b<sub>1</sub>
 +
:  :          :
 +
: y<sub>n</sub> = b<sub>0</sub> + x<sub>n</sub> b<sub>1</sub>
 +
 
 +
を満たすことになります。これを行列の形に書くと
 +
:<math>\mathbf{y = Xb} \quad \mathbf{y} = \begin{bmatrix} y_1\\ y_2\\ \vdots&\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}</math>
 +
これから逆行列を用いて <b>b</b> を表せば
 +
:<b>b = (X<sup>T</sup>X)<sup>-1</sup>X<sup>T</sup>y</b>
 +
となります。重回帰の場合も同じ式になります(行列 <b>X</b> の列数が増えるだけ)。
 +
与えられた y, x からこの式を計算するだけで自動的に b の値が求まるのです。
 +
 
 +
 
 +
==ランク落ち==
  
というデータがあると仮定しましょう。
+
線形代数における行列のランク落ちとは、線形独立な変数の数が次数より少ない状態を指します。
 +
回帰分析でいうと、説明変数間に非常に相関が高いものがある場合です。
 +
このとき、逆行列の計算が上手くいかないため、ソフトウェア等で自動的に求めると <b>b</b> の値がおかしくなります。

Revision as of 23:09, 3 June 2013

回帰分析

回帰分析には 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 が与えられ、ここで決めたいのは最適な b0, b1 の値です。r は残差 (residual) といって、y と b0 + x1b1 との差を表します。 最小二乗法とは残差の二乗和 S を最小化するアプローチです。

S = Σi fi2

S の最小値を満たす b0 と b1 を求めるには、S を b0 と b1 のそれぞれで偏微分して 0 とおいた連立方程式を解けばOKです。つまり

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&\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

となります。重回帰の場合も同じ式になります(行列 X の列数が増えるだけ)。 与えられた y, x からこの式を計算するだけで自動的に b の値が求まるのです。


ランク落ち

線形代数における行列のランク落ちとは、線形独立な変数の数が次数より少ない状態を指します。 回帰分析でいうと、説明変数間に非常に相関が高いものがある場合です。 このとき、逆行列の計算が上手くいかないため、ソフトウェア等で自動的に求めると b の値がおかしくなります。

Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox