1 つの結果を複数の要因で説明するための分析手法

重回帰分析

回帰分析は原因と結果、あるいは結果と結果の量的関係を見る分析手法の一つである。例えば、オーキシンは植物の茎の伸長成長を促進する物質として知られている。植物に与えるオーキシンが高濃度ほど、茎の伸長成長率が大きくなる。このように、伸長成長率という結果は、オーキシン濃度という原因によって説明できる。このとき、y を伸長成長率、x をオーキシンの濃度とおくと、y と x は次のような 1 次関数の回帰式で表せる。この回帰式において、x は独立変数(または説明変数)、y は従属変数(または目的変数)とよばれている。

\[ y = \beta_{0} + \beta_{1}x \]

1 つの結果が 1 つだけの原因に影響されるシンプルなケースのほかに、1 つの結果が複数の原因に影響される複雑なケースも考えられる。例えば、桜の開花日は、気温、降水量、日射量など様々な原因に影響されていると考えられる。このように、原因が複数存在するとき、複数の独立変数 x1, x2, .. を用意して、1 つの従属変数 y を説明する回帰式を立てる必要がある。

\[ y = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \cdots + \beta_{n}x_{n} \]

重回帰分析

重回帰分析は、1 つの結果を複数の原因で説明するための分析手法である。ある回帰式をもとに、1 つの結果 y を、複数の原因 x を利用して説明していく手法である。このために、その回帰式の各係数を決定していく必要がある。回帰式の係数の決定は、最小二乗法が使われる。その考え方は、単回帰分析と同じく、「回帰モデル式で計算された y の推測値」と「実際に観測された y の観測値」との間の誤差 e を最小にするように、回帰式の各係数を決定する。

最小二乗法

ここで、1 つの従属変数を、n 個の独立変数で説明するモデルを考える。このとき、i セット目のデータ(従属変数 yi; 独立変数 xi1, xi2, ..., xin)に着目したとき、観測値と推測値の誤差 ei は次のように計算できる。

\[ e_{i} = y_{i} - \beta_{0} - \beta_{1}x_{i1} - \beta_{2}x_{i2} - \cdots - \beta_{n}x_{in} \]

ei はプラスとマイナス両方の値が取ることができる。そのため、i = 1, 2, 3, ... のときの誤差の和を求めるときに不便である。そこで、この誤差をそのまま使うのではなく、二乗してから使う。このとき、全ての誤差 ei を同時に最小にすることは、これらの和を最小にすることと等しい。そこで、誤差の二乗の和 Se について考える。

\[ S_{e} = \sum_{i=1}^{n}e_{i}^{2} = \sum_{i=1}^{n}(y_{i} - \beta_{0} - \beta_{1}x_{i1} - \beta_{2}x_{i2} - \cdots - \beta_{n}x_{in})^{2} \]

Se が最小となるような係数 βk (k = 0,1, ..., n) を求めるには、Se を βk (k = 0,1, ..., n) の多変量関数とみなして、各 βk (k = 0,1, ..., n) で偏微分し、Se が最小となる βk (k = 0,1, ..., n) を求めればよい。

最小二乗法の行列計算

列ベクトル Y を、p 個の従属変数からなるベクトルとする。列ベクトル β を n + 1 個の係数からなるベクトルとする。また、行列 X を n × (p + 1) の独立変数からな行列とする。このとき、回帰式は、次のように書ける。

\[ \mathbf{Y} = \mathbf{X}\mathbf{\beta} \]

このとき、誤差の二乗の和は、次のように書ける。

\[ \begin{eqnarray} \mathbf{e} &=& \sum\left( \mathbf{Y} - \mathbf{X}\mathbf{\beta} \right)^{2} \\ &=& \left ( \mathbf{Y} - \mathbf{X}\mathbf{\beta} \right)'\left( \mathbf{Y} - \mathbf{X}\mathbf{\beta} \right ) \\ &=& \mathbf{Y}'\mathbf{Y} - 2\mathbf{Y}'\mathbf{X}\mathbf{\beta}+ \mathbf{\beta}'\mathbf{X}'\mathbf{X}\mathbf{\beta} \end{eqnarray} \]

この式に対して、列ベクトル β で偏微分して、列ベクトル e が最小となる列ベクトル β を求める。

\[ \begin{eqnarray} \frac{\partial\mathbf{e}}{\partial\mathbf{\beta}} = \frac{\partial\left ( \mathbf{Y}'\mathbf{Y} - 2\mathbf{Y}'\mathbf{X}\mathbf{\beta}+ \mathbf{\beta}'\mathbf{X}'\mathbf{X}\mathbf{\beta}\right )}{\partial\mathbf{\beta}} &=& \mathbf{0} \\ \Longleftrightarrow -2\mathbf{X}'\mathbf{Y} + 2\left (\mathbf{X}'\mathbf{X}\right )'\mathbf{\beta} &=& \mathbf{0} \end{eqnarray} \]

ここで、もし行列 X'X が逆行列を持つならば、左右に X'X の逆行列をかけることで、列ベクトル β が求まる。

\[ \mathbf{\beta} = \left(\mathbf{X}'\mathbf{X}\right)^{-1}\mathbf{X}'\mathbf{Y} \]

独立変数の選択

この例で見られるように、独立変数を n 個に設定できる。つまり、いくらでも独立変数を増やすことができる。独立変数を増やすことで分析結果の改善が見られるが、一般性を失ったり、全体の傾向を見失ったりする場合もある。むやみに独立変数を増やしてはならない。独立変数を選択する方法として以下のような方法がある。

  • 実験の計画段階において、すでに重要と思われる要因(因子)を独立変数として選択する。
  • 考えられるすべての要因の全組合せを利用して回帰分析を行い、それぞれの解析結果についてを評価指標(AIC、Cp 統計量など)を用いて評価し、もっとも良かった組合せを利用する。
  • すべての要因それぞれについて、単独で回帰式に代入し分析を行う。結果のもっとも良かったものを残す。次に、この独立変数と、残りの独立変数から一つを選び、2 つの独立変数で回帰分析を行う。そのように逐次に独立変数を増やしていく。
  • 初めてにすべての要因を回帰式に代入し分析を行う。分析結果を眺めて、効果のもっとも薄いも独立変数を除き、再度回帰分析を行う。このように、逐次に独立変数を減らしていく。

ここにあげた変数の選択法以外には、LASSO や Elastic Net とよばれる変数選択法などもある。LASSO や Elastic Net は回帰と変数選択を同時に行える手法として知られている。