関数 > データ解析 > 主成分分析 > 例: 主成分分析 2
例: 主成分分析 2
Nipals関数とNipals2関数を使用して、5 種類の活性成分を含む医薬錠剤の近赤外 (NIR) スペクトルなどの複雑なデータを分析します (データ提供: Bruker Optics, Inc. 社)。実際の活性成分が不明であっても、スペクトルに基づいて各活性成分を区別するモデルを作成できます。このモデルは錠剤を増産する場合の品質管理に利用できます。
1. 次のデータセットを定義します。
* 
このデータセットは臨床試験の二重盲検試験を表します。
クリックしてこの式をコピー
1 列目には cm-1 単位の波数 (1/波長) が格納されています。以降の 25 列には、各活性成分の 5 つの逐次スペクトルが格納されています。
2. submatrix関数、cols関数、およびrows関数を使用して、25 のスペクトルを抽出します。
クリックしてこの式をコピー
3. max関数とmatch関数を使用して、最大値とこれを含むスペクトルを求めます。データ値が非常に小さいので、TOL にはさらに小さい値を設定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
最大値はデータ行列の 210 行、17 列にあります。
4. 各有効成分の最初の 2 つのスペクトル (計 10 個のデータセット) をプロットします。データセットのペアは Data 行列の [1,2][6,7][11,12][16,17][21,22] 列です。
横軸のスケールを適切なものにするため、波数を 1000 で割ります。スペクトル値が小さいので、同様に 1000 を掛けます。
水平マーカーを使用して、最大スペクトル値を示します。
クリックしてこの式をコピー
慣習により、波数は降順でプロットされています。波数を降順で示すため、Data<0> の符号が逆転されています。
どの活性成分も基本形状は同じであり、吸収度の値はどれも似かよっているので、スペクトルのいずれの部分からも活性成分を容易に区別することはできません。
データのほとんどの部分は冗長です。各スペクトルには 236 個の点、つまり 236 個の測定変数 (特定の波長の光の吸収度) がありますが、これらの点の分散には明らかな相関関係があります。
5. 行列 Data を 2 つのデータセットに分割し、各錠剤の波数 (列 0) とスペクトル (部分行列 S) を格納します。一般的な慣習に従い、各列が 1 つの独立変数に対応するように、各錠剤のスペクトルを転置します。
クリックしてこの式をコピー
クリックしてこの式をコピー
6. Nipals関数をデータに適用する前に、主成分の数と最大反復回数を定義します。Nipals 関数は、各行から平均スペクトルを減算することによって、データを中心に移動します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
7. 再構築するスペクトルを選択します。
クリックしてこの式をコピー
8. Nipals 関数の出力からスコアと負荷を抽出します。
クリックしてこの式をコピー
クリックしてこの式をコピー
9. mean 関数を使用して、平均スペクトルを計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
10. 負荷ベクトルの行列をスコアの行列に掛け合わせて平均スペクトルを加算することで、元のスペクトルの推定値を求めます。
クリックしてこの式をコピー
11. 元のスペクトルと再構築したをプロットします。適切な値が表示されるように、横軸と縦軸のスケールを設定します。
クリックしてこの式をコピー
クリックしてこの式をコピー
主成分分析の主成分を 2 つだけ使用してすべてのスペクトルが適切に表されています。
12. スコアを 2 つの行列に配列し直します。行列の各列は錠剤の 5 つの活性成分それぞれのスコアを表しています。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
13. 1 つ目の因子のスコアを 2 つ目の因子のスコアに対してプロットします。活性成分ごとに色分けして表示しています。
クリックしてこの式をコピー
いくつかのグループが明らかに読み取れますが、各活性成分を区別することはまだ困難です。プロットに 3 つ目のスコアを付加すると効果がある可能性があります。
14. Nipals2 関数を使用して、2 つの主成分を使用して作成したモデルに 4 つの主成分を追加します。
クリックしてこの式をコピー
クリックしてこの式をコピー
NIPALS2 の出力行列の形式は NIPALS と同じですが、追加の主成分に対応する追加の列と行があります。スコアと負荷の数が 6 つに増えました。
15. NIPALS2 行列から負荷とスコアを抽出し、選択したスペクトルの新しいモデルを作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
16. 選択したスペクトルについて 2 つのモデルをプロットして比較します。適切な値が表示されるように、横軸と縦軸のスケールを設定します。
クリックしてこの式をコピー
17. NIPALS2 から累積分散を抽出します。
クリックしてこの式をコピー
18. 累積分散を主成分の番号に対してプロットします。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
最初の 2 つの主成分 (PC) が分散の 99% を占めていますが、活性成分によってデータを分類する際の鍵となるのは 3 つ目の PC です。主成分分析では、最も関連性のある因子ではなく、最も支配的な因子にデータが圧縮されます。
これは役に立ちましたか?