Zenn
🐡

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

設定

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

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

Y=β0+β1X1+β2X2+...+βK1XK1+ε(1) Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_{K-1} X_{K-1} + \varepsilon \tag{1}

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

推定量の求め方

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

β^k=YˉkYˉK(2) \hat{\beta}_k = \bar{Y}_k - \bar{Y}_K \tag{2}

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

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

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

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

β^0=YˉK \hat{\beta}_0 = \bar{Y}_K

である。

解釈

予測値

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

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

Y^=β^0+β^1X1+β^2X2+...+β^K1XK1=β^0+β^k=YˉK+(YˉkYˉK)=Yˉk. \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}

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

係数の意味

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

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

βk=E[YXk=1]E[YXK=1] \beta_k = E[Y\vert X_k=1] - E[Y\vert X_K=1]

と表すことができる。

証明

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

E[YXk=1]=β0+βk E[Y\vert X_k = 1] = \beta_0 + \beta_k

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

E[YXK=1]=E[YX1=0,X2=0,...,XK1=0]=β0 \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}

である。
したがって、

βk=E[YXk=1]E[YXK=1] \beta_k = E[Y\vert X_k=1] - E[Y\vert X_K=1]

と表すことができる。

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

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

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

X=(1X11X21...XK1,11X12X22...XK1,2...1X1nX2n...XK1,n) \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}

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

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

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

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

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

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

Xe^=0. \boldsymbol{X}^\top \hat{\boldsymbol{e}} = \boldsymbol{0}.
証明
e^=YXβ^=YX(XX)1XY \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}

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

Xe^=XYXX(XX)1XY=XYXY=0. \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}

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

i=1n(Yiβ^0β^1X1iβ^2X2i...β^K1XK1,i)=0i=1nXki(Yiβ^0β^1X1iβ^2X2i...β^K1XK1,i)=0(k=1,2,...,K1) \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}

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

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

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

i=1nXki(Yiβ^0β^1X1iβ^2X2i...β^K1XK1,i)=i=1n(XkiYiβ^0Xkiβ^kXki)=(i=1nXki)(Yˉkβ^0β^k)=0 \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}

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

Yˉk=β^0+β^k. \bar{Y}_k = \hat{\beta}_0 + \hat{\beta}_k.

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

i=1nXKi(Yiβ^0β^1X1iβ^2X2i...β^K1XK1,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.

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

β^0=YˉK. \hat{\beta}_0 = \bar{Y}_K.
証明

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

i=1nXKi(Yiβ^0β^1X1iβ^2X2i...β^K1XK1,i)=i=1n(XKiYiXKiβ^0)=(i=1nXKi)(YˉKβ^0)=0 \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}

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

以上を整理して、

β^k=YˉkYˉK(k=1,2,...,K1)β^0=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 番目の係数の推定式

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

X~0=(X11Xˉ1X21Xˉ2XK1,1XˉK1X12Xˉ1X22Xˉ2XK1,2XˉK1X1nXˉ1X2nXˉ2XK1,nXˉK1) \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}

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

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

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

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

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

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

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

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

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

Z~1=(X11Xˉ1X12Xˉ1X1nXˉ1)Z~1ˉ=(X21Xˉ2X31Xˉ3XK1,1XˉK1X22Xˉ2X32Xˉ3XK1,2XˉK1X2nXˉ2X3nXˉ3XK1,nXˉK1). \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}.

これを用いて

X~1={1nZ~1(Z~1Z~1)1Z~1}Z~1ˉ \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}}

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

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

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

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

である。[5]

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

であるので、

Z~1(Z~1Z~1)1Z~1Z~1ˉ=nXˉ1i=1n(X1iXˉ1)2(Xˉ2(X21Xˉ2)Xˉ3(X31Xˉ3)...XˉK1(XK1,1XˉK1)Xˉ2(X22Xˉ2)Xˉ3(X32Xˉ3)...XˉK1(XK1,2XˉK1)Xˉ2(X2nXˉ2)Xˉ3(X3nXˉ3)...XˉK1(XK1,nXˉK1)) \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}

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

(X~1)k,i=(Z~1ˉ)k,i(Z~1(Z~1Z~1)1Z~1Z~1ˉ)k,i=XkiXˉk+ni=1n(X1iXˉ1)2Xˉ1Xˉk(X1iXˉ1). \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}

ここで、

i=1n(X1iXˉ1)2=i=1nX1i2nXˉ12=i=1nX1inXˉ12Xki2=Xki=nXˉ1nXˉ12=nXˉ1(1Xˉ1) \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}

であることから、

(X~1)k,i=XkiXˉknXˉ1(1Xˉ1)nXˉ1X1i+nXˉ12nXˉ1(1Xˉ1)=XkiXˉk1X1i1Xˉ1. \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番目以降を順に除外していく

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

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

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

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

(X~l)k,i=Xk,iXˉk1X1iX2i...Xli1Xˉ1Xˉ2...Xˉl.(3) (\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=1l=1 については、前節で示した通り。

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

(X~l+1)k,i=Xk,iXˉk1X1iX2i...XliXl+1,i1Xˉ1Xˉ2...XˉlXˉ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}}

が成り立つことを示す。

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

Z~l+1=((X~l)l+1,1(X~l)l+1,2(X~l)l+1,n),Z~l+1ˉ=((X~l)l+2,1(X~l)l+3,1(X~l)K1,1(X~l)l+2,2(X~l)l+3,3(X~l)K1,3...(X~l)l+2,n(X~l)l+3,n(X~l)K1,n). \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}.

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

X~l+1={InZ~l+1(Z~l+1Z~l+1)1Z~l+1}Z~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}}.

ここで、

Z~l+1Z~l+1=i=1n(Xl+1,iXˉl+11X1iX2i...Xli1Xˉ1Xˉ2...Xˉl)2=nXˉl+11Xˉ1Xˉ2...XˉlXˉl+11Xˉ1Xˉ2...Xˉl \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}
(Z~l+1Z~l+1ˉ)k=i=1n(Xl+1,iXˉl+11X1iX2i...Xli1Xˉ1Xˉ2...Xˉl)(Xk,iXˉk1X1iX2i...Xli1Xˉ1Xˉ2...Xˉl)=nXˉl+1Xˉk1Xˉ1Xˉ2...Xˉl \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}

であることから、

(Z~l+1(Z~l+1Z~l+1)1Z~l+1Z~l+1ˉ)k,i=(Xl+1,iXˉl+11X1iX2i...Xli1Xˉ1Xˉ2...Xˉl)Xˉk1Xˉ1Xˉ2...XˉlXˉl+1 \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}

となり、したがって、

(X~l+1)k,i=(Z~l+1ˉ)k,i(Z~l+1(Z~l+1Z~l+1)1Z~l+1Z~l+1ˉ)k,i=Xk,iXˉk1X1iX2i...XliXl+1,i1Xˉ1Xˉ2...XˉlXˉl+1 \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 番目の係数を求める

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

β^K1=(X~K2X~K2)1X~K2Y \hat{\beta}_{K-1} = (\tilde{\boldsymbol{X}}_{K-2}^\top \tilde{\boldsymbol{X}}_{K-2})^{-1} \tilde{\boldsymbol{X}}_{K-2}^\top \boldsymbol{Y}

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

(X~K2)i=XK1,iXˉK11X1iX2i...XK2,i1Xˉ1Xˉ2...XˉK2. (\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}}.

これを計算して、

β^K1=YˉK1YˉK \hat{\beta}_{K-1} = \bar{Y}_{K-1} - \bar{Y}_K

が得られる。

計算過程
X~K2X~K2=nXˉK11Xˉ1Xˉ2...XˉK2XˉK11Xˉ1Xˉ2...XˉK2 \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}}
X~K2Y=i=1n(XK1,iXˉK11X1iX2i...XK2,i1Xˉ1Xˉ2...XˉK2)Yi=i=1nXK1,iYiXˉK1i=1nYii=1nX1iYii=1nX2,iYi...i=1nXK2,iYi1Xˉ1Xˉ2...XˉK2=nYˉK1XˉK1nXˉK1YˉXˉ1Yˉ1Xˉ2Yˉ2...XˉK2YˉK21Xˉ1Xˉ2...XˉK2...() \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}

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

i=1nXkiYi=n(1ni=1nXki)(1i=1nXkii=1nXkiYi)=nXˉkYˉk. \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}

以上から、

β^K1=(X~K2X~K2)1X~K2Y=1Xˉ1Xˉ2...XˉK21Xˉ1Xˉ2...XˉK1YˉK1YˉXˉ1Yˉ1Xˉ2Yˉ2...XˉK2YˉK21Xˉ1Xˉ2...XˉK1=1Xˉ1Xˉ2...XˉK21Xˉ1Xˉ2...XˉK1YˉK1XˉK1YˉK11Xˉ1Xˉ2...XˉK1+XˉK1YˉK11Xˉ1Xˉ2...XˉK1YˉXˉ1Yˉ1Xˉ2Yˉ2...XˉK2YˉK21Xˉ1Xˉ2...XˉK1=YˉK1YˉXˉ1Yˉ1Xˉ2Yˉ2...XˉK2YˉK2XˉK1YˉK11Xˉ1Xˉ2...XˉK1=YˉK1YˉK \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}

が示された。

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

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

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

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

β^k=YˉkYˉK \hat{\beta}_k = \bar{Y}_k - \bar{Y}_K

であることが示される。

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

β^0=Yˉβ^1Xˉ1β^1Xˉ2...β^K1XˉK1=k=1KXˉkYˉkk=1K1(YˉkYˉK)XˉkYˉ=k=1KXˉkYˉk=XˉKYˉK+YˉKk=1K1Xˉk=XˉKYˉK+YˉK(1XˉKYˉK)k=1KXˉk=1=YˉK \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=3K=3 であり One-Hotエンコーディングした後のダミー変数列「東京」「北海道」「愛媛」がそれぞれ X1,X2,X3X_1, X_2, X_3 に対応する。 ↩︎

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

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

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

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

Discussion

ログインするとコメントできます