Aritalab:Lecture/Math/PLS
From Metabolomics.JP
< Aritalab:Lecture | Math(Difference between revisions)
(Created page with "==主成分回帰== 回帰分析は説明変数間に相関が高いものがあると機能しませんでした(共線性の問題)。 そこで、説明変量に対し...") |
(r) |
||
Line 7: | Line 7: | ||
これまで、目的変量がひとつの場合だけを扱ってきましたが、目的変量側も数が多い場合に使うのがPLSです。 | これまで、目的変量がひとつの場合だけを扱ってきましたが、目的変量側も数が多い場合に使うのがPLSです。 | ||
− | + | 主成分回帰は説明変量側のみで主成分分析を施していましたが、同様の変量圧縮を目的変量側でもおこないます。以下では、目的変量と説明変量の行列が求めた主成分から構成されると仮定します。 | |
===NIPALSアルゴリズム=== | ===NIPALSアルゴリズム=== | ||
+ | {| | ||
+ | |width=70%| | ||
# 最初は目的変量 Y の中で最大の分散を持つ列を選び u とする | # 最初は目的変量 Y の中で最大の分散を持つ列を選び u とする | ||
# u と X の各列との相関を計算、ローディング p<sup>T</sup> を求める | # u と X の各列との相関を計算、ローディング p<sup>T</sup> を求める | ||
# p<sup>T</sup> と各サンプル (X の各行) との相関を計算、スコア t を求める | # p<sup>T</sup> と各サンプル (X の各行) との相関を計算、スコア t を求める | ||
# t と Y の各列との相関を計算、ローディング q<sup>T</sup> を求める | # t と Y の各列との相関を計算、ローディング q<sup>T</sup> を求める | ||
+ | # q<sup>T</sup> と各目的変量 (Y の各行)との相関を計算、スコア u' を求める | ||
+ | # 最初の u と u' を比較して収束するか判定。収束しないなら 2 に戻る | ||
+ | # 収束した u と X の各列との相関を計算、第一潜在変数 (latent variable; LV) r<sup>T</sup> を求める | ||
+ | # X と Y について以下のように残差を計算する | ||
+ | :: X' = X - t r<sup>T</sup> | ||
+ | :: Y' = Y - u q<sup>T</sup> | ||
+ | # X と Y をそれぞれ残差で置き換え、ステップを繰り返す | ||
+ | | | ||
+ | [[Image:Lecture_Math_PLS_NIPALS.png|right|200px]] | ||
+ | |} | ||
+ | |||
+ | アルゴリズムのポイントは、Y側とX側の両方に対称に主成分回帰をおこなっている点です。 |
Revision as of 15:20, 4 June 2013
主成分回帰
回帰分析は説明変数間に相関が高いものがあると機能しませんでした(共線性の問題)。 そこで、説明変量に対して最初に主成分分析を施し、そのスコアを利用して目的変量との重回帰分析をおこなう手法を主成分回帰 (principal component regression) と呼びます。
PLS: Partial Least Squares
これまで、目的変量がひとつの場合だけを扱ってきましたが、目的変量側も数が多い場合に使うのがPLSです。 主成分回帰は説明変量側のみで主成分分析を施していましたが、同様の変量圧縮を目的変量側でもおこないます。以下では、目的変量と説明変量の行列が求めた主成分から構成されると仮定します。
NIPALSアルゴリズム
|
アルゴリズムのポイントは、Y側とX側の両方に対称に主成分回帰をおこなっている点です。