2025年3月27日木曜日

回帰直線の傾きの導出と予測値の補正

PyCaret で上位5つの回帰モデルをチューニングし、結果を確認。
いずれも、予測値を縦軸、実測値を横軸にプロットすると傾きが1未満になります。理由があるはずだと調べてみましたが、ほとんど書かれていないようです。で、GPT君に聞きながら整理しました。

以下、実測値 \(y\) と予測値 \(\hat{y}\) の関係から回帰直線の傾き \(\gamma\) の導出、その傾きが1以下となる理由、及び予測値が実測値の全変動を再現できない場合の補正方法について書き残しておきます。

※傾きの導出は「学習物理学入門」に書かれています。高校で習ったかな。


1. 傾きの公式の導出

ここでは、中心化したデータを用いて回帰直線の傾き \(\gamma\) を求めるプロセスを示す。
まず、各データ点 \(i\) に対して、実測値 \(y_i\) と予測値 \(\hat{y}_i\) の中心化された値を以下のように定義する:

\[ \tilde{y}_i = y_i - \bar{y},\quad \tilde{\hat{y}}_i = \hat{y}_i - \bar{y} \]

このとき、中心化されたデータに対するモデルは

\[ \tilde{\hat{y}}_i = \gamma\, \tilde{y}_i + \varepsilon_i \]

と表現され、ここで \(\gamma\) は回帰直線の傾き、\(\varepsilon_i\) は各データ点 \(i\) における残差を示す。 残差の二乗和(Sum of Squared Errors, SSE)は次のように定義される:

\[ \text{SSE}(\gamma) = \sum_{i=1}^{n} \left(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\right)^2 \]

1-1. SSE を \(\gamma\) で最小化する過程

SSE を最小にする \(\gamma\) を求めるため、まず SSE を \(\gamma\) の関数として展開する。
各項は

\[ f(\gamma) = \left[\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\right]^2 \]

と表される。ここで、内部関数

\[ u(\gamma) = \tilde{\hat{y}}_i - \gamma\, \tilde{y}_i \]

と置くと、\(f(\gamma)\) は \(f(\gamma) = \bigl[u(\gamma)\bigr]^2\) と表せる。

チェーンルールを用いて \(f(\gamma)\) の \(\gamma\) による微分を行う。まず、外側の関数 \(g(u) = u^2\) の微分は

\[ g'(u) = 2u \]
次に、内側の関数
\[ u(\gamma) = \tilde{\hat{y}}_i - \gamma\, \tilde{y}_i \]
を \(\gamma\) で微分する。ここで \(\tilde{\hat{y}}_i\) は \(\gamma\) に依存しない定数なので、その微分は 0 となり、
\[ \frac{d}{d\gamma} u(\gamma) = -\tilde{y}_i \]
チェーンルールにより、全体の微分は
\[ \frac{d}{d\gamma} f(\gamma) = g'\bigl(u(\gamma)\bigr) \cdot u'(\gamma) \]
これにより、具体的には
\[ \frac{d}{d\gamma}\left[\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\right]^2 = 2\bigl(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\bigr) \cdot (-\tilde{y}_i) \]

整理すると、

\[ \frac{d}{d\gamma}\left[\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\right]^2 = -2\,\tilde{y}_i\,\bigl(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\bigr) \]

これが、各項 \(\left[\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\right]^2\) の \(\gamma\) による微分の導出過程である。
次に、この導出を全データ点 \( i = 1, 2, \ldots, n\) に対して合計し、SSE の全体の微分を求める。

\[ \frac{d}{d\gamma}\text{SSE}(\gamma) = \sum_{i=1}^{n} -2\,\tilde{y}_i\,\bigl(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\bigr) \]

SSE の最小値を与えるためには、この導関数を 0 とおく必要がある。すなわち、

\[ -2 \sum_{i=1}^{n} \tilde{y}_i\,\bigl(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\bigr) = 0 \]

両辺を \(-2\) で割ると、次の条件が得られる:

\[ \sum_{i=1}^{n} \tilde{y}_i\,\bigl(\tilde{\hat{y}}_i - \gamma\, \tilde{y}_i\bigr) = 0 \]

これを展開すると:

\[ \sum_{i=1}^{n} \tilde{y}_i\, \tilde{\hat{y}}_i - \gamma \sum_{i=1}^{n} \tilde{y}_i^2 = 0 \]

\(\gamma\) について解くと、以下の式が得られる:

\[ \gamma = \frac{\sum_{i=1}^{n} \tilde{y}_i\, \tilde{\hat{y}}_i}{\sum_{i=1}^{n} \tilde{y}_i^2} \]

分散と共分散の定義、 \(\operatorname{Cov}(y,\hat{y}) = \frac{1}{n}\sum_{i=1}^{n} \tilde{y}_i\, \tilde{\hat{y}}_i\) および \(\operatorname{Var}(y) = \frac{1}{n}\sum_{i=1}^{n} \tilde{y}_i^2\) を用いると、最終的に

\[ \gamma = \frac{\operatorname{Cov}(y,\hat{y})}{\operatorname{Var}(y)} \]

となる。

1-2. 直交性による公式の変形

回帰分析では、予測値 \(\hat{y}\) と残差 \(e = y - \hat{y}\) が直交する性質、すなわち \(\operatorname{Cov}(\hat{y}, e) = 0\) が成り立つ。
実測値は予測値と残差の和として表せるので、

\[ y = \hat{y} + e \]

となる。この関係から、共分散の線形性を用いると、

\[ \operatorname{Cov}(y,\hat{y}) = \operatorname{Cov}(\hat{y}+e,\hat{y}) = \operatorname{Cov}(\hat{y},\hat{y}) + \operatorname{Cov}(e,\hat{y}) \]

ここで \(\operatorname{Cov}(e,\hat{y}) = 0\) であるため、

\[ \operatorname{Cov}(y,\hat{y}) = \operatorname{Var}(\hat{y}) \]

従って、もともとの \(\gamma\) の式は

\[ \gamma = \frac{\operatorname{Var}(\hat{y})}{\operatorname{Var}(y)} \]

と表される。

2. 予測値の補正方法とその導出

通常、モデルの予測値 \(\hat{y}\) は実測値 \(y\) の全てのばらつきを再現できない。その理由は、回帰モデルが実際のデータのばらつきを完全には捉えられず、残差 \(e\) すなわちモデルでは説明できない成分が存在するためである。

実測値は予測値と残差の和として表現できる:

\[ y = \hat{y} + e \]

ここで、回帰分析の基本的性質として、予測値 \(\hat{y}\) と残差 \(e\) は直交すると仮定され、\( \operatorname{Cov}(\hat{y},e) = 0 \) が成立する。
この性質を用いて、実測値 \(y\) の分散を計算すると、

\[ \operatorname{Var}(y) = \operatorname{Var}(\hat{y}+e) = \operatorname{Var}(\hat{y}) + \operatorname{Var}(e) + 2\,\operatorname{Cov}(\hat{y},e) \]

ここで \( \operatorname{Cov}(\hat{y},e)=0 \) なので、

\[ \operatorname{Var}(y) = \operatorname{Var}(\hat{y}) + \operatorname{Var}(e) \]

残差の分散 \(\operatorname{Var}(e)\) は非負のため、

\[ \operatorname{Var}(\hat{y}) \le \operatorname{Var}(y) \]

すなわち、モデルの予測値 \(\hat{y}\) は実測値 \(y\) の全ばらつきを再現できず、通常は \(\operatorname{Var}(\hat{y}) < \operatorname{Var}(y)\) となる。
この状態では、中心化された回帰直線の傾きは

\[ \gamma = \frac{\operatorname{Var}(\hat{y})}{\operatorname{Var}(y)} < 1 \]

この差を補正するために、予測値の分散を実測値の分散に合わせる補正が必要となる。

2-1. 標準偏差比による補正

実測値 \(y\) の標準偏差を \(\sigma_y\)、予測値 \(\hat{y}\) の標準偏差を \(\sigma_{\hat{y}}\) とすると、
補正後の予測値は以下の式で定義される:

\[ \hat{y}_{\text{new}} = \bar{y} + \Bigl(\hat{y} - \bar{y}\Bigr) \times \frac{\sigma_y}{\sigma_{\hat{y}}} \]

2-2. 補正方法の導出(標準偏差比による補正の意味)

まず、予測値 \(\hat{y}\) を中心化すると \( \hat{y} - \bar{y} \) となる。
補正前の分散は \(\operatorname{Var}(\hat{y}) = \sigma_{\hat{y}}^2\) である。
補正係数 \(\frac{\sigma_y}{\sigma_{\hat{y}}}\) を用いることで、補正後の分散は

\[ \operatorname{Var}(\hat{y}_{\text{new}}) = \left(\frac{\sigma_y}{\sigma_{\hat{y}}}\right)^2 \operatorname{Var}(\hat{y}) = \left(\frac{\sigma_y}{\sigma_{\hat{y}}}\right)^2 \sigma_{\hat{y}}^2 = \sigma_y^2 \]

これにより、補正後の予測値は実測値 \(y\) の全体のばらつきに一致し、中心化された回帰直線の傾きが 1 に調整される。

3. 参考情報

3-1. 相関係数と傾きの違い

2つの変数 \(y\) と \(\hat{y}\) の相関係数は通常、

\[ r_{y,\hat{y}} = \frac{\operatorname{Cov}(y,\hat{y})}{\sigma_y\, \sigma_{\hat{y}}} \]

と定義される。一方、傾きは実測値 \(y\) の分散を基準としているため、

\[ \gamma = \frac{\operatorname{Cov}(y,\hat{y})}{\sigma_y^2} \]

と表現され、尺度が異なるため相関係数とは意味が異なる。

3-2. 決定係数とのつながり

決定係数 \(R^2\) は、モデルが実測値のばらつきをどの程度説明できるかを示す指標であり、以下のように定義される:

\[ R^2 = \frac{\operatorname{Var}(\hat{y})}{\operatorname{Var}(y)} \]

未補正の場合は、回帰直線の傾き \(\gamma\) と同様の形となり、通常 \(R^2 < 1\) となる。

4. まとめ

・中心化したデータに対して最小二乗法を用い、残差の二乗和(SSE)を最小にすることで回帰直線の傾きは

\[ \gamma = \frac{\operatorname{Cov}(y,\hat{y})}{\operatorname{Var}(y)} \]

と導出される。さらに、残差と予測値の直交性によりこの式は

\[ \gamma = \frac{\operatorname{Var}(\hat{y})}{\operatorname{Var}(y)} \]

とも表現される。
通常、モデルは実測値の全変動を再現できないため、\(\operatorname{Var}(\hat{y}) < \operatorname{Var}(y)\) となり、補正前の \(\gamma\) は 1 未満となる。

・補正方法の一つとして、標準偏差比を用いて予測値の分散を実測値の分散に合わせる方法があり、

\[ \hat{y}_{\text{new}} = \bar{y} + \Bigl(\hat{y} - \bar{y}\Bigr) \times \frac{\sigma_y}{\sigma_{\hat{y}}} \]

により、補正後の予測値は実測値 \(y\) のばらつき(\(\sigma_y^2\))と一致し、中心化された回帰直線の傾きが理想的な 1 に調整される。


0 件のコメント:

コメントを投稿