PLS-regression: a basic tool of chemometrics
May 21, 2022重回帰分析は、説明変数の行列がフルランクでないとき、多重共線性により出力が不安定になる。 そのため、説明変数の数を減らし、説明変数間に相関関係がないようにする必要がある。 PLS(部分的最小二乗法)は、入力変数の線形結合で表わせる潜在変数を求め、潜在変数の線形結合で目的変数を表す。 説明変数の数より少ない数の潜在変数を求めることで、説明変数間の相関関係をとりのぞく。
説明変数を\(\boldsymbol{\rm x}_k(k=1, \dots K)\), 目的変数を\(\boldsymbol{\rm y}_m( =1,2, \dots M)\)として、求める潜在変数を\(\boldsymbol{\rm t}_a (a=1,2, \dots , A)\)とおく。 以下では\(\boldsymbol{\rm X}\)は中心化と標準化されているものとする。
潜在変数の要件より、\(A\)は\(K\)より小さく、潜在変数\(\boldsymbol{\rm t}\)は互いに直交である。 潜在変数は、説明変数の一部の\(A\)次元で $$ t_{ia} = \sum_kW^*_{ka}X_{ik}; (\boldsymbol{\rm T}=\boldsymbol{\rm XW}^*) $$ と表せる。逆に、潜在変数の線形結合で説明変数を近似するのであれば、\(e_{ik}\)を残差すると $$ X_{ik}=\sum_at_{ia}p_{ak} + e_{ik}; (\boldsymbol{\rm X}=\boldsymbol{\rm TP}^\top+\boldsymbol{\rm E}) $$ となる。 \(f_{im}\)を残差とすると目的変数も潜在変数の線形結合により $$ y_{im} = \sum_ac_{ma}t_{ia} + f_{im}; (\boldsymbol{\rm Y}=\boldsymbol{\rm TC}^\top+\boldsymbol{\rm F}) $$ になる。以上をあわせると、 $$ y_{im}=\sum_ac_{ma}\sum_kw^*_{ka}x_{ik} + f_{im} = \sum_kb_{mk}x_{ik}+f_{im} $$ $$ \boldsymbol{\rm Y} = \boldsymbol{\rm XW}^*\boldsymbol{\rm C}^\top + \boldsymbol{\rm F} = \boldsymbol{\rm XB} + \boldsymbol{\rm F} $$ であり、PLSの回帰係数を $$ b_{mk}=\sum_ac_{ma}w^*_{ka}; (\boldsymbol{\rm B}=\boldsymbol{\rm W}^* \boldsymbol{\rm C}^\top) $$ とかける。
PLSの学習アルゴリズムに、NIPALS(非線形反復部分最小二乗法)がある。 これはまず、\(\boldsymbol{\rm u}\)を\(\boldsymbol{\rm Y}\)のある列ベクトルとする。 次に $$ \boldsymbol{\rm w} = \boldsymbol{\rm X}^\top \boldsymbol{\rm u} / \boldsymbol{\rm u}^\top \boldsymbol{\rm u} $$ その後、\(\mid\mid \boldsymbol{\rm w}\mid \mid = 1.0\)としてもよい。
これをもとに\(\boldsymbol{\rm t}=\boldsymbol{\rm Xw}\)として潜在変数\(\boldsymbol{\rm t}\)を計算し、さらに、\(\boldsymbol{\rm c}=\boldsymbol{\rm Y}^\top \boldsymbol{\rm t} / \boldsymbol{\rm t}^\top \boldsymbol{\rm t}\)とする。
最後に、\(\boldsymbol{\rm u}\)を更新する。 $$ \boldsymbol{\rm u}=\boldsymbol{\rm Yc}/\boldsymbol{\rm c}^\top\boldsymbol{\rm c} $$
\(\mid \mid\boldsymbol{\rm t_{\text{old}}} - \boldsymbol{\rm t_{\text{new}}}\mid\mid / \mid\mid \boldsymbol{\rm t_{\text{new}}}\mid\mid < \epsilon\)が収束していなければ、\(\boldsymbol{\rm w}\)を求めるところに戻る。
以下の式で現在の成分を\(\boldsymbol{\rm X}, \boldsymbol{\rm Y}\)からデフレーションし、はじめに戻る。 $$ \begin{align} \boldsymbol{\rm p} &= \boldsymbol{\rm X}^\top \boldsymbol{\rm t}/(\boldsymbol{\rm t}^\top \boldsymbol{\rm t}) \\ \boldsymbol{\rm X} &= \boldsymbol{\rm X} - \boldsymbol{\rm t} \boldsymbol{\rm p}^\top \\ \boldsymbol{\rm Y} &= \boldsymbol{\rm Y} - \boldsymbol{\rm t}\boldsymbol{\rm c}^\top \end{align} $$
論文のリンク