Pca

所有變量都近似正交的數據集的降維是否有任何價值?

  • December 24, 2014

假設我有一個維數據集,其中維度大致正交(相關性為零)。

在以下方面是否有任何效用:

  1. 可視化
  2. 表示(用於分類器效率)
  3. 或其他標準

對數據執行降維?

我想澄清我在@Peter-Flom 的回答下留下的評論,但可能值得寫在答案中。通過對近正交數據運行 PCA,您可以在多大程度上減少維度?答案是“這取決於”您是對相關矩陣還是協方差矩陣執行 PCA

如果您在相關矩陣上使用 PCA,那麼由於這與單位矩陣僅略有不同,因此存在球對稱性,它使所有方向都“具有相同的信息量”。將變量的方差重新調整為 PCA 之前的方差是一種數學上等效的方法,它會產生相同的結果。雖然 PCA 輸出將識別出一些方差比其他分量略低的分量,但這可以歸因於(如果我們假設總體中的相關性為零)只不過是樣本中的機會變化,因此不是拋棄這些的好理由組件。事實上,當我們增加樣本量時,組件標準偏差之間的這種差異應該會減少。我們可以在模擬中確認這一點。

set.seed(123)
princompn <- function(n, sd1=1, sd2=1, sd3=1, sd4=1, cor=TRUE) {
   x1 <- rnorm(n, mean=0, sd=sd1)
   x2 <- rnorm(n, mean=0, sd=sd2)
   x3 <- rnorm(n, mean=0, sd=sd3)
   x4 <- rnorm(n, mean=0, sd=sd4)
   prcomp(cbind(x1,x2,x3,x4), scale.=cor)
}

輸出:

> pc100 <- princompn(100)
> summary(pc100)
Importance of components:
                         PC1    PC2    PC3    PC4
Standard deviation     1.0736 1.0243 0.9762 0.9193
Proportion of Variance 0.2882 0.2623 0.2382 0.2113
Cumulative Proportion  0.2882 0.5505 0.7887 1.0000
> 
> pc1m <- princompn(1e6)
> summary(pc1m)
Importance of components:
                         PC1    PC2    PC3    PC4
Standard deviation     1.0008 1.0004 0.9998 0.9990
Proportion of Variance 0.2504 0.2502 0.2499 0.2495
Cumulative Proportion  0.2504 0.5006 0.7505 1.0000

但是,如果您使用協方差矩陣而不是相關矩陣進行 PCA(等效地:如果我們在應用 PCA 之前不將標準差縮放為 1),那麼答案取決於變量的分佈。如果您的變量具有相同的方差,那麼我們仍然具有球對稱性,因此沒有“特權方向”並且無法實現降維。

> pcEqual <- princompn(n=1e6, sd1=4, sd2=4, sd3=4, sd4=4, cor=FALSE)
> summary(pcEqual)
Importance of components:
                         PC1    PC2    PC3    PC4
Standard deviation     4.0056 4.0010 3.9986 3.9936
Proportion of Variance 0.2507 0.2502 0.2499 0.2492
Cumulative Proportion  0.2507 0.5009 0.7508 1.0000

然而,在混合了高方差和低方差變量的情況下,對稱性更像是一個具有一些寬軸和一些細軸的橢球體。在這種情況下,高方差變量(橢圓體較寬)上將加載高方差分量,而低方差變量(橢圓體在其方向較窄)上將加載低方差分量。

> pcHiLo <- princompn(n=1e6, sd1=4, sd2=4, sd3=1, sd4=1, cor=FALSE)
> summary(pcHiLo)
Importance of components:
                         PC1    PC2    PC3     PC4
Standard deviation     4.0018 3.9985 1.0016 1.00005
Proportion of Variance 0.4709 0.4702 0.0295 0.02941
Cumulative Proportion  0.4709 0.9411 0.9706 1.00000
> round(pcHiLo$rotation, 3)
     PC1   PC2    PC3    PC4
x1  0.460 0.888  0.000  0.000
x2 -0.888 0.460  0.000  0.000
x3  0.000 0.000 -0.747 -0.664
x4  0.000 0.000  0.664 -0.747

如果變量具有非常不同的方差(幾何上又是一個橢圓體,但所有軸都不同),那麼正交性允許第一台 PC 非常重地加載最高方差變量,依此類推。

> pc1234 <-  princompn(n=1e6, sd1=1, sd2=2, sd3=3, sd4=4, cor=FALSE)
> summary(pc1234)
Importance of components:
                         PC1    PC2    PC3     PC4
Standard deviation     3.9981 3.0031 1.9993 1.00033
Proportion of Variance 0.5328 0.3006 0.1332 0.03335
Cumulative Proportion  0.5328 0.8334 0.9667 1.00000
> round(pc1234$rotation, 3)
    PC1    PC2    PC3   PC4
x1 0.000  0.000 -0.001 1.000
x2 0.001 -0.001  1.000 0.001
x3 0.003 -1.000 -0.001 0.000
x4 1.000  0.003 -0.001 0.000

在最後兩種情況下,您可能會考慮丟棄低方差分量以實現降維,但這樣做完全等同於首先丟棄最低方差變量。本質上,正交性允許您識別具有低方差變量的低方差分量,因此如果您打算以這種方式降低維度,則不清楚使用 PCA 這樣做是否會受益。

注意事項:討論變量未重新調整為單位方差的情況(即使用協方差而不是相關矩陣)的時間長度不應被視為這種方法更重要的指示,當然也不是更好”。這種情況的對稱性更加微妙,因此需要更長的討論時間。

引用自:https://stats.stackexchange.com/questions/130207

comments powered by Disqus