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