Czy jest jakaś wartość w zmniejszeniu wymiarowości zbioru danych, w którym wszystkie zmienne są w przybliżeniu ortogonalne?

11

Załóżmy, że mam zbiór danych wymiarowych, w którym wymiary są w przybliżeniu ortogonalne (mają zerową korelację).NN.N.

Czy jest jakieś narzędzie pod względem:

  1. Wyobrażanie sobie
  2. Reprezentacja (dla wydajności klasyfikatora)
  3. Lub inne kryteria

wykonać redukcję wymiarowości danych?

użytkownik1172468
źródło
3
Częściowo istotna odpowiedź stats.stackexchange.com/a/92803/3277
ttnphns

Odpowiedzi:

8

Chciałem wyjaśnić komentarz pozostawiony pod odpowiedzią @ Peter-Flom, ale prawdopodobnie warto w odpowiedzi napisać. W jakim stopniu można zmniejszyć wymiary, uruchamiając PCA na prawie ortogonalnych danych? Odpowiedź brzmi „zależy” od tego, czy wykonasz PCA na macierzy korelacji czy kowariancji .

Jeśli używasz PCA na matrycy korelacji, to ponieważ będzie ona tylko nieznacznie różnić się od matrycy tożsamości, istnieje sferyczna symetria, która sprawia, że ​​wszystkie kierunki są „równie pouczające”. Przeskalowanie wariancji zmiennych do jednego przed PCA jest matematycznie równoważnym podejściem, które da taki sam rezultat. Chociaż dane wyjściowe PCA zidentyfikują niektóre komponenty o nieco mniejszej wariancji niż inne, można to przypisać (jeśli przyjmiemy zerową korelację w populacji) jedynie niczym przypadkowym zmianom w próbie, więc nie byłby to dobry powód, aby je odrzucić składniki. W rzeczywistości taka różnica między standardowymi odchyleniami składników powinna zmniejszać się wraz ze wzrostem wielkości próbki. Możemy to potwierdzić w symulacji.

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)
}

Wynik:

> 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

Jeśli jednak wykonasz PCA przy użyciu macierzy kowariancji zamiast macierzy korelacji (równoważnie: jeśli nie skalujemy standardowych odchyleń do 1 przed zastosowaniem PCA), odpowiedź zależy od rozprzestrzeniania się twoich zmiennych. Jeśli twoje zmienne mają tę samą wariancję, nadal mamy sferyczną symetrię, więc nie ma „uprzywilejowanego kierunku” i nie można osiągnąć redukcji wymiarów.

> 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

Jednak w przypadku kombinacji zmiennych o wysokiej i niskiej zmienności symetria przypomina bardziej elipsoidę z niektórymi szerokimi osiami, a inne cienkimi. W tej sytuacji będą ładowane komponenty o wysokiej wariancji na zmienne o dużej wariancji (gdzie elipsoida jest szeroka) i komponenty o niskiej wariancji na zmienne o niskiej wariancji (w których kierunkach elipsoida jest wąska).

> 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

Jeśli zmienne mają bardzo różne wariancje (ponownie geometrycznie elipsoidę, ale wszystkie osie się różnią), to ortogonalność pozwala pierwszemu komputerowi na bardzo duże obciążenie zmiennej o największej wariancji i tak dalej.

> 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

W dwóch ostatnich przypadkach istniały komponenty o niskiej wariancji, które można rozważyć wyrzucenie w celu uzyskania zmniejszenia wymiarów, ale robi to dokładnie tak samo, jak wyrzucenie zmiennych o najniższej wariancji . Zasadniczo ortogonalność pozwala zidentyfikować komponenty o niskiej wariancji za pomocą zmiennych o niskiej wariancji, więc jeśli zamierzasz zmniejszyć wymiarowość w ten sposób, nie jest jasne, czy skorzystałbyś na tym przy użyciu PCA.

Nota bene: czasu poświęconego na omawianie przypadku, w którym zmienne nie są przeskalowane do wariancji jednostkowej - tj. Przy użyciu kowariancji zamiast macierzy korelacji - nie powinno być traktowane jako wskazówka, że ​​takie podejście jest w jakiś sposób ważniejsze, a na pewno nie to, że jest lepiej". Symetria sytuacji jest po prostu bardziej subtelna, dlatego wymaga dłuższej dyskusji.

Silverfish
źródło
Moja odpowiedź chyba najlepiej odpowiada problemowi postawionemu przez oryginalny plakat (który dotyczył tego, co PCA może osiągnąć, a czego nie może), co, jak przypuszczam, wyjaśnia zielony tyk! Ale zachęcam czytelników, aby spojrzeli na odpowiedź @ RyanBressler, która zapewnia alternatywne rozwiązania .
Silverfish
11

Możesz wypróbować bardziej ogólną metodę uczenia się różnorodnej nieliniowej redukcji wymiarów, taką jak lokalnie liniowe osadzanie, laplacian eigenmaps lub t-SNE.

Jest całkowicie możliwe, że w twoich danych jest podprzestrzeń o niższych wymiarach (rozmaitość) w sposób, który pozostawia 0 korelacji między wymiarami N-podstawowymi. Na przykład okrąg punktów o początku lub kształcie fali, jak pokazano tutaj . PCA tego nie odbierze, ale inne metody to zrobią.

Patrzenie na takie metody jest szczególnie interesujące i wspólne dla wizualizacji i analizy danych eksploracyjnych. Aby korzystać z klasyfikatora lub innego modelu, musisz ograniczyć się do metod, które można dopasować do treningu i zastosować w teście, co wyklucza wiele z tych metod. Jeśli leży to w twoim głównym interesie, powinieneś również przyjrzeć się metodom bezobsługowego szkolenia wstępnego i (nadzorowanej) inżynierii funkcji.

Ryan Bressler
źródło
6

Jeśli wszystkie N zmiennych są w przybliżeniu ortogonalne, wówczas redukcja wymiarów spowoduje względnie niewielkie zmniejszenie. Np. WR

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)

Zasadniczo „ortogonalny” oznacza „już w najmniejszym rozmiarze”.

Peter Flom - Przywróć Monikę
źródło
2
masz małą literówkę w „ortongonalnym”
Silverfish
6
@Silverfish, orthon to „humanoid średniego wzrostu z długimi blond włosami i opaloną skórą w czerwono-brązowych butach”. Chociaż możesz mieć rację, że Piotr miał na myśli inny.
ttnphns
4
Czy warto wskazać, że odpowiedź zależy od sposobu skalowania zmiennych? Jeśli istnieją zmienne o wysokiej i niskiej wariancji, a my wykonujemy PCA na macierzy kowariancji, a nie korelacji, pojawią się składniki o niskiej wariancji, które można usunąć (ortogonalność oznacza po prostu, że ich ładunki silnie identyfikują je za pomocą jednej zmiennej o niskiej wariancji). Dokonaj następujących drobnych zmian: x1<-rnorm(100, sd=0.1)i pcsol <- princomp(df1, cor=FALSE)jest różnica, szczególnie jeśli na to spojrzymy summary(pcsol). (Nie sugeruję, że cov jest lepszym podejściem niż cor, tylko że jest to możliwe.)
Silverfish
Naprawiłem literówkę, dzięki. Również dobra uwaga na temat skalowania.
Peter Flom - Przywróć Monikę
2
Czy to nie dotyczy tylko redukcji wymiarów zależnej od kowariancji? Dlaczego powiedzmy, że skalowanie wielowymiarowe nie ma tutaj żadnego ograniczenia?
shadowtalker