🐡

One-Hotエンコーディングしたカテゴリ変数の重回帰係数

2023/11/16に公開

はじめに

色(例:赤・青・黄・...)や都道府県(例: 東京・北海道・愛媛・...)といった(順序のない)カテゴリー変数が1列のカラムとして与えられたデータを機械学習や統計モデルで扱う際に、One-Hotエンコーディングという手法を用いることがよくある。

これは、各カテゴリーを0/1のダミー変数に置き換えて横持ちにするもので、たとえば都道府県のカラムであれば以下のように処理する:

id 都道府県
1 東京
2 東京
3 北海道
4 愛媛
5 北海道

id 東京 北海道 愛媛
1 1 0 0
2 1 0 0
3 0 1 0
4 0 0 1
5 0 1 0

本記事では、このようにカテゴリカルな変数をOne-Hotエンコーディングでダミー変数に置き換えたデータについて、重回帰分析を行った際の回帰係数が各カテゴリ内での目的変数のサンプル平均を用いて簡単な形で表せることを示す。

設定

カテゴリ数 K のカテゴリ変数を One-Hot エンコーディングしたダミー変数を、X_1, X_2, ..., X_{K-1}, X_K と置く。[1]

以下のように、目的変数 Y に対して説明変数 X_1, X_2, ..., X_{K-1} を用いて線形回帰を行うことを考える:

Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_{K-1} X_{K-1} + \varepsilon \tag{1}

\varepsilon は誤差項である。
なお、(完全な)多重共線性を避けるために K 番目のカテゴリについてのダミー変数 X_K は落としている。[2]

推定量の求め方

n 個の観測値 \{X_{1i}, X_{2i}, ..., X_{K-1, i}, Y_i\}_{i=1}^n が与えられたとき、k 番目のカテゴリについての回帰係数 \beta_k の最小二乗推定量 \hat{\beta}_k は、以下のように表すことができる:

\hat{\beta}_k = \bar{Y}_k - \bar{Y}_K \tag{2}

ただし、\bar{Y}_kk 番目のカテゴリについての Y のカテゴリ内サンプル平均であり、

\bar{Y}_k = \frac{1}{\sum_{i=1}^n X_{ki}} \sum_{i=1}^n X_{ki} Y_i

と表すことができる。ちなみに、分母の \sum_{i=1}^n X_{ki} は、k 番目のカテゴリに含まれるサンプルの数を意味している。

なお、切片 \beta_0 の推定量は、

\hat{\beta}_0 = \bar{Y}_K

である。

解釈

予測値

カテゴリ k に属するデータに対する予測値は、学習データにおける k 番目のカテゴリ内での Y の平均値 \bar{Y}_k になる。

このことを確かめるために、具体的に X_k=1, X_l=0 \, (l\ne k) としてこの時の予測値 \hat{Y} を求めてみる:

\begin{aligned} \hat{Y} &= \hat{\beta}_0 + \hat{\beta}_1 X_1 + \hat{\beta}_2 X_2 + ... + \hat{\beta}_{K-1} X_{K-1}\\ &= \hat{\beta}_0 + \hat{\beta}_k\\ &= \bar{Y}_K + (\bar{Y}_k - \bar{Y}_K)\\ &= \bar{Y}_k. \end{aligned}

なお、 X_K=1 のときは X_1 = X_2 = ... = X_{K-1}=0 であるので、予測値は \hat{Y} = \hat{\beta}_0 = \bar{Y}_K となることがわかる。

係数の意味

以下、係数 \beta_k とその推定量 \hat{\beta}_k の意味を条件付き期待値を用いて別の視点から解釈する。

係数 \beta_k は条件付き期待値を用いて

\beta_k = E[Y\vert X_k=1] - E[Y\vert X_K=1]

と表すことができる。

証明

まず、X_k=1 の時の式(1)の条件付き期待値を考えると、
このとき X_l=0, \, k \ne l となるので、

E[Y\vert X_k = 1] = \beta_0 + \beta_k

となる。
一方、X_K=1 の時の式(1)の条件付き期待値は、

\begin{aligned} E[Y\vert X_K=1] &= E[Y \vert X_1=0, X_2=0, ..., X_{K-1}=0]\\ &= \beta_0 \end{aligned}

である。
したがって、

\beta_k = E[Y\vert X_k=1] - E[Y\vert X_K=1]

と表すことができる。

したがって、式(2)の係数推定量 \hat{\beta}_k = \bar{Y}_k - \bar{Y}_K は、上記の \beta_k の表現において条件付き期待値 E[Y\vert X_k=1] をカテゴリ k 内のサンプル平均 \bar{Y}_k で置き換えたものとして解釈することができる。

最小二乗法による導出(簡易版)

以下のような計画行列 \boldsymbol{X} を定義する:

\boldsymbol{X} = \begin{pmatrix} 1 & X_{11} & X_{21} & ... & X_{K-1,1}\\ 1 & X_{12} & X_{22} & ... & X_{K-1,2}\\ \vdots & \vdots & \vdots & ... \vdots\\ 1 & X_{1n} & X_{2n} & ... & X_{K-1,n}\\ \end{pmatrix}

このとき、最小二乗法による係数推定量 \hat{\boldsymbol{\beta}} = (\hat{\beta}_0, \hat{\beta}_1, \hat{\beta}_2, .., \hat{\beta}_{K-1})^\top は、以下のように表すことができる:[3]

\hat{\boldsymbol{\beta}} = (\boldsymbol{X}^\top \boldsymbol{X})^{-1} \boldsymbol{X}^\top \boldsymbol{Y}.

ただし、 \boldsymbol{Y} = (Y_1, Y_2, ..., Y_n)^\top である。

これを用いて残差 \hat{\boldsymbol{e}} を以下のように定義する:

\hat{\boldsymbol{e}} = \boldsymbol{Y} - \boldsymbol{X} \hat{\boldsymbol{\beta}}.

ここで、残差 \hat{\boldsymbol{e}} と計画行列 \boldsymbol{X} は直交する:

\boldsymbol{X}^\top \hat{\boldsymbol{e}} = \boldsymbol{0}.
証明
\begin{aligned} \hat{\boldsymbol{e}} &= \boldsymbol{Y} - \boldsymbol{X} \hat{\boldsymbol{\beta}}\\ &= \boldsymbol{Y} - \boldsymbol{X}(\boldsymbol{X}^\top \boldsymbol{X})^{-1} \boldsymbol{X}^\top \boldsymbol{Y} \end{aligned}

と書き表すことができるので、

\begin{aligned} \boldsymbol{X}^\top \hat{\boldsymbol{e}} &= \boldsymbol{X}^\top \boldsymbol{Y} - \boldsymbol{X}^\top \boldsymbol{X}(\boldsymbol{X}^\top \boldsymbol{X})^{-1} \boldsymbol{X}^\top \boldsymbol{Y}\\ &= \boldsymbol{X}^\top \boldsymbol{Y} - \boldsymbol{X}^\top \boldsymbol{Y}\\ &= \boldsymbol{0}. \end{aligned}

これを成分ごとに表すと、

\begin{aligned} \sum_{i=1}^n (Y_i - \hat{\beta}_0 - \hat{\beta}_1 X_{1i} - \hat{\beta}_2 X_{2i} - ... - \hat{\beta}_{K-1} X_{K-1, i}) &= 0\\ \sum_{i=1}^n X_{ki}(Y_i - \hat{\beta}_0 - \hat{\beta}_1 X_{1i} - \hat{\beta}_2 X_{2i} - ... - \hat{\beta}_{K-1} X_{K-1, i}) &= 0 \qquad (k=1, 2, ..., K-1) \end{aligned}

のようになる。
このうち後者の式から、以下が言える:

\bar{Y}_k = \hat{\beta}_0 + \hat{\beta}_k \quad (k=1, 2, ...,K-1).
証明

上記のうち2つめの式を X_{ki} X_{ki} = X_{ki}, \, X_{ki} X_{li} = 0 \, (k \ne l) に気をつけて書き改めると、

\begin{aligned} \sum_{i=1}^n X_{ki}&(Y_i - \hat{\beta}_0 - \hat{\beta}_1 X_{1i} - \hat{\beta}_2 X_{2i} - ... - \hat{\beta}_{K-1} X_{K-1, i})\\ &=\sum_{i=1}^n (X_{ki}Y_i - \hat{\beta}_0 X_{ki} - \hat{\beta}_k X_{ki})\\ &= \left(\sum_{i=1}^n X_{ki} \right) (\bar{Y}_k - \hat{\beta}_0 - \hat{\beta}_k)\\ &=0 \end{aligned}

となることから、 (\sum_{i=1}^n X_{ki} \ne 0、つまりカテゴリ k に属するサンプルの数が0個でない限り)以下が成り立つ:

\bar{Y}_k = \hat{\beta}_0 + \hat{\beta}_k.

次に、X_{Ki} = 1 - X_{1i} - X_{2i} - ... - X_{K-1,i} であることに気をつけると、もう片方の式も用いて以下のことが言える:

\sum_{i=1}^n X_{Ki}(Y_i - \hat{\beta}_0 - \hat{\beta}_1 X_{1i} - \hat{\beta}_2 X_{2i} - ... - \hat{\beta}_{K-1} X_{K-1, i})=0.

これを用いると、先ほどと同様にして以下が成り立つことがわかる:

\hat{\beta}_0 = \bar{Y}_K.
証明

X_{Ki} X_{li} = 0 \, (l \ne K) より、

\begin{aligned} \sum_{i=1}^n X_{Ki}&(Y_i - \hat{\beta}_0 - \hat{\beta}_1 X_{1i} - \hat{\beta}_2 X_{2i} - ... - \hat{\beta}_{K-1} X_{K-1, i})\\ &= \sum_{i=1}^n (X_{Ki} Y_i - X_{Ki} \hat{\beta}_0)\\ &= \left(\sum_{i=1}^n X_{Ki}\right) (\bar{Y}_K - \hat{\beta}_0)\\ &= 0 \end{aligned}

したがって、(\sum_{i=1}^n X_{Ki} \ne 0 である限り)\hat{\beta}_0 = \bar{Y}_K が成り立つ。

以上を整理して、

\begin{aligned} \hat{\beta}_k &= \bar{Y}_k - \bar{Y}_K \quad (k=1, 2, ..., K-1)\\ \hat{\beta}_0 &= \bar{Y}_K \end{aligned}

となることが示された。

補足: 残差回帰を用いたテクニカルな導出

以下では、以前の記事で解説した残差回帰を多段階に渡り適用した導出を紹介する。

https://zenn.dev/tatamiya/articles/79c2a291bc19484039ea

1 ~ K-1 番目の係数の推定式

次のようにサンプル平均 \bar{X}_k = \frac{1}{n} \sum_{i=1}^n X_{ki} により中心化した計画行列を考える:

\tilde{\boldsymbol{X}}_0 = \begin{pmatrix} X_{11} - \bar{X}_1 & X_{21} - \bar{X}_2 & \cdots & X_{K-1,1} - \bar{X}_{K-1}\\ X_{12} - \bar{X}_1 & X_{22} - \bar{X}_2 & \cdots & X_{K-1,2} - \bar{X}_{K-1}\\ \vdots & \vdots & \cdots & \vdots\\ X_{1n} - \bar{X}_1 & X_{2n} - \bar{X}_2 & \cdots & X_{K-1,n} - \bar{X}_{K-1}\\ \end{pmatrix}

これを用いると、切片 \beta_0 を除いた回帰係数の最小二乗推定量 \hat{\boldsymbol{\beta}}^{(0)} = (\hat{\beta}_1, \hat{\beta}_2, ..., \hat{\beta}_{K-1})^\top は以下のように表すことができる:[4]

\hat{\boldsymbol{\beta}}^{(0)} = (\tilde{\boldsymbol{X}}_0^\top \tilde{\boldsymbol{X}}_0)^{-1} \tilde{\boldsymbol{X}}_0^\top \boldsymbol{Y}

ただし、\boldsymbol{Y} = (Y_1, Y_2, ..., Y_n)^\top である。

1番目から順に係数を減らして K-1 番目を求める

以降では、残差回帰を多段階用いて推定対象の係数を絞り込んでいき、最終的に \hat{\beta}_{K-1} を求めることを考える。
模式的に表すと次のようになる:

\hat{\boldsymbol{\beta}}^{(0)} = (\hat{\beta}_1, \hat{\beta}_2, ..., \hat{\beta}_{K-1})^\top
 ↓
\hat{\boldsymbol{\beta}}^{(1)} = (\hat{\beta}_2, \hat{\beta}_3, ..., \hat{\beta}_{K-1})^\top
 ↓
 ...
 ↓
\hat{\boldsymbol{\beta}}^{(K-3)} = (\hat{\beta}_{K-2}, \hat{\beta}_{K-1})^\top
 ↓
\hat{\boldsymbol{\beta}}^{(K-2)} = (\hat{\beta}_{K-1})

1番目を除外した係数推定

まず、\hat{\boldsymbol{\beta}}^{(1)} = (\hat{\beta}_2, \hat{\beta}_3, ..., \hat{\beta}_{K-1} )^\top を求める。

計画行列 \tilde{\boldsymbol{X}}_0 を以下のように \tilde{\boldsymbol{X}}_0 = (\tilde{\boldsymbol{Z}}_1, \tilde{\boldsymbol{Z}}_{\bar{1}}) の形に分割する:

\tilde{\boldsymbol{Z}}_1 = \begin{pmatrix} X_{11} - \bar{X}_1\\ X_{12} - \bar{X}_1\\ \vdots\\ X_{1n} - \bar{X}_1 \end{pmatrix} \qquad \tilde{\boldsymbol{Z}}_{\bar{1}}= \begin{pmatrix} X_{21} - \bar{X}_2 & X_{31} - \bar{X}_3 & \cdots & X_{K-1,1} - \bar{X}_{K-1}\\ X_{22} - \bar{X}_2 & X_{32} - \bar{X}_3 & \cdots & X_{K-1,2} - \bar{X}_{K-1}\\ \vdots & \vdots & \cdots & \vdots\\ X_{2n} - \bar{X}_2 & X_{3n} - \bar{X}_3 & \cdots & X_{K-1,n} - \bar{X}_{K-1}\\ \end{pmatrix}.

これを用いて

\tilde{\boldsymbol{X}}_1 = \{\boldsymbol{1}_n - \tilde{\boldsymbol{Z}}_{1} (\tilde{\boldsymbol{Z}}_{1}^\top \tilde{\boldsymbol{Z}}_{1})^{-1}\tilde{\boldsymbol{Z}}_{1}^\top\}\tilde{\boldsymbol{Z}}_{\bar{1}}

を定義する(\boldsymbol{1}_nn 次元の単位行列)と、 \hat{\boldsymbol{\beta}}^{(1)} は以下のように表すことができる:

\hat{\boldsymbol{\beta}}^{(1)} = (\tilde{\boldsymbol{X}}_1^\top \tilde{\boldsymbol{X}}_1)^{-1} \tilde{\boldsymbol{X}}_1^\top \boldsymbol{Y}.

なお、この時 \tilde{\boldsymbol{X}}_1 の各成分は、

(\tilde{\boldsymbol{X}}_1)_{k,i} = X_{k,i} - \bar{X}_k \frac{1 - X_{1i}}{1 - \bar{X}_1}

である。[5]

証明
\tilde{\boldsymbol{Z}}_1^\top \tilde{\boldsymbol{Z}}_1 = \sum_{i=1}^n (X_{1i} - \bar{X}_1)^2
\tilde{\boldsymbol{Z}}_{1}^\top\tilde{\boldsymbol{Z}}_{\bar{1}} = -n \bar{X}_1 (\bar{X}_2, \bar{X}_3, ..., \bar{X}_{K-1})

であるので、

\tilde{\boldsymbol{Z}}_{1} (\tilde{\boldsymbol{Z}}_{1}^\top \tilde{\boldsymbol{Z}}_{1})^{-1}\tilde{\boldsymbol{Z}}_{1}^\top \tilde{\boldsymbol{Z}}_{\bar{1}} = -\frac{n \bar{X}_1}{\sum_{i=1}^n (X_{1i} - \bar{X}_1)^2} \begin{pmatrix} \bar{X}_2 (X_{21} - \bar{X}_2) & \bar{X}_3 (X_{31} - \bar{X}_3) & ... & \bar{X}_{K-1} (X_{K-1, 1} - \bar{X}_{K-1})\\ \bar{X}_2 (X_{22} - \bar{X}_2) & \bar{X}_3 (X_{32} - \bar{X}_3) & ... & \bar{X}_{K-1} (X_{K-1, 2} - \bar{X}_{K-1})\\ \vdots & \vdots & & \vdots\\ \bar{X}_2 (X_{2n} - \bar{X}_2) & \bar{X}_3 (X_{3n} - \bar{X}_3) & ... & \bar{X}_{K-1} (X_{K-1, n} - \bar{X}_{K-1})\\ \end{pmatrix}

となる。
これを用いると、

\begin{aligned} (\tilde{\boldsymbol{X}}_1)_{k,i} &= (\tilde{\boldsymbol{Z}}_{\bar{1}})_{k,i} - \left( \tilde{\boldsymbol{Z}}_{1} (\tilde{\boldsymbol{Z}}_{1}^\top \tilde{\boldsymbol{Z}}_{1})^{-1}\tilde{\boldsymbol{Z}}_{1}^\top \tilde{\boldsymbol{Z}}_{\bar{1}}\right)_{k,i}\\ &= X_{ki} - \bar{X}_k + \frac{n}{\sum_{i=1}^n (X_{1i} - \bar{X}_1)^2} \bar{X}_1 \bar{X}_k (X_{1i} - \bar{X}_1). \end{aligned}

ここで、

\begin{aligned} \sum_{i=1}^n (X_{1i} - \bar{X}_1)^2 &= \sum_{i=1}^n X_{1i}^2 - n \bar{X}_1^2\\ &= \sum_{i=1}^n X_{1i} -n \bar{X}_1^2 \qquad \because X_{ki}^2 = X_{ki}\\ &= n \bar{X}_1 -n \bar{X}_1^2\\ &= n \bar{X}_1 (1 - \bar{X}_1) \end{aligned}

であることから、

\begin{aligned} (\tilde{\boldsymbol{X}}_1)_{k,i} &= X_{ki} - \bar{X}_k \frac{n\bar{X}_1 (1 - \bar{X}_1) - n\bar{X}_1 X_{1i} + n \bar{X}_1^2}{n\bar{X}_1 (1 - \bar{X}_1)}\\ &= X_{ki} - \bar{X}_k \frac{1 - X_{1i}}{1 - \bar{X}_1}. \end{aligned}

2番目以降を順に除外していく

同じ要領で \hat{\beta}_2, \hat{\beta}_3, ... の順でひとつずつ順番に減らしていくことを考える。
すると、l 番目まで減らした時、\hat{\boldsymbol{\beta}}^{(l)} = (\hat{\beta}_{l+1}, \hat{\beta}_{l+2}, ..., \hat{\beta}_{K-1})^\top は、行列 \tilde{\boldsymbol{X}}_l を用いて

\hat{\boldsymbol{\beta}}^{(l)} = (\tilde{\boldsymbol{X}}_l^\top \tilde{\boldsymbol{X}}_l)^{-1} \tilde{\boldsymbol{X}}_l^\top \boldsymbol{Y}

のように表すことができる。

なおこのとき、行列 \tilde{\boldsymbol{X}}_l の各成分は以下のようになることを数学的帰納法によって示すことができる:

(\tilde{\boldsymbol{X}}_l)_{k,i} = X_{k,i} - \bar{X}_k \frac{1 - X_{1i} - X_{2i} - ... - X_{li}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l}. \tag{3}
証明

l=1 については、前節で示した通り。

以下、l において式(3)が成り立っていると仮定して、l+1 でも同様の式

(\tilde{\boldsymbol{X}}_{l+1})_{k,i} = X_{k,i} - \bar{X}_k \frac{1 - X_{1i} - X_{2i} - ... - X_{li} - X_{l+1,i}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l - \bar{X}_{l+1}}

が成り立つことを示す。

行列 \tilde{\boldsymbol{X}}_l を、以下のように \tilde{\boldsymbol{X}}_l = (\tilde{\boldsymbol{Z}}_{l+1}, \tilde{\boldsymbol{Z}}_{\bar{l+1}}) の形に分解する:

\tilde{\boldsymbol{Z}}_{l+1}= \begin{pmatrix} (\tilde{\boldsymbol{X}}_l)_{l+1,1}\\ (\tilde{\boldsymbol{X}}_l)_{l+1,2}\\ \vdots\\ (\tilde{\boldsymbol{X}}_l)_{l+1,n} \end{pmatrix}, \qquad \tilde{\boldsymbol{Z}}_{\bar{l+1}}= \begin{pmatrix} (\tilde{\boldsymbol{X}}_l)_{l+2,1} & (\tilde{\boldsymbol{X}}_l)_{l+3,1} & (\tilde{\boldsymbol{X}}_l)_{K-1,1}\\ (\tilde{\boldsymbol{X}}_l)_{l+2,2} & (\tilde{\boldsymbol{X}}_l)_{l+3,3} & (\tilde{\boldsymbol{X}}_l)_{K-1,3}\\ \vdots & \vdots & ... & \vdots\\ (\tilde{\boldsymbol{X}}_l)_{l+2,n} & (\tilde{\boldsymbol{X}}_l)_{l+3,n} & (\tilde{\boldsymbol{X}}_l)_{K-1,n}\\ \end{pmatrix}.

これを用いると、\tilde{\boldsymbol{X}}_{l+1} は以下のように表すことができる:

\tilde{\boldsymbol{X}}_{l+1} = \left\{ \boldsymbol{I}_n - \tilde{\boldsymbol{Z}}_{l+1}(\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{l+1})^{-1}\tilde{\boldsymbol{Z}}_{l+1}^\top \right\}\tilde{\boldsymbol{Z}}_{\bar{l+1}}.

ここで、

\begin{aligned} \tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{l+1} &= \sum_{i=1}^n \left( X_{l+1,i} - \bar{X}_{l+1} \frac{1 - X_{1i} - X_{2i} - ... - X_{li}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \right)^2\\ &= n \bar{X}_{l+1} \frac{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l - \bar{X}_{l+1}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \end{aligned}
\begin{aligned} (\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{\bar{l+1}})_k &= \sum_{i=1}^n \left( X_{l+1,i} - \bar{X}_{l+1} \frac{1 - X_{1i} - X_{2i} - ... - X_{li}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \right) \left( X_{k,i} - \bar{X}_{k} \frac{1 - X_{1i} - X_{2i} - ... - X_{li}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \right)\\ &= -n \frac{\bar{X}_{l+1} \bar{X}_k}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \end{aligned}

であることから、

\begin{aligned} \left( \tilde{\boldsymbol{Z}}_{l+1}(\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{l+1})^{-1}\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{\bar{l+1}} \right)_{k,i} &= - \left( X_{l+1, i} - \bar{X}_{l+1}\frac{1 - X_{1i} - X_{2i} - ... - X_{li}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l} \right)\frac{\bar{X}_k}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{l}- \bar{X}_{l+1}} \end{aligned}

となり、したがって、

\begin{aligned} (\tilde{\boldsymbol{X}}_{l+1})_{k,i} &= (\tilde{\boldsymbol{Z}}_{\bar{l+1}})_{k,i} - \left( \tilde{\boldsymbol{Z}}_{l+1}(\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{l+1})^{-1}\tilde{\boldsymbol{Z}}_{l+1}^\top \tilde{\boldsymbol{Z}}_{\bar{l+1}} \right)_{k,i}\\ &= X_{k,i} - \bar{X}_k \frac{1 - X_{1i} - X_{2i} - ... - X_{li} - X_{l+1,i}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_l - \bar{X}_{l+1}} \end{aligned}

が成り立つことが示された。

K-1 番目の係数を求める

以上から、最終的に \hat{\beta}_{K-1} は以下のように求めることができる:

\hat{\beta}_{K-1} = (\tilde{\boldsymbol{X}}_{K-2}^\top \tilde{\boldsymbol{X}}_{K-2})^{-1} \tilde{\boldsymbol{X}}_{K-2}^\top \boldsymbol{Y}

ただし、ベクトル \tilde{\boldsymbol{X}}_{K-2}i 番目の成分は以下のように表される:

(\tilde{\boldsymbol{X}}_{K-2})_i = X_{K-1,i} - \bar{X}_{K-1} \frac{1 - X_{1i} - X_{2i} - ... - X_{K-2,i}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}}.

これを計算して、

\hat{\beta}_{K-1} = \bar{Y}_{K-1} - \bar{Y}_K

が得られる。

計算過程
\tilde{\boldsymbol{X}}_{K-2}^\top \tilde{\boldsymbol{X}}_{K-2} = n \bar{X}_{K-1} \frac{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2} - \bar{X}_{K-1}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}}
\begin{aligned} \tilde{\boldsymbol{X}}_{K-2}^\top \boldsymbol{Y} &= \sum_{i=1}^n \left( X_{K-1,i} - \bar{X}_{K-1} \frac{1 - X_{1i} - X_{2i} - ... - X_{K-2,i}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}} \right) Y_i \\ &= \sum_{i=1}^n X_{K-1,i}Y_i - \bar{X}_{K-1} \frac{\sum_{i=1}^n Y_i - \sum_{i=1}^n X_{1i} Y_i - \sum_{i=1}^n X_{2,i} Y_i - ... - \sum_{i=1}^n X_{K-2,i} Y_i}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}}\\ &= n \bar{Y}_{K-1}\bar{X}_{K-1} - n \bar{X}_{K-1} \frac{\bar{Y} - \bar{X}_1 \bar{Y}_1 - \bar{X}_2 \bar{Y}_2 - ... - \bar{X}_{K-2} \bar{Y}_{K-2}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}} \qquad ... (*) \end{aligned}

ここで、\bar{Y}Y のサンプル平均 \bar{Y} = \frac{1}{n}\sum_{i=1}^n Y_i であり、また (*) では以下の関係式を用いた:

\begin{aligned} \sum_{i=1}^n X_{ki} Y_i &= n \left(\frac{1}{n} \sum_{i=1}^n X_{ki}\right) \left( \frac{1}{\sum_{i=1}^n X_{ki}}\sum_{i=1}^n X_{ki} Y_i \right)\\ &= n \bar{X}_k \bar{Y}_k. \end{aligned}

以上から、

\begin{aligned} \hat{\beta}_{K-1} &= (\tilde{\boldsymbol{X}}_{K-2}^\top \tilde{\boldsymbol{X}}_{K-2})^{-1} \tilde{\boldsymbol{X}}_{K-2}^\top \boldsymbol{Y}\\ &= \frac{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}} \bar{Y}_{K-1} - \frac{\bar{Y} - \bar{X}_1 \bar{Y}_1 - \bar{X}_2 \bar{Y}_2 - ... - \bar{X}_{K-2} \bar{Y}_{K-2}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}}\\ &= \frac{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-2}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}} \bar{Y}_{K-1} - \frac{\bar{X}_{K-1} \bar{Y}_{K-1}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}}\\ &\qquad + \frac{\bar{X}_{K-1} \bar{Y}_{K-1}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}} - \frac{\bar{Y} - \bar{X}_1 \bar{Y}_1 - \bar{X}_2 \bar{Y}_2 - ... - \bar{X}_{K-2} \bar{Y}_{K-2}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}}\\ &= \bar{Y}_{K-1} - \frac{\bar{Y} - \bar{X}_1 \bar{Y}_1 - \bar{X}_2 \bar{Y}_2 - ... - \bar{X}_{K-2} \bar{Y}_{K-2} - \bar{X}_{K-1} \bar{Y}_{K-1}}{1 - \bar{X}_1 - \bar{X}_2 - ... - \bar{X}_{K-1}}\\ &= \bar{Y}_{K-1} - \bar{Y}_K \end{aligned}

が示された。

なお、最後の行の式変換では、以下の関係式を用いた:

\bar{Y} = \sum_{k=1}^K \bar{X}_k \bar{Y}_k, \quad \sum_{k=1}^K \bar{X}_k = 1.

K-1 番目以外の係数の推定

\hat{\beta}_1, \hat{\beta}_2, ..., \hat{\beta}_{K-2} についても上記と同様の手順で示すことができ、

\hat{\beta}_k = \bar{Y}_k - \bar{Y}_K

であることが示される。

また、切片 \hat{\beta}_0 については以下のように求める:

\begin{aligned} \hat{\beta}_0 &= \bar{Y} - \hat{\beta}_1 \bar{X}_1 - \hat{\beta}_1 \bar{X}_2 - ... - \hat{\beta}_{K-1} \bar{X}_{K-1}\\ &= \sum_{k=1}^{K} \bar{X}_k \bar{Y}_k - \sum_{k=1}^{K-1} (\bar{Y}_k - \bar{Y}_K) \bar{X}_k \qquad \because \bar{Y} = \sum_{k=1}^{K} \bar{X}_k \bar{Y}_k\\ &= \bar{X}_K \bar{Y}_K + \bar{Y}_K \sum_{k=1}^{K-1} \bar{X}_k\\ &= \bar{X}_K \bar{Y}_K + \bar{Y}_K (1 - \bar{X}_K \bar{Y}_K) \qquad \because \sum_{k=1}^{K} \bar{X}_k = 1 \\ &= \bar{Y}_K \end{aligned}
脚注
  1. 冒頭の都道府県の例でいうと、K=3 であり One-Hotエンコーディングした後のダミー変数列「東京」「北海道」「愛媛」がそれぞれ X_1, X_2, X_3 に対応する。 ↩︎

  2. X_1 + X_2 + ... + X_K=1 が常に成り立つため、(X_1, X_2, ..., X_{K-1}) が分かれば X_K = 1 - X_1 - X_2 - ... - X_{K-1} により X_K も自動的に確定してしまう。もう少し具体的に説明すると、X_1 ~ X_{K-1} までの値が全て0であれば、X_K=1 と判断できる。 ↩︎

  3. 計画行列を用いた線形回帰係数の最小二乗推定量については、https://zenn.dev/tatamiya/scraps/69c02604543ae5#comment-db9e98ef7a0301 を参照。 ↩︎

  4. 中心化した計画行列を用いて切片以外の係数の推定量を求める方法は、残差回帰の考え方を用いて理解することができる。詳しくは以下を参照: https://zenn.dev/tatamiya/articles/79c2a291bc19484039ea#証明2の補足 ↩︎

  5. 正確には、この行列の index の書き方は正しくなく、右辺では kk+1 にする必要がある(1列目は X_2 についての成分になるため)。しかし、そうしてしまうとステップを追うにつれて表記が複雑になってしまうので、あえてこの形をとっている。どうしても気になる方は、脳内で空白の列をステップ数l個補完して読んでいただけますと。 ↩︎

Discussion