[英]PCA : eigen values vs eigen vectors vs loadings in python vs R?
我正在嘗試計算數據集的 PCA 負載。 我讀得越多,就越感到困惑,因為“加載”在許多地方的使用方式不同。
我在 python 中使用sklearn.decomposition進行 PCA 分析以及 R(使用factomineR和factoextra庫),因為它提供了簡單的可視化技術。 以下是我的理解:
現在,我感到困惑的是:
許多論壇說特征向量是載荷。 然后,當我們將特征向量乘以 sqrt(特征值)時,我們就得到了關聯強度。 其他人說特征向量 * sqrt(特征值)= 載荷。
特征向量平方告訴我們變量對 pc 的貢獻? 我相信這相當於 R 中的 var$contrib。
加載平方(特征向量或特征向量 * sqrt(特征值)我不知道是哪一個)顯示 pc 捕獲變量的能力(更接近 1 = 變量更好地由 pc 解釋)。 這相當於 R 中的 var$cos2 嗎? 如果不是,R 中的 cos2 是什么?
基本上我想知道如何理解主成分捕獲變量的能力以及變量對 pc 的貢獻。 我認為他們兩個是不同的。
什么是 pca.singular_values_? 從文檔中不清楚。
好的,經過大量研究並閱讀了許多論文,我有以下幾點,
1.a:特征向量**2 = 主成分中的變量貢獻。 如果它接近 1,則該變量很好地解釋了特定的 pc。
在 python -> (pow(pca.components_.T),2) [如果你想要百分比而不是比例,則乘以 100] [R 等價 -> var$contrib]
pca.variance_explained_ = 特征值
pca.singular_values_ = 從 SVD 獲得的奇異值。 (奇異值)**2/(n-1) = 特征值
特征向量 * sqrt(特征值) = 載荷矩陣
4.a:平方加載矩陣的垂直總和=特征值。 (假設您已按照步驟 1 中的說明進行轉置)
4.b:平方加載矩陣的水平總和 = 所有主成分解釋的觀察方差 - 轉換后所有 pc 保留變量方差的程度。 (假設您已按照步驟 1 中的說明進行轉置)
在 python-> 加載矩陣 = pca.components_.T * sqrt(pca.explained_variance_)。
有關 r 的問題:
var$cos2 = var$cor(兩個矩陣相同)。 給定因子 map 上變量的坐標,它由特定主成分表示的程度如何。 看起來像變量和主成分的相關性。
var$contrib = 由第 1 點總結。在 r:(var.cos2 * 100) / (total cos2 of the component) R 鏈接中的 PCA 分析
希望它可以幫助其他對 PCA 分析感到困惑的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.