部分的最小二乗回帰 Partial Least Squares Regression PLS 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌
部分的最小二乗回帰 (PLS) とは? 部分的最小二乗回帰 (Partial Least Squares Regression, PLS) 線形の回帰分析手法の1つ 説明変数(記述子)の数がサンプルの数より多くても計算可能 回帰式を作るときにノイズの影響を受けにくい 説明変数の間の相関が高くても対応可能 主成分分析をしたあとの主成分と目的変数との間で最小二乗法を 行うのは主成分回帰 (PCR) であり、PLSとは異なるので注意 PLS回帰とかPLSRとも呼ばれているが、ここでは PLS
どうして PLS を使うの?~多重共線性~ 多重共線性の問題 説明変数の間に強い相関がある場合、回帰係数が不安定になる わずかなデータの変化(追加、削除)で回帰係数が大きく 変わってしまう 赤い線を中心に回帰平面が回りやすい → 回帰係数が変わりやすい y x1 x2
多重共線性への対策 事前に共線性のある変数(記述子)を削除 → 変数選択 必要な変数(記述子)を取り除いてしまう危険もある Xを無相関化 (相関係数=0 に) してから重回帰分析 Xの情報の一部のみを使用して重回帰分析 主成分分析 (Principal Component Analysis, PCA) + 重回帰分析 主成分回帰 (Principal Component Regression, PCR) 重回帰分析については こちら、PCAについては こちら
主成分回帰 (PCR) 主成分回帰 (Principal Component Regression, PCR) 説明変数のデータ X のみを用いて主成分分析を行い 主成分 T を得る T の成分(変数)の間は無相関 T と目的変数 y との間で最小二乗法による重回帰分析 説明変数(記述子) 目的変数(物性・活性) X 最小二乗法 y 通常の重回帰分析 サンプル 主成分 成分抽出 (PCA) X T 最小二乗法 y PCR
PCR と PLS との違い PCA 主成分 t の分散 ( tTt ) が最大になるように主成分を抽出 PLS 主成分 t と目的変数 y との共分散 ( tTy ) が最大になるように 主成分を抽出 共分散 大きい 共分散 小さい
PLS の概要 PCA 主成分 t の分散 ( tTt ) が最大になるように主成分を抽出 PLS 主成分 t と目的変数 y との共分散 ( tTy ) が最大になるように 主成分を抽出 説明変数(記述子) 主成分 X 成分抽出 T 最小二乗法 y サンプル yの情報
PLSの基本式 (yは1変数) X、y はオートスケーリング後 (平均0、標準偏差1) オートスケーリングについては こちら A : PLS の成分数 ta : a 番目の主成分 pa : a 番目のローディング E : X の残差 qa : a 番目の係数 f : y の残差 行列の表し方やローディングについては こちら
1成分のPLSモデル PLSモデル式 t1 は X の線形結合で表わされると仮定 wa : a番目の重みベクトル 大きさ(ノルム)は1とする
t1の計算 yとの共分散の最大化 y との関連性が大きい t1 を抽出したい y と t1 の共分散 yTt1 を最大化するよう t1 を求める オートスケーリングしているため X と y は平均0 ただし、 (制約条件)
t1の計算 Lagrangeの未定乗数法 制約条件がある中での最大化 Lagrangeの未定乗数法
t1の計算 Gの最大化 G は w1 の関数 G が最大値のとき、G を w1 の要素ごとに偏微分した値は 0 n : データ数 d : 説明変数の数 k : 変数番号
t1の計算 式変形 より、 w1,k を両辺に掛けると、 k について 1 から d まで和を取る (制約条件を使ってwが消える) よって、
t1の計算 w1の計算 より、 μは yTt1 の値、w1の 大きさ(ノルム)は1より、 w1 が得られた後、t1 も計算
p1とq1の計算 p1 は X の残差 E の要素の二乗和が最小になるように求める (最小二乗法) q1 は y の残差 f の要素の二乗和が最小になるように求める (最小二乗法)
2成分のPLSモデル PLSモデル式 X2 : X の中で1成分のPLSモデルでは説明できない部分 y2 : y の中で1成分のPLSモデルでは説明できない部分 t2 は X2 の線形結合 ただし、w2 の大きさ(ノルム)は1
w2、t2、p2、q2の計算 y2 との関連性が大きい t2 を抽出したい y2 と t2 の共分散 y2Tt2 を最大化するよう t2 を計算する 1成分の時と同様にして、 3成分以降も同様に計算する
何成分まで用いるか? 多くの成分を用いるとモデルの自由度が大きく(モデルが複雑に)なり、 過学習の恐れがある 多くの成分を用いるとモデルの自由度が大きく(モデルが複雑に)なり、 過学習の恐れがある 過学習: モデル構築用データには回帰式(回帰モデル)が よく当てはまるが、新しいデータに対する予測誤差が 大きくなってしまうこと 予測性の高いモデルが得られる適切な成分数を選択 クロスバリデーション
クロスバリデーション 例) 3-fold クロスバリデーション 変数 サンプル 比較 X y X1 y1 ② y1p y1 X2 y2 ③ ① y3p y3 ① ② ③ X1 y1 X2 y2 X3 y3 X2 y2 X3 y3 X1 y1 X3 モデル1 y3p X1 モデル2 y1p X2 モデル3 y2p
r2CV (予測的説明分散) クロスバリデーションによる予測値を用いた説明分散 r2 Leave-one-out クロスバリデーション N-fold クロスバリデーション など モデルの予測性を表す指標 1に近いほど良い y(i):i 番目のサンプルにおける 目的変数の値 yCV(i):i 番目のサンプルにおける クロスバリデーションによる 目的変数の推定値 yA:目的変数の平均値 n:サンプル数
成分数の決め方 例) r2CV値を指標にして判断 r2CV値が最大値を取る成分数 r2CV値が最初の極大値を取る成分数 モデル構築用データに 対する性能は高くなって いるが、予測性能は低下 → 過学習が起きている r2(青) r2CV(赤) 成分数
Root Mean Squared Error (RMSE) : 誤差の指標 RMSEC (RMSE of Calibration) yの計算値 RMSECV (RMSE with Cross-Validation) クロスバリデーションによるyの予測値 データが同じであれば、 r2, r2CV が大きい ⇔ RMSEC, RMSECV が小さい