多重共線性是指自變數彼此相關的一種情況。當你擬合模型並解釋結果時,多重共線性可能會導致問題。資料集的變數應該是相互獨立的,以避免出現多重共線性問題。
在本文中,您可以閱讀為什麼多重共線性是一個問題,以及如何使用主成分分析(PCA)消除資料集中的多重共線性。
為什麼多重共線性是一個潛在的問題?多重共線性高度影響與問題相關的方差,也會影響模型的解釋,因為它削弱了自變數的統計顯著性。
對於一個數據集,如果一些自變數彼此高度獨立,就會導致多重共線性。任何一個特徵的微小變化都可能在很大程度上影響模型的效能。換句話說,模型的係數對自變數的微小變化非常敏感。
如何處理資料中的多重共線性?要處理或去除資料集中的多重共線性,首先需要確認資料集中是否具有多重共線性。有各種各樣的技術來發現資料中存在多重共線性,其中一些是:
· 得到非常高的迴歸係數的標準誤差
· 整體模型顯著,但係數均不顯著
· 在新增預測因子時,係數有很大變化
· 高方差膨脹因子(VIF)和低容錯
以上是一些在資料中發現多重共線性的技術或技巧。
在這篇文章中,我們將看到如何使用相關矩陣和主成分分析來發現資料中的多重共線性,並使用主成分分析來去除它。基本思想是對所有的預測器執行一個主成分分析。如果存在多重共線性,它們的比率(條件指數)將會很高。
資料
為了進一步分析,使用的資料集是從Kaggle下載的Diamonds資料集。這個經典資料集包含近54000顆鑽石的價格(目標變數)和其他9個自變數。
資料集預處理
資料集有9個獨立的特徵和' price '是目標類標籤。在進行統計相關性分析之前,我們需要對分類變數進行編碼,如"cut"、"color"和"clarity"。
相關性分析
要找到資料集中所有變數之間的person相關係數:
data.corr(method='pearson')Method of correlation: * pearson (default) * kendall * spearman
從上面的相關熱圖,我們可以觀察到自變數:' x ', ' y ', ' z ', '克拉'之間高度相關(人係數> 0.9),從而得出資料中存在多重共線性的結論。
使用PCA處理多重共線性主成分分析(PCA)是資料科學中常用的特徵提取技術,它利用矩陣分解將資料降維到更低的空間。
為了使用主成分分析技術從資料集中提取特徵,首先我們需要找到當維數下降時解釋的方差百分比。
符號, λ:特徵值 d:原始資料集的維數 k:新特徵空間的維數
從上圖,np.cumsum(PCA .explainedvarianceratio_),第一主成分分析獲得的資料總方差為0.46,對於前兩主成分分析為0.62,前6主成分分析為0.986。
對於捕獲的個體方差,第1個PCA捕獲的資料方差為4.21,第2個PCA捕獲的資料方差為1.41,第3個PCA捕獲的資料方差為1.22,最後一個PCA捕獲的資料方差為0.0156。
由於總方差的98.6%是由前6個主成分分析本身捕獲的,我們只取6個主成分分析的組成部分,並計算一個相關熱圖來克服多重共線性。
從上面的相關熱圖可以看出,現在沒有一個自變數是不相關的。
我們可以觀察到自變數"x","y","z","克拉"之間高度相關(person係數> 0.9),從而得出資料中存在多重共線性的結論。
因此,利用主成分分析對資料進行降維,可以使資料的方差保持98.6%,並消除資料的多重共線性。
本文的所有程式碼你可以在這裡找到 https://colab.research.google.com/drive/1_QnP8Xu-HukCjB3q5UyxPpXRkjmfzNYf?usp=sharing