線形回帰と最小二乗法による回帰係数の推定について

はるか
はるか
線形回帰はデータとモデルの関係を調べるための手法なんだけど、単回帰と多重線形回帰に分けられるよ。
ふゅか
ふゅか
そうだね!単回帰は説明変数が1つ、多重線形回帰は2つ以上の説明変数を使うの。例えば、身長と体重の関係を調べるときに単回帰を使えるわ。

1. 線形回帰とは

線形回帰は説明変数が一つの場合は線形単回帰、二つの場合は多重線形回帰(線形重回帰)と呼ばれます。

2. 線形単回帰

2.1. 線形単回帰のモデル

線形回帰のモデルは次のような形式で表されます。

y=β0+β1x+ϵ y = \beta_0 + \beta_1 x + \epsilon

ここで、

  • y y は目的変数(従属変数)
  • x x は説明変数(独立変数)
  • β0 \beta_0 は切片(y軸と交わる点)
  • β1 \beta_1 は傾き(回帰係数)
  • ϵ \epsilon は誤差項

2.2. 最小二乗法

線形回帰で最もよく使われる方法は、最小二乗法です。これは、観測データとモデルの予測値の差の二乗和を最小化することを目指します。

まず、観測データが (xi,yi) (x_i, y_i) で与えられたとします。モデルの予測値は次のように表されます。

y^i=β0+β1xi \hat{y}_i = \beta_0 + \beta_1 x_i

目的は、誤差の二乗和を最小にすることです。この誤差の二乗和は次のように表されます。

S(β0,β1)=i=1n(yiy^i)2=i=1n(yi(β0+β1xi))2 S(\beta_0, \beta_1) = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 = \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_i))^2

これを最小化するために、β0\beta_0β1\beta_1 についての偏微分をそれぞれ求めて、それらを 0 に設定します。β0\beta_0 についての偏微分すると次のようになります。

Sβ0=2i=1n(yiβ0β1xi) \frac{\partial S}{\partial \beta_0} = -2 \sum_{i=1}^{n} (y_i - \beta_0 - \beta_1 x_i)

この偏微分を 0 にすると、

2i=1n(yiβ0β1xi)=0 -2 \sum_{i=1}^{n} (y_i - \beta_0 - \beta_1 x_i) = 0

i=1n(yiβ0β1xi)=0 \sum_{i=1}^{n} (y_i - \beta_0 - \beta_1 x_i) = 0

i=1nyi=nβ0+β1i=1nxi \sum_{i=1}^{n} y_i = n \beta_0 + \beta_1 \sum_{i=1}^{n} x_i

次にβ1\beta_1 についての偏微分すると次のようになります。

Sβ1=2i=1nxi(yiβ0β1xi) \frac{\partial S}{\partial \beta_1} = -2 \sum_{i=1}^{n} x_i (y_i - \beta_0 - \beta_1 x_i)

この偏微分を 0 にすると、

2i=1nxi(yiβ0β1xi)=0 -2 \sum_{i=1}^{n} x_i (y_i - \beta_0 - \beta_1 x_i) = 0

i=1nxi(yiβ0β1xi)=0 \sum_{i=1}^{n} x_i (y_i - \beta_0 - \beta_1 x_i) = 0

i=1nxiyi=β0i=1nxi+β1i=1nxi2 \sum_{i=1}^{n} x_i y_i = \beta_0 \sum_{i=1}^{n} x_i + \beta_1 \sum_{i=1}^{n} x_i^2

これらの2つの方程式をまとめて解きます。

i=1nyi=nβ0+β1i=1nxi \sum_{i=1}^{n} y_i = n \beta_0 + \beta_1 \sum_{i=1}^{n} x_i

i=1nxiyi=β0i=1nxi+β1i=1nxi2 \sum_{i=1}^{n} x_i y_i = \beta_0 \sum_{i=1}^{n} x_i + \beta_1 \sum_{i=1}^{n} x_i^2

ここで、xˉ=1ni=1nxi \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i および yˉ=1ni=1nyi \bar{y} = \frac{1}{n} \sum_{i=1}^{n} y_i を平均値とすると、

nβ0=i=1nyiβ1i=1nxi n \beta_0 = \sum_{i=1}^{n} y_i - \beta_1 \sum_{i=1}^{n} x_i

β0=yˉβ1xˉ \beta_0 = \bar{y} - \beta_1 \bar{x}

次に、β1\beta_1 に対して解きます。まず、β0\beta_0 を代入します。

i=1nxiyi=(yˉβ1xˉ)i=1nxi+β1i=1nxi2 \sum_{i=1}^{n} x_i y_i = (\bar{y} - \beta_1 \bar{x}) \sum_{i=1}^{n} x_i + \beta_1 \sum_{i=1}^{n} x_i^2

i=1nxiyi=yˉi=1nxiβ1xˉi=1nxi+β1i=1nxi2 \sum_{i=1}^{n} x_i y_i = \bar{y} \sum_{i=1}^{n} x_i - \beta_1 \bar{x} \sum_{i=1}^{n} x_i + \beta_1 \sum_{i=1}^{n} x_i^2

i=1nxiyiyˉi=1nxi=β1(i=1nxi2xˉi=1nxi) \sum_{i=1}^{n} x_i y_i - \bar{y} \sum_{i=1}^{n} x_i = \beta_1 \left( \sum_{i=1}^{n} x_i^2 - \bar{x} \sum_{i=1}^{n} x_i \right)

(i=1nxiyi)nxˉyˉ=β1((i=1nxi2 )nxˉ2 ) \left( \sum_{i=1}^{n} x_i y_i \right) - n\bar x \bar{y} = \beta_1 \left(\left( \sum_{i=1}^{n} x_i^2  \right) - n\bar{x}^2  \right)

i=1n(xiyixˉyˉ) =β1 i=1n(xi2xˉ2 ) \sum_{i=1}^{n} \left( x_i y_i -\bar x \bar{y}\right)  = \beta_1  \sum_{i=1}^{n} \left(x_i^2 - \bar{x}^2  \right)

i=1n(xixˉ)(yiyˉ)=β1i=1n(xixˉ)2 \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y}) = \beta_1 \sum_{i=1}^{n} (x_i - \bar{x})^2

最終的に、β1\beta_1 は以下のようになります。

β1=i=1n(xixˉ)(yiyˉ)i=1n(xixˉ)2 \beta_1 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{n} (x_i - \bar{x})^2}

β0\beta_0β1\beta_1を代入すると、

β0=yˉβ1xˉ \beta_0 = \bar{y} - \beta_1 \bar{x}

これで、最小二乗法によって単回帰分析の傾きと切片を求めることができました。

3. 多重線形回帰

ふゅか
ふゅか
多重線形回帰についても教えてくれる?
はるか
はるか
多重線形回帰は説明変数が複数ある場合に使う。

3.1. 多重線形回帰のモデル

多重線形回帰では、目的変数 Y Y を複数の説明変数 X1,X2,,Xn X_1, X_2, \ldots, X_n を使ってモデル化します。

Y=β0+β1X1+β2X2++βnXn+ε Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_n X_n + \varepsilon

ここで、

  • Y Y は目的変数(従属変数)
  • X1,X2,,Xn X_1, X_2, \ldots, X_n は説明変数(独立変数)
  • β0 \beta_0 は切片(定数項)
  • β1,β2,,βn \beta_1, \beta_2, \ldots, \beta_n は各説明変数に対応する回帰係数
  • ε \varepsilon は誤差項

3.2. 行列表記

多重線形回帰を行列の形式で表すことができます。

Y=Xβ+ε \mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon}

3.3. 多重線形回帰の係数の導出

最小二乗法による係数ベクトルの推定値 β^ \hat{\boldsymbol{\beta}} は次のように求められます。

β^=(XX)1XY \hat{\boldsymbol{\beta}} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y}

最小二乗法による多重線形回帰の係数 β^ \mathbf{\hat{\beta}} の導出を行います。最小二乗法では、誤差の二乗和を最小化することで、回帰係数を求めます。以下の手順で導出します。最小二乗法では、観測値 Y Y とモデルの予測値 Xβ X\beta の差の二乗和を最小化します。

S(β)=i=1n(yiy^i)2=(YXβ)(YXβ) S(\mathbf \beta) = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 = (Y - X\mathbf\beta)^\top (Y - X\beta)

誤差の二乗和を展開します。

S(β)=(YXβ)(YXβ) S(\beta) = (Y - X\beta)^\top (Y - X\beta)

=YY2βXY+βXXβ = Y^\top Y - 2\beta^\top X^\top Y + \beta^\top X^\top X \beta

この S(β) S(\beta) β \beta に関して最小化するために、ベクトルβ \beta について微分し、ゼロと置きます。

S(β)β=2XY+2XXβ=0 \frac{\partial S(\beta)}{\partial \beta} = -2X^\top Y + 2X^\top X \beta = 0

上記の式を整理すると、以下のようになります。

XXβ=XY X^\top X \beta = X^\top Y

ここで、XX X^\top X が正則(逆行列が存在)であると仮定します。 β \beta を求めます。

β=(XX)1XY \beta = (X^\top X)^{-1} X^\top Y

PR