単回帰分析

回帰分析は原因と結果、あるいは結果と結果の量的関係を見る分析手法の一つである。最も簡単な回帰分析の例として以下の式で説明できるようなものがある。

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

この場合、x を原因、y を結果とみなすことができる。x は他の変数に依存しないため独立変数と呼ばれている。これに対して、y は x に依存するため従属変数と呼ばれている。

回帰分析の応用例としては、モデル推定、予測や変動要因分析などに用いられる。例えば、特性 y がどのような物理的あるいは化学的な法則に支配されるかを示す式として上述の式を用いて表す場合がある。また、予め求められた上述の式に対して、任意の x を与えることで y が計算されるため、予測などに用いることもできる。さらには、係数 β1 の数値を見ることで、その原因 x が 結果 y を強く影響しているかどうを見積もることもできる。

単回帰分析

x と y の関係が y = β0 + β1x と表せるとき、これを単回帰という。このとき、β0 および β1 を求めるのが単回帰分析である。β0 と β1 を求めることで、x の影響や、予測など用いることができるようになる。

y = β0 + β1x は理論上のモデルである。実際の観測値では測定誤差が生じるため、y は理論値からずれることがある。そのズレ、すわなち誤差を e とする。

例えば、観測データが n セットあるとする。n セットのデータを (x1, y1)、(x2, y2)、…、(xn, yn) とする。

1 セット目のデータに対して、単回帰の式に当てはめると以下のようになる。このデータは観測値であるため、観測値の y と理論上の y には誤差があるため、その誤差を e1 とする。

\[ y = y_{1} - e_{1} = \beta_{0} + \beta_{1}x_{1} \]

理論値の y に、y1 - e1 を近づけるためには誤差 e1 を最小にすればよい、ということがわかる。e1 はプラスとマイナスの両方の場合が考えられるため、2 乗して計算で扱いやすいようにする。

\[ e_{1}^{2} = (y_{1} - \beta_{0} - \beta_{1}x_{1})^{2} \]

観測データが全部で n セットあるため、n セットすべての残差について考える必要がある。このとき、誤差は 2 乗して扱うため、n セットのすべての残差について考えるとき、すべてを足せばよい。

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

ここでもう一度、理論値の y に、y1 - e1 を近づけるためには誤差 ei を最小にすればよい。n セットのデータを同時に考えるとき、その 2 乗された誤差の和 Se が最小となるようにすれば良い。

このとき、xi および yi が観測値で、これらのデータが変わることはないということに注意して下さい。この状況で β0 および β1 を計算する。

つまり、β0 および β1 を変数のように動かし、Se が最小となるような β0 および β1 を求めればよい。

これには、Se の式に対して、β0 および β1 それぞれで偏微分してその増減を調べればよい。実際に偏微分すると、以下のようになる。

\[ \begin{eqnarray} \frac{\partial S_{e}}{\partial \beta_{0}} &=& 2\sum_{i=1}^{n}(y_{i} - \beta_{0} - \beta_{1}x_{i})(-1) = 0 \\ \frac{\partial S_{e}}{\partial \beta_{1}} &=& 2\sum_{i=1}^{n}(y_{i} - \beta_{0} - \beta_{1}x_{i})(-x_{i}) = 0 \end{eqnarray} \]

両式を用いて、β0 および β1 を求めると以下のように求まる。

\[ \begin{eqnarray} \beta_{0} &=& \frac{\sum_{i=1}^{n}(x_{i}-\bar{x}) \sum_{i=1}^{n}(y_{i}-\bar{y})}{\sum_{i=1}^{n}(x_{i}-\bar{x})^{2}}\\ \beta_{1} &=& \bar{y} - \beta_{0}\bar{x} \end{eqnarray} \]

ただし、\(\bar{x} = \sum_{i=1}^{n}x_{i}\) および \(\bar{y} = \sum_{i=1}^{n}y_{i}\) とする。

R を利用して単回帰分析を行う場合は glm 関数あるいは lm 関数を用いる(参照)。