函數 > 數據分析 > 主元件分析 > 範例:主元件分析 2
範例:主元件分析 2
使用 NipalsNipals2 函數分析複數數據,例如藥片的近紅外線 (NIR) 頻譜與五種不同的實際原料投藥量 (Bruker Optics, Inc. 提供數據並授權使用)。即使不知道實際的投藥量,根據頻譜建立的模型仍可區別每次的投藥量。日後生產藥片時,此模型可用於品管目的。
1. 定義下列數據集:
* 
此數據集說明臨床試驗的雙盲研究。
按一下以複製此運算式
第一欄為以 cm-1 表示的波數 (1/波長)。每個投藥量有 5 個連續頻譜,構成其餘 25 欄。
2. 使用 submatrixcolsrows 函數萃取 25 頻譜。
按一下以複製此運算式
3. 使用 maxmatch 函數求解最大值及包含它的頻譜。由於數據值非常小,請將 TOL 設定為較小的偶數值。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
最大值位於數據矩陣的 210 列與 17 欄中。
4. 繪製各投藥量的前面兩個頻譜,總計 10 個數據集。數據集對為 Data 矩陣的 [1,2][6,7][11,12][16,17][21,22] 欄。
若要取得水平軸的合理比例,請將波數除以 1000。同樣地,由於頻譜值較小,因此乘以 1000。
使用水平標記顯示最大頻譜值。
按一下以複製此運算式
依慣例,波數會隨遞減順序繪製。Data<0> 會因此遭到取消,以便以正確的順序顯示波數。
頻譜的任何部份都無法用於輕鬆區別不同的投藥量︰它們全部都有相同的基本形式及近似的吸收值。
大部分的數據都是多餘的。每份頻譜有 236 個點,這表示 236 個量測的變數 (特定光波長的吸收率),但這些點的變化明顯相互關連。
5. Data 矩陣分割成兩個數據集:每片藥的波數 (欄 0) 及頻譜 (子矩陣 S)。若要符合常見慣例,請轉置每片藥的頻譜,使各欄對應至自變數。
按一下以複製此運算式
按一下以複製此運算式
6. Nipals 函數套用至數據之前,先定義主元件的數目,以及疊代的最大數目。Nipals 函數會集中數據,減去各列的均數頻譜。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
7. 選擇要重新建構的頻譜。
按一下以複製此運算式
8. Nipals 函數的輸出萃取分數及影響力。
按一下以複製此運算式
按一下以複製此運算式
9. 使用 mean 函數計算均數頻譜。
按一下以複製此運算式
按一下以複製此運算式
10. 將影響力向量矩陣乘以分數矩陣,再加上均數頻譜,即可得出原始頻譜的估值。
按一下以複製此運算式
11. 繪製原始與重新建構的頻譜。縮放水平軸與垂直軸,以獲得合理值。
按一下以複製此運算式
按一下以複製此運算式
只要使用兩項主元件進行主元件分析,即可表示所有的頻譜。
12. 將分數重新排列到兩個矩陣。矩陣的每一欄代表五片投藥量其中之一的分數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
13. 對照第二係數的分數,繪製第一係數的分數。每種投藥量都以不同的顏色顯示。
按一下以複製此運算式
某些數據的分組非常明顯,但仍難以區分不同的投藥量。將第三個分數新增至繪圖可能會有所幫助。
14. 使用 Nipals2 函數將 4 個主元件加入以 2 個主元件建立的模型。
按一下以複製此運算式
按一下以複製此運算式
NIPALS2 的輸出矩陣與 NIPALS 的格式相同,但有對應至其他主元件的其他欄與列。分數與影響力的數目現已增加至 6。
15. NIPALS2 矩陣萃取影響力及分數,以建立所選頻譜的新模型。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
16. 繪製並比較所選頻譜的這兩個模型。縮放水平軸與垂直軸,以獲得合理值。
按一下以複製此運算式
17. NIPALS2 萃取累積變異數。
按一下以複製此運算式
18. 對照主元件數,繪製累積變異數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
雖然前兩項主元件 (PC) 代表 99% 的變異數,但第三項 PC 才是依投藥量組合數據的關鍵。主元件分析會將數據壓縮為最具優勢的係數,但不是最相關的係數。
這是否有幫助?