重回帰分析について
1. 概要
重回帰分析は、複数の説明変数が従属変数に対してどのような影響を持つかを分析する統計的手法です。この分析では、ベクトル w を使用して、従属変数を説明変数の線形結合としてモデル化します。ベクトル w は回帰係数で、バイアス項 b と共に最適な値を見つけるために勾配降下法を使用します。
2. 目的関数(損失関数)
重回帰分析の損失関数 E を次のように定義します。
$$
E(\mathbf{w}) = \frac{1}{N} \sum_{i=1}^{N} (y_i - (\mathbf{x}_i ^T \mathbf{w}))^2
$$
ここで、
- $\mathbf{w}$ は回帰係数とバイアス項を含むベクトル
- $N$ はデータポイントの数
- $y_i$ は i 番目の観測値
- $\mathbf{x}_i$ は i 番目の説明変数のベクトル
- E(w) はパラメタベクトル$\mathbf{w}$に関する損失関数
3. パラメータの更新式(勾配降下法)
パラメータ w を最適化するために、勾配降下法を使用します。損失関数 E(w) を最小化する w を見つけるため、以下の更新式を使用します。
$$\mathbf{w'} ← \mathbf{w} - α * ∇E(\mathbf{w})$$
ここで、
- w は回帰係数とバイアス項を含むベクトル
- $α$(アルファ)は学習率(更新ステップの大きさ)
- ∇E(w) は損失関数 E(w) の勾配ベクトル
基本的な考え方は単回帰と同一です。勾配と逆方向にパラメータを更新することで、誤差関数の値を減らす方向に向かいます。損失関数 E(w) の勾配ベクトル ∇E(w) を計算する必要があります。これは、各回帰係数とバイアス項に対する偏微分を計算し、ベクトルとしてまとめたものです。
勾配は
$$
∇E(\mathbf{w}) = \frac{2}{N} \sum_{i=1}^{N} (\mathbf{x}_i ^T \mathbf{w} - y_i) \mathbf{x}_i$$
これを以上の更新式に代入することで、最急降下法によるパラメータの更新を行うことができます。実際は誤差関数の値が閾値を下回ったときに打ち切ります。
4. まとめ
以上で最急降下法を用いて、重回帰分析を行うことができます。また、行列計算を用いて重回帰分析を行う方法もありますが、計算量が非常に多いため変数が多くなると使用が難しくなってきます。