例: 主成分分析 1
Nipals 関数
1. 各列が 1 つの変数を表すデータセットを定義します。
2. データセットをプロットします。
このグラフでは、データの傾向を明らかにするために、X-Y 平面と X-Z 平面を重ね合わせています。データは実際にはほぼ 1 つの平面上の楕円形の点群です。3 つの変数が線形関係を示し、完全な平面からの偏差はノイズによるものです。
4. mean 関数を使用してデータの平均を求め、各変数から差し引いて、データの中心値を求めます。
5. 中心のデータをプロットします。
| • データが原点を中心として移動しました。これは Nipals 関数によって実行される処理の 1 つです。 • PCA の多くのアプリケーションでは、変数によって単位が異なる場合などには、各変数の重みが等しくなるようにデータを尺度化する必要もあります。一般的には各変数 (データの各列) を単位分散によって尺度化しますが、このデータには適さないので、ここでは尺度化を行いません。 |
6. Nipals 関数を使用して、新しい変数空間を作成します。3 つの主成分を使用します (最初は変数が 3 つしかなかったので 3 つが最大です)。
負荷とスコア
1. loadings 関数を呼び出して、NIPALS_Result の 2 つ目の行列に格納されているデータを取得します。
LOADINGS の各列は負荷ベクトルです。
2. scores 関数を呼び出して、NIPALS_Result の 1 つ目の行列に格納されているデータを取得します。
スコアは、元のスペクトルを再構築するときに負荷ベクトルを加算する比率を示します。これらを輝度と見なします。Data = LOADINGS * SCOREST.
3. 行列 SCORES に格納されているデータをプロットします。
データが回転しているので、分散の最大値が 1 つ目の変数で説明できます。これによって、グラフで楕円形の点群の長軸が X 軸と平行になっています。Z 軸に平行な 3 つ目の変数の値は非常に小さくなっています。ほとんどの場合、この変数は破棄できます。以上でデータの圧縮が完了しました。
PCA 分散と固有値
最初の 2 つの成分が系の分散の 99.9% を占めます。