縮小ランクリッジ回帰とは?〜理論編〜

最終更新日: 2020年4月21日

簡単に!

縮小ランク回帰」と「リッジ回帰」を組み合わせて、説明変数の共線性目的変数の低次元構造に同時に適合するようにした、線形モデル回帰の手法。

ちなみに:Pythonによる実装はこちら

Step1. Reduced Rank Regression(縮小ランク回帰)とは?

1.一般化線形モデル

問題設定として、説明変数 XN×PX_{N \times P}により、目的変数 YN×QY_{N \times Q}を予測する(回帰する)ことを考えます。

ここでよく用いられるのが、次の式で表される一般化線形モデルです。

Y=XB+EY=XB+E

ここで、BP×QB_{P \times Q}は係数行列であり、EN×QE_{N \times Q}はランダムな誤差行列を表しています。

この最小二乗法(OLS)による解は以下のようになります。

B^OLS=(XTX)1XTY\hat{B}_{OLS}=(X^TX)^{-1}X^TY

今回は、一般化線形モデルを最小二乗法で解くときの2つの問題点に着目することにします。

  • 目的変数 YN×QY_{N \times Q}の真の次元が QQ より小さいときに、性能が落ちる。(YYのランク落ち
  • 説明変数 XN×PX_{N \times P}の行同士の相関が高いときに、性能が落ちる。(XXの共線性

2.次元削減

このように、高次元のデータの中に潜在的な低次元の構造がある場合には、次元削減が有効です。有名なのでいえば、**主成分分析(PCA)**が挙げられるでしょう。
主成分分析によって次元削減した後に回帰をするモデルを、**主成分回帰(PCR)**と呼んだりします。

参考:意味がわかる主成分分析主成分分析を Python で理解する

主成分回帰のように、説明変数の中から低次元の因子(Factor)を選んで目的変数を回帰するようなモデルは、**線形因子モデル(Linear Factor Model)**と呼ばれています。例えば、独立成分回帰、偏最小二乗回帰、正準相関分析などがあります。

これとは別の次元削減の手法として、**縮小ランク回帰(Reduced Rank Regression)**があります。縮小ランク回帰では、係数行列 BB のランクを制限しながら誤差関数を最小化することで、潜在的な低次元の構造を仮定しつつ回帰することができます。

参考:縮小ランク回帰


3.正則化

2つめの問題点である説明変数 XX の共線性に対しては、**正則化(regularization)**がしばしば行われます。有名な手法に、**リッジ回帰(Ridge Regression)LASSO回帰(LASSO Regression)**があります。
LASSO回帰は、主にスパース性の推定に用いられ、特徴量選択の手法としても用いられています。リッジ回帰は、説明変数の共線性による不良設定問題に対応するために広く用いられています。

Step2. Reduced Rank Ridge Regression への拡張

1.2つの制約を誤差関数に導入する!

以上を踏まえて、2つの問題に対処するために、次の2つの制約を二乗誤差に追加することにします。

  1. リッジ回帰の正則化項
  2. B^\hat{B} のランク制約

したがって、次のような誤差の最小化を行うことで、推定値 B^(λ,r)\hat{B}(\lambda,r) を得ることができます。

argmin{B:rank(B)r}YXBF2+λBF2\underset{ \lbrace B:rank(B) \leq r \rbrace}{argmin} \Vert Y-XB \Vert_F^2 + \lambda \Vert B \Vert_F^2

ただし、rmin{P,Q}r \leq \min \lbrace P, Q \rbrace とし、F2\Vert \cdot \Vert_F^2 はフロベニウスノルム(行列ノルム)とします。

これを縮小ランク回帰の枠組みで考えるために、

X(N+P)×P=(XλI), Y(N+P)×Q=(Y0)X_{(N+P)\times P}^* = \left( \begin{array}{c} X \\ \sqrt{\lambda}I \end{array}\right), \ Y_{(N+P)\times Q}^* = \left( \begin{array}{c} Y \\ 0 \end{array}\right)

とすることで、誤差関数を次のように表現します。

argmin{B:rank(B)r}YXBF2\underset{ \lbrace B:rank(B) \leq r \rbrace}{argmin} \Vert Y^*-X^*B \Vert_F^2

また、リッジ回帰の推定値 YR^=XBR^ \hat{Y_R}^* = X^* \hat{B_R} を用いて、正規直交性から、

YXBF2=YY^RF2+Y^RXBF2\Vert Y^*-X^*B \Vert_F^2 = \Vert Y^*-\hat{Y}_R^* \Vert_F^2 + \Vert \hat{Y}_R^*-X^*B \Vert_F^2

と変形できます。第一項は BB に依存しないので無視し、誤差関数は次のように表現できます。

argmin{B:rank(B)r}Y^RXBF2\underset{ \lbrace B:rank(B) \leq r \rbrace}{argmin} \Vert \hat{Y}_R^*-X^*B \Vert_F^2

これを最小化することを目指します。


2.線形問題による解を導出する

ここで、次のように特異値分解が与えられると仮定します。

Y^R=i=1τσiuiviT\hat{Y}_R^* = \sum_{i=1}^{\tau} \sigma_i u_i v_i^T

ここで、σi\sigma_i は特異値、ui,viu_i, v_i は左右の特異値ベクトルであり、τ\tauY^R\hat{Y}_R^* のランク(正則化により QQ となっている)となります。

これはフロベニウスノルムにおけるエッカート・ヤングの定理参考)として考えることができ、最適なランク rr による近似は次のようになります。

Y^r=i=1rσiuiviT\hat{Y}_r^* = \sum_{i=1}^{r} \sigma_i u_i v_i^T

これを用いて、最適な係数行列 B^(λ,r)\hat{B}(\lambda,r) を表現しましょう。

Y^r=i=1rσiuiviT=(i=1τσiuiviT)(j=1rujvjT)=Y^rPr=XB^RPr=XB^(λ,r)\hat{Y}_r^* = \sum_{i=1}^{r} \sigma_i u_i v_i^T = \left(\sum_{i=1}^{\tau} \sigma_i u_i v_i^T\right) \left(\sum_{j=1}^{r} u_j v_j^T\right) = \hat{Y}_r^* P_r = X^* \hat{B}_R^* P_r = X^* \hat{B}(\lambda,r)

とすることで、解として B^(λ,r)=B^RPr\hat{B}(\lambda,r) = \hat{B}_R^* P_r が得られます。

さらに、リッジ回帰の最小二乗解を用いて以下のように表現することができます。

B^(λ,r)=B^RPr=(XTX+λI)1XTYPrY^(λ,r)=XB^(λ,r)=X(XTX+λI)1XTYPr=Y^λPr\hat{B}(\lambda,r) = \hat{B}_R^* P_r = (X^T X + \lambda I)^{-1}X^T Y P_r \\ \hat{Y}(\lambda,r) = X \hat{B}(\lambda,r) = X (X^T X + \lambda I)^{-1}X^T Y P_r = \hat{Y}_{\lambda} P_r

ここで、Y^λ\hat{Y}_{\lambda}λ\lambda におけるリッジ回帰の推定解となり、「リッジ回帰の推定解をrr次元の空間に射影することで最適解を得ている」と解釈することができます。そのため、r=Qr=Qでは、単純なリッジ回帰の解が最適解となることになります。


3.パラメータのチューニング

パラメータ λ,r\lambda,r のチューニングが、縮小ランクリッジ回帰の性能を左右することになります。参照論文では、K-fold 交差検証 を行って、最適なパラメータを決定しています。

参考リンク