アルゴリズム(部分最小二乗法)

内容

  1. 1 部分最小二乗法
    1. 1.1 Woldの反復法
    2. 1.2 SVD
  2. 2 交差確認
  3. 3 目的変数予測
  4. 4


部分最小二乗法は多くの修正された説明変数と既知の目的変数を使用して不明な目的変数を予測するモデルを作成するために使用します。このような場合、複数の線形フィットは、通常、オーバーフィットを起こすので適切ではありません。部分最小二乗法はしばしば、混合物のスペクトルからどのような内容物が含まれているのか推測する際に使用されます。

部分最小二乗法は因子を説明変数の線形結合によって抽出し、抽出された因子空間に対して説明変数と目的変数を投影します。

欠損値がある観測データは分析から除外、つまりリストワイズ形式で除外されます。

仮に、観測データ数、説明変数、目的変数を順にnmr とします。説明変数はサイズが \(n \times m\)である行列Xで表わされ、目的変数は同じようにサイズが\(n \times r\)である行列Yで表わします。行列XYのそれぞれの列から平均値を引き、\(X_0\)\(Y_0\)のようにします。

行列内の各列、\(X_0\)は標準偏差によって割られます。

部分最小二乗法

Originは2種類の手法、Woldの反復法特異値分解(SVD)で抽出した因子を計算します。

Woldの反復法

初期ベクトルとしてuを使用します。r=1で初期化したu=Yの場合、他の時はuはランダムな値のベクトルになります。

\(w=X_0^Tu\)となり、wを \(w=w/|| w ||\)で正規化します。
\(t=X_0w\)となり、tを \(t=t/|| t ||\)で正規化します。
\(q=Y_0^Tt\)となり、qを\(q=q/|| q ||\)で正規化します。
\[u=Y_0q\]

wが収束すると更新され、

\(t=X_0w\)となり、tを \(t=t/|| t ||\)で正規化します。
\[p=X_0^Tt\]
\[q=Y_0^Tt\]
\[u=Y_0q\]
ここで、wtupq はそれぞれ x 重み、x スコア、yスコア、x ローディング、yローディングを表します。
\[\hat{X}_0=X_0-tp^T\]
\[\hat{Y}_0=Y_0-tq^T\]

そしてk因子は作成できます。k因子についてのx 重み、x スコア、yスコア、x ローディング、yローディングはそれぞれ行列WTUPQで表わせます。

Originでは各因子のx スコア、yスコア、x ローディング、yローディングの符号は、各因子のx重みの合計を行う事で正規化され、正の数にします。

SVD

wは\(X_0^TY_0\)の正規化した第一左辺特異ベクトルで、

\(t=X_0w\)となり、tを \(t=t/|| t ||\)で正規化します。
\[p=X_0^Tt\]
\[q=Y_0^Tt\]
\[u=Y_0q\]

そして、k因子を抽出します。

交差確認

OriginはLeave-one-out手法で最適な因子数を検出します。この手法は1つの観測を省き、他の観測値だけでモデルを作成してその省いた観測値に対して反応を推測します。

PRESSは予測した残差の二乗和です。これは次式のように計算されます。

\[\text{PRESS} = \sum_{i=1}^n \sum_{j=1}^r (Y_{ij} - \hat{Y}_{ij})^2\]
ここで、\(\hat{Y}_{ij}\) はLeave-one-out 手法で予測されたY値です。

Note:もし変数がスケール化されている場合、PRESSはそのスケール化した結果になります。

因子の最大数がkの場合、PRESSは 0, 1, ... k因子分まで計算します。0因子の場合、

\[\text{PRESS} = \sum_{i=1}^n \sum_{j=1}^r (Y_{ij} - \bar{Y}_{j})^2\]
ここで、\(\bar{Y}_{j}\)j番目のY値に関する平均値です。

PRESSのルート平均はPRESSの平方根を取った平均値です。定義は、次のようになります。

\[\text{Root Mean PRESS} = \sqrt{ \frac{\text{PRESS}}{ (n-1)r } }\]

Originは最小PRESSのルート平均を使用して交差確認内で最適な因子数を探します。

反応予測

モデルが作成できると、フィットしたモデルの係数によって反応の予測が可能になります。係数は、重みとローディングの行列から計算されます。

\[ C = W(P^TW)^{-1}Q^T\]

そして、予測された反応は次のように計算されます。

\[\hat{Y}_0 = C X_{0}\]

ここで、変数は中心化されています。変数がスケール化もされている場合、反応もスケール化されて返されます。

i番目のX変数に因子寄与します。

\[\frac{ \sum_{j=1}^{k} P_{lj} }{ \sum_{i=1}^{n} {X_0}_{il} }\]

X変数の因子寄与は次の通りです。

\[\frac{ \sum_{l=1}^{m} \sum_{j=1}^{k} P_{lj} }{ \sum_{l=1}^{m} \sum_{i=1}^{n} {X_0}_{il} }\]

i番目のY変数に因子寄与します。

\[\frac{ \sum_{j=1}^{k} Q_{lj} }{ \sum_{i=1}^{n} {Y_0}_{il} }\]

Y変数の因子寄与は次の通りです。

\[\frac{ \sum_{l=1}^{r} \sum_{j=1}^{k} Q_{lj} }{ \sum_{l=1}^{r} \sum_{i=1}^{n} {Y_0}_{il} }\]

VIP(投影に影響を与える変数)は、各説明変数が目的変数では平均分散を有している理由を説明します。

Xの残差は、

\[X_r = X_0 - TP^T\]

Yの残差は、

\[Y_r = Y_0 - TQ^T\]

変数がスケール化されている場合、残差もスケール化されて返されます。

i番目の観測に対するXモデルまでの距離

\[\text{Dist}_x = \sqrt{ \sum_{j=1}^m X_{rij}^2 }\]

i番目の観測に対するYモデルまでの距離

\[\text{Dist}_y = \sqrt{ \sum_{j=1}^r Y_{rij}^2 }\]

1番目の観測に関するT二乗値

\[T^2=\sum_{j=1}^k \frac{T_{ij}}{\text{Var}_j}\]

ここで、\(\text{Var}_j\)はj番目の因子に対するXスコアの分散を表します。

\[n(n-1)^2\text{betainv}(0.95,k/2.0,(n-k-1)/2.0)\]
\[\sqrt{(n-1)^2/n \cdot \text{betainv}(0.95,1,(n-3)/2.0) \cdot \text{Var}_j}\]

ここで、\(\text{Var}_j\)はj番目の因子に対するXスコアまたはYスコアの分散を表します。