r语言主成分分析_PCA主成分分析
PCA主成分分析
最近遇到了主成分分析法這個東西,一開始我覺得簡直天才啊,這個想法雖然從經濟意義上來解釋有點奇怪,畢竟是數學方法計算出來的解釋因子,但鑒于沒人知道現實世界究竟被多少因素影響,這種方法可以將最主要的成分提取出來,供人使用。這對于沒有足夠的經驗自己總結影響因子的人來說,確實是一個很好的主意。
但在應用中我遇到了許多小問題,又因為我糟糕的記憶力,我決定寫下來問題的解決過程,下一次還能回憶起來。QAQ
0.寫在最前面
主成分分析法,可以將隨機向量變為少數幾個主成分,換句話說,本來有幾種向量,最后就有幾種成分,然后從中選出解釋力最強的幾種“主成分”。但是原始向量的協方差矩陣可能不是一個對角矩陣,即原始向量之間相關,轉換后的主成分之間,不相關,同時主成分可以反映原始向量的大部分信息。
1.數據標準化
標準化,意味著將原始數據減去對應變量的均值,再除以其方差。
這個問題的來源是在主成分分析中,有兩種選擇,按照相關系數矩陣分解還是按照協方差矩陣分解。
我的困惑在于,這兩者有什么區別,和書標準化又有什么關系。
查詢資料得知:經標準化的樣本數據的協方差矩陣就是原始樣本數據的相關矩陣。這里所說的標準化指正態化,即將原始數據處理成均值為0。
簡單來說,原始樣本相關矩陣=標準化后協方差矩陣。
2.按照協方差矩陣分解還是按照相關矩陣分解
雖然現在知道了:
原始樣本相關矩陣=標準化后協方差矩陣
但我還是不確定,這是否意味著:
原始樣本按照相關矩陣分解=標準化后樣本按照協方差矩陣分解
但我這個人確實不太擅長從數學的角度進行理論分析。
所以我直接在程序里驗證了,對比了兩組結果。原始數據為data,R語言
第一組:
A <- princomp(data, cor = TRUE)
summary(A)
第二組:
b <- scale(data)
B <- princomp(b, cor = FALSE)
summary(B)
我得到的兩組結果完全相同。顯然,這證明了:
原始樣本按照相關矩陣分解=標準化后樣本按照協方差矩陣分解
這基本解決了我運算上的一些困惑。
3.關于意義
運算上的困惑解決了,我對主成分的一些含義還不清楚,主要有以下幾個問題:
a. 第一主成分和第二主成分的區別是否在與第一主成分的解釋力更強,或者說他們倆的第一第二究竟是什么意思。特征向量又有什么意義?
第一主成分和第二主成分的“第一”、“第二”意味著特征值的第一大和第二大。第一主成分,意味著對標準化后的數據找到一個線性組合,令主成分的方差最大。第二主成分與第一主成分無關,第二主成分的方差第二大。
特征值越大,代表了對原始信息解釋的越多。
第一主成分的方差理論上等于第一大特征值,第二主成分的方差理論上等于第二大特征值。特征向量就是在原始數據上的系數。
系數的正負值,絕對值大的代表了蓋主成分主要綜合的變量信息,當有幾個變量系數絕對值大小相當的時候,應當認為這一主成分是這幾個變量的作用綜合,至于意義需要結合具體的問題解決。
b. 原始數據中,某種向量與其他向量的相關性較低,和這種向量與主成分之間的關系有什么聯系?
變量之間相關性高,意味著數據中的信息是有重疊的,因此,用主成分分析得到不重疊的信息。如果本身不相關,就沒有重疊的信息,pca的效果就不明顯。(這一點我仍舊存疑)
總結
以上是生活随笔為你收集整理的r语言主成分分析_PCA主成分分析的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 我国5G终端用户达4.97亿!建成开通5
 - 下一篇: 2022年笔记本电脑标配USB-C接口: