✔ 最佳答案
何不找一本多變量分析的教本來看一看?
2015-02-27 11:59:58 補充:
只要找一本有講解其想法及推導的教本就可以了. 不要找那種
只是教你如何套用軟體計算的.
簡單地說, 主成分分析是對原資料變數向量 X 做正交變換,
Y = PX, 其中 P 是正交矩陣 (P' = P^{-1}), 使 Y 的第1成分具
有最大變異數, 第2成分具有第2大變異數, 以此類推.
或者, 只考慮第一主成分, 考慮 y = w'X, 其中 W 是單位向量.
要 maximize Var(y) = w'[Cov(X)]w, 結果 Var(y) 是 Cov(X) 的
最大徹值, 而 w 是對應的特徵向量.
2015-02-27 12:14:14 補充:
以 V 表示隨機向量 X 的共變異矩陣. 可以將 V 表示為 V = PDP',
D 是 V 之待徵值為對角線元素所形成的對角線矩陣. P 的各行即前
述 w 向量的角色.
實際計算, 一法是對 V 矩陣做上述分解, 其中 D 的主對角線元素
是由大而小排列'
另法是一個成分一個成分來, 也就是說先找出第一主成分
y_1 = (w_1)'X, 並得 V 之最大徵值 λ_1.
而後計算 V_1 = V - λ_1(w_1)(w_1)', 則 V_1 之最大徵值即 V 之
第 2 大徵值. 以此方式逐步找出 V 之最大、次大、第3大徵值等,
以及對應的特徵向量.
2015-02-27 12:18:51 補充:
主成分分析也可以針對標準化變量, 也就是說不用共變異矩陣而用
相關矩陣. 當然, 採用共變異矩陣與採用相關矩陣, 得到的主成分是
不同的.
另外, 以上是以群體為考慮標的, 而實際資料分析通常是樣本資料.
2015-02-27 12:27:45 補充:
從圖像來看, 就是把未標準化或標準化 k 維資料, (先將原點移至
資料分布之中心), 經旋轉方向(轉軸)、鏡射等操作, 使得各軸 (各
方向) 所代表的新變數相互零相關(正交), 並且在最後只取資料點
散佈較廣的各軸 (各方向) 代表的新變數, 是為原資料之主成分.
2015-03-01 09:49:13 補充:
數學的部分涉及統計的機率部分及數學的線性代數(主要是 eigenvalue
與 eigenvector 的內容). 如果對這兩者有不熟悉, 那麼難理解是可想像的.
如果只要應用, 那麼知道 "主成分" 是什麼意思也就可以了. 基本上就是考
慮變數變換 y = w'X 要使 y 的變異數最大. 當然, 因 w 放大則 y 的變異數
也放大, 所以在最大化 Var(w'X) 時限定 ||w|| = 1.
2015-03-01 09:50:18 補充:
最大化 Var(w'X) 時限定 ||w|| = 1. 最終導出 w 是 Cov(X) 之最大igenvalue
所對應的 eigenvector, 利用的是對稱實矩陣 V = Cov(X) 的正交對角線化
V = PDP'.
至於連續求第2, 第3主成分等的計算方式, 最終歸結到等於 Cov(X) 的上述
分解 V = PDP', 也只是一些演算罷了.
2015-03-03 12:46:31 補充:
文字模式沒有字體變化, 確實有些表達上的不便. 不過, 先前所談所用
符號幾乎都代表向量與矩陣, 加上前後語, 應不會有混淆問題.
如果你理解了主成分分析的目標是 w'X 的變異數要最大化, 那麼剩下
的就是計算問題.
線性式 w'X 展開來就是 w_1*X_1 + ... + w_k*X_k, 是隨機變數 X_1,
...,X_k 的線性組合. 在機率或統計基礎課程中都學過它的變異數是
Σ_i w_i^2*Var(X_i) + 2ΣΣ_{i
2015-03-03 18:26:20 補充:
系統怪怪的, 竟然一直無法在意見區貼文. 試試看重新整理一下貼回答區算了.
簡單地說, 主成分分析是對原資料變數向量 X 做正交變換, Y = PX,
其中 P 是正交矩陣 (P' = P^{-1}), 使 Y 的第1成分具有最大變異
數, 第2成分具有第2大變異數, 以此類推.或者, 只考慮第一主成分, 考慮 y = w'X, 其中 w 是單位向量. 用
普通代數式來寫就是 y = w_1*X_1+...+w_k*X_k, 是實數值隨機變
數 X1,...,X_k 的線性組合. 在機率或統計的初級課程可以得到
Var(y) = Σ_i w_i^2*Var(X_i) + 2ΣΣ_{i < j} w_i*w_j*Cov(X_i,X_j), 用矩陣向量表現, 就是
Var(w'X) = w'(Cov(X))w
為方便計, 以 V 表示 X 的共變異數矩陣, 即 V = Cov(X).說 y 是 X 的 (第一)主成分, 就是 y 的變異數要儘量大. 但顯然若
w 成比例放大, 例如把 w 乘以 c 倍, 則 Var(y) 變成 c^2 倍. 因
此, 所謂 Var(y) 儘量大, 是在限制 w 為單位向量, 即 ||w|| = 1
或即 Σ(w_i)^2 = 1 的條件下說的. 要在 ||w|| = 1, 也就是 Σ (w_i)^2 = 1 條件下極大化 w'Vw, 用
微積分的 Lagrange 方法, 是找滿足 Vw = λw 及 ||w|| = 1 的解.學過線性代數的 eigenvalue/eigenvector 章節, 立即可知上列條件
就是說 λ 是 V 的一個特徵值, 而 w 是對應的特徵向量. 而此時
w'Vw = λw'w = λ, 因此要找的就是 V 的最大特徵值及對應的特徵
向量, 然後 X 的第一主成分就是 w'X.當然, 熟悉線性代數或矩陣代數的話, 不經由 Lagrange 方法亦可得
相同結果.
在線性代數, 可以得知, 由於 V = Cov(X) 是實數對稱矩陣, 因此它
可以被 "正交對角線化". 這意思就是存在 "正交矩陣" P, 使 P'VP
為對角線矩陣 D, D 的主對角線元素就是 V 的所有特徵值(根). 這
另外有一個意思, 是:
(1) V 的相異特徵值 λ_1≠λ_2, 其所對應的特徵向量 w_1, w_2
正交, 即點積 w_1.w_2 = 0, 或用矩陣符號: (w_1)'(w_2) = 0.
(2) 若 λ 是 V 的 m 重特徵根(特徵值, 是 det(tI-V) = 0 之根,
故亦名 "特徵根"), 則存在 m 個相互正交的特徵向量.
因此, 若同時考慮隨機向量 X = (X_1,...,X_k)' 的 k 個線性式
(w_i)'X, i=1,...,k, 其中 w_1,...,w_k 是相互正交的單位向量.
把這 k 個向量放在一起成一個矩陣 P = [w_1 ... w_k], 則 P 是
正交矩陣 (P^{-1} = P', 即 P 的轉置即是其逆矩陣), Y = P'X
即是 X 向量的一個正交變換. 則
Cov(Y) = P'(Cov(X))P = P'VP.做 Y = P'X 轉換的目標是 Y 的各成分相互零相關, 並且其第1成分
具有最大變異數, 第2成分具有第2大變異數, 以此類推.若 Y = P'X 的 P 是採用上述將 V 對角線化的 P, 那麼, Cov(Y)=D.
而 V 的特徵值由大而小排列, 連帶著特徵向量一起排序, 於是
P = [w_1 .... w_k] 其中 w_1 對應 V 之最大特徵值, w_2 對應第
2大特徵值, 以此類推.
從 V 找到最大特徵值 λ_1 及對應的特徵向量, 考慮新矩陣
V_1 = V - (λ_1)(w_1)(w_1)', 則
(1) V 之諸特徵值, 除最大特徵值變為 0 以外, 其餘均一一在 V_1
重現.
(2) V_1 之非零特徵值對應的特徵向量, 同於 V 之對應特徵值的特
徵向量.以上結果提供了不直接做 V = PDP' 分解, 而是採用循序找 X 之第
一主成分、第三主成分等等的方法依據.
2015-03-10 19:39:58 補充:
我不知 Karhunen–Loève theorem. 請恕我所學太少.
實例計算需靠電腦、軟體, 恕難如你的意.
另, 回答區似也不容我再增加太多文字. 先前曾有補充說明, 貼不上.
2015-03-10 19:41:03 補充:
就連上面那三句話, 回答區也不讓貼了.