すべての変数がほぼ直交しているデータセットの次元削減に値はありますか?


回答:


8

@ Peter-Flomの回答の下に残したコメントを明確にしたかったのですが、おそらく回答に書き込む価値があります。ほぼ直交するデータに対してPCAを実行することで、どの程度次元を削減できますか?答えは、相関行列と共分散行列のどちらでPCAを実行するかによって異なります

相関行列でPCAを使用している場合、これは単位行列とわずかに異なるだけなので、すべての方向を「同等に有益」にする球形の対称性があります。PCAの前に変数の分散を1に再スケーリングすることは、同じ結果を生成する数学的に同等のアプローチです。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

最後の2つのケースでは、次元の削減を実現するために破棄することを検討する可能性のある低分散コンポーネントがありましたが、これは、最初に最小分散変数を破棄することとまったく同じです。基本的に、直交性により、低分散変数を使用して低分散コンポーネントを識別できるため、この方法で次元数を削減する場合、PCAを使用することのメリットを明確にすることはできません。

注意:変数が単位分散に再スケーリングされない場合(つまり、相関行列ではなく共分散を使用する場合)の議論に費やされた時間は、このアプローチが何らかの方法でより重要であることを示すものと見なすべきではありません。優れている"。状況の対称性は単に微妙なので、より長い議論が必要です。


私の答えはおそらく、元のポスター(PCAが達成できるものと達成できないものについて)によって提示された問題に最もよく答えます。これは、緑の目盛りを説明していると思います。しかし、読者には、代わりの解決策を提供する@RyanBresslerの回答を確認することをお勧めします。
Silverfish、2015年

11

ローカル線形埋め込み、ラプラシアン固有マップ、t-SNEなど、より一般的な非線形次元削減多様体学習法を試すことができます。

N次元の次元間の相関が0になるように、データに低次元の部分空間(多様体)が存在することは完全に可能です。たとえば、ここに示すように、原点または波形を中心とする点の円。PCAはこれを検出しませんが、他の方法は検出します。

そのような方法を見ることは、視覚化と探索的データ分析にとって特に興味深く、一般的です。分類器または他のモデル内で使用するには、トレーニングに適合し、これらのメソッドの多くを除外するテストに適用できるメソッドに制限する必要があります。これが主な関心事である場合は、教師なし事前トレーニングおよび(教師あり)機能エンジニアリングの方法も検討する必要があります。


6

すべてのN変数がほぼ直交している場合、次元削減は比較的ほとんど削減しません。例えばR

set.seed(123)
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- rnorm(100)
x4 <- rnorm(100)
x5 <- rnorm(100)
x6 <- rnorm(100)
x7 <- rnorm(100)
x8 <- rnorm(100)
x9 <- rnorm(100)
x10 <- rnorm(100)

df1 <- cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)

pcsol <- princomp(df1)
loadings(pcsol)

本質的に、「直交」は「すでに最小サイズ」を意味します。


2
「orthongonal」のタイプミスが少ない
Silverfish

6
@ Silverfish、orthonは、「長いブロンドの髪と赤褐色の靴を履いた日焼けした肌を持つ中程度の高さの人型ロボット」です。ピーターは別の意味でしたが、あなたは正しいかもしれませんが。
ttnphns 2014

4
この答えは変数のスケーリング方法に依存することを指摘する価値はありますか?そこにハイとローの変動変数であり、私たちは、共分散ない相関行列にPCAを行う場合には、そこになりますドロップすることができ、低分散成分も(直交性は、ちょうど彼らの負荷が重く1の低分散変数ごとにそれらを識別意味します)。次のわずかな変更を行いx1<-rnorm(100, sd=0.1)そしてpcsol <- princomp(df1, cor=FALSE)私たちが見ている場合は特に、その差がありますsummary(pcsol)。(covがcorよりも優れたアプローチであることを示唆しているわけではありません。それが可能であるということだけです。)
Silverfish

私はタイプミスを修正しました、ありがとう。また、スケーリングについての良い点。
ピーターフロム-モニカの回復

2
これは、共分散に依存する次元削減にのみ適用されませんか?ここで、なぜ多次元スケーリングが何らかの削減を行わないのでしょうか?
シャドウトーカー、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.