Czy mogę użyć CLR (transformacja wyśrodkowanego współczynnika log) do przygotowania danych na PCA?

13

Używam skryptu. To jest dla podstawowych zapisów. Mam ramkę danych, która pokazuje różne kompozycje elementarne w kolumnach na danej głębokości (w pierwszej kolumnie). Chcę z nim wykonać PCA i jestem zdezorientowany co do metody standaryzacji, którą muszę wybrać.

Czy ktoś z was wykorzystał te dane clr()do przygotowania danych prcomp()? Czy też zafałszowuje moje rozwiązania. Próbowałem użyć clr()na danych przed użyciem prcomp()funkcji oprócz korzystania ze skali atrybutów w prcomp().

data_f_clr<- clr(data_f)
data_pca <- prcomp(data_f, center = TRUE, scale. = TRUE)

https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html

Skala jest opisana do skalowania danych, więc mają one wariancję jednostek. Ponieważ moje dane mają inną skalę, właśnie tego chciałem, tak myślę. Problem polega na tym, że otrzymuję inne rozwiązanie, kiedy używam powyższego kodu lub kiedy pomijam clr()(co sprawia, że ​​bardziej pożądany wynik). Ale chcę wiedzieć, dlaczego clr()niepokojące w tym przypadku?

T.rex
źródło
2
W przypadku użytkowników innych niż R, takich jak ja, pomocne może być wyjaśnienie, co clr...
Dougal
3
Oczywiście CLR zmienia rozwiązania - dlaczego inaczej miałbyś skorzystać z tej procedury? Być może powinieneś zapytać, jak ustalić, które podejście jest lepsze. Przydatne posty można znaleźć, przeszukując naszą witrynę w poszukiwaniu CLR . W odpowiedzi na powiązane pytanie podałem kilka ilustracji, które mogą ci pomóc.
whuber
1
Szybka odpowiedź jest taka, że ​​możesz zrobić wszystko, co chcesz z danymi przed PCA. Nie ma w tym żadnych rozporządzeń, przepisów ani przepisów. Niektórzy twierdzą, że PCA (bez obrotu) jest niezmienna w skali, podczas gdy inni twierdzą, że wyniki PCA są bardzo wrażliwe na skalę. Ale jeśli obrócisz wyniki PCA, wówczas reguły kciuka nakazują normalizację przed PCA, taką jak CLR lub standaryzację do średniej = 0 i SD = 1. Świetna dyskusja na temat CLR znajduje się w książce Lee Coopera Analiza udziału w rynku ( anderson.ucla.edu/faculty/lee.cooper/MCI_Book/BOOKI2010.pdf ), łącząc ją z analizą komponentów.
Mike Hunter
2
@DJohnson Przeszukałem plik pdf pod kątem różnych słów w CLR i wyśrodkowanej transformacji logarytmicznej, ale nic nie znalazłem. Co zrobiłem źle? W tej wersji nie ma indeksu, ale nagłówki sekcji nie wyglądają obiecująco, a odniesienia nie obejmują Johna Aitchisona, który zaproponował tę transformację dla danych kompozycyjnych. Doceniamy odniesienia do dyskusji na temat tej lub innej nazwy.
Nick Cox
1
Jak już wspomniano, w wersji, z którą masz link, nie ma indeksu, więc wybacz mi, że nie skorzystałem z niego. Dzięki za słowo kluczowe „log-centring”, z którego znajduję dyskusje o innej bestii, a nie o wyśrodkowanej transformacji logarytmicznej , o której w tym wątku chodzi. @whuber podał już link do dyskusji na tej stronie. Kluczem jest to, że w przypadku danych kompozycyjnych o proporcjach zwiększających się do 1 istnieje potrzeba i zakres zbiorowej transformacji w inną przestrzeń. Pominąłeś słowo „stosunek” jako wskazujące na inny pomysł niż ten, który znasz.
Nick Cox

Odpowiedzi:

6

Mogą wystąpić pewne problemy z waniliowym PCA na współrzędnych CLR. Istnieją dwa główne problemy z danymi kompozycyjnymi:

  • są ściśle nieujemne
  • mają ograniczenie sumy

Różne transformacje kompozycyjne dotyczą jednego lub obu tych problemów. W szczególności CLR przekształca dane, pobierając logarytm stosunku między obserwowanymi częstotliwościami a ich średnią geometryczną G ( x ) , tj.xG(x)

x^={log(x1G(x)),,log(xnG(x))}={log(x1)log(G(x)),,log(xn)log(G(x))}

Rozważ to teraz

log(G(x))=log(exp[1ni=1nlog(xi)])=E[log(x)]

x^=[log(x)E[log(x)]]=0

Innymi słowy CLR usuwa ograniczenie zakresu wartości (co jest dobre w niektórych aplikacjach), ale nie usuwa ograniczenia sumy, co powoduje powstanie pojedynczej macierzy kowariancji, która skutecznie łamie (M) ANOVA / regresję liniową / ... i powoduje PCA wrażliwa na wartości odstające (ponieważ solidne oszacowanie kowariancji wymaga matrycy pełnej rangi). O ile mi wiadomo, ze wszystkich transformacji kompozycyjnych tylko ILR rozwiązuje oba problemy bez żadnych głównych założeń. Sytuacja jest jednak nieco bardziej skomplikowana. SVD współrzędnych CLR daje podstawę ortogonalną w przestrzeni ILR (współrzędne ILR obejmują hiperpłaszczyznę w CLR), więc twoje oszacowania wariancji nie będą się różnić między ILR i CLR (to oczywiście oczywiste, ponieważ zarówno ILR, jak i CLR są izometriami na simplex). Istnieją jednak metody solidnego oszacowania kowariancji na współrzędnych ILR [2].

Aktualizacja I

Aby zilustrować, że CLR nie jest poprawny dla metod korelacji i metod zależnych od lokalizacji. Załóżmy, że 100 razy próbkujemy grupę trzech liniowo niezależnych normalnie rozłożonych komponentów. Dla uproszczenia, niech wszystkie komponenty mają równe oczekiwania (100) i wariancje (100):

In [1]: import numpy as np

In [2]: from scipy.stats import linregress

In [3]: from scipy.stats.mstats import gmean

In [4]: def clr(x):
   ...:     return np.log(x) - np.log(gmean(x))
   ...: 

In [5]: nsamples = 100

In [6]: samples = np.random.multivariate_normal(
   ...:     mean=[100]*3, cov=np.eye(3)*100, size=nsamples
   ...: ).T

In [7]: transformed = clr(samples)

In [8]: np.corrcoef(transformed)
Out[8]: 
array([[ 1.        , -0.59365113, -0.49087714],
       [-0.59365113,  1.        , -0.40968767],
       [-0.49087714, -0.40968767,  1.        ]])

In [9]: linregress(transformed[0], transformed[1])
Out[9]: LinregressResult(
   ...:     slope=-0.5670, intercept=-0.0027, rvalue=-0.5936, 
   ...:     pvalue=7.5398e-11, stderr=0.0776
   ...: )

Aktualizacja II

Biorąc pod uwagę odpowiedzi, które otrzymałem, uważam za konieczne wskazanie, że w żadnym momencie mojej odpowiedzi nie powiedziałem, że PCA nie działa na danych przekształconych przez CLR. Stwierdziłem, że CLR może łamać PCA w subtelny sposób, co może nie być ważne dla zmniejszenia wymiarów, ale jest ważne dla analizy danych eksploracyjnych. Artykuł cytowany przez @Archie dotyczy ekologii drobnoustrojów. W tej dziedzinie biologii obliczeniowej PCA lub PCoA na różnych matrycach odległości są wykorzystywane do badania źródeł zmienności danych. Moja odpowiedź powinna być rozpatrywana tylko w tym kontekście. Co więcej, zostało to podkreślone w samym dokumencie:

... Kompozytowy dwupłat [uwaga: odnoszący się do PCA] ma kilka zalet w porównaniu do głównych wykresów współrzędnych (PCoA) do analizy różnorodności β. Uzyskane wyniki są bardzo stabilne, gdy dane są podzbiorowe (Bian i in., 2017), co oznacza, że analiza eksploracyjna nie jest napędzana jedynie relacjami braku obecności w danych ani nadmierną rzadkością (Wong i in., 2016; Morton i in. al., 2017).

Gloor i in., 2017

Aktualizacja III

Dodatkowe odniesienia do opublikowanych badań (dziękuję @Nick Cox za zalecenie dodania kolejnych referencji):

  1. Argumenty przeciwko używaniu CLR dla PCA
  2. Argumenty przeciwko używaniu CLR dla metod opartych na korelacji
  3. Wprowadzenie do ILR
Eli Korvigo
źródło
2
Osobliwa macierz kowariancji nie jest problemem dla PCA!
kjetil b halvorsen
@kjetilbhalvorsen rzeczywiście, PCA per se nie wymaga, aby matryca była pełna. Technicznie rzecz biorąc, pojedyncza macierz kowariancji da tylko jedną lub więcej zerowych wartości własnych. Jednak ludzie zwykle stosują PCA do odkrywania źródeł wariancji, w których zaczyna się kompozycyjność. Dlatego dość ostrożnie zastosowałem moje sformułowanie: „... skutecznie łamie PCA / ... na wiele subtelnych sposobów”
Eli Korvigo
Masz na myśli, że z powodu osobliwości nie można obliczyć wariancji, która jest wyjaśniona dla każdego komponentu? Poza tym nadal można wykonać PCA w celu zmniejszenia wymiarowości. Jak to wpływa na ANOVA / regresję liniową?
Archie,
1
+1, ponieważ odpowiedź jest bardzo interesująca. Nie obywa się jednak bez krytyki. Pozornie (jak dla mnie głupie) nie wyjaśniłeś dokładnie, dlaczego robienie PCA na danych kompozycyjnych lub przekształconych przez clr jest niewłaściwe „w subtelny sposób” (co? Jak?). Podajesz także kod python, ale nie jego wyniki. Czy możesz wyświetlać i komentować jego wyniki? Na koniec, czy możesz zostawić link o transfotmie ILR, o którym można przeczytać?
ttnphns,
1
@ttnphns 1) jak napisałem w komentarzach, CLR nie usuwa zniekształceń źródeł wariancji wprowadzonych przez zamknięcie składu, wpływając na analizę danych eksploracyjnych: solidne oszacowanie kowariancji wymaga macierzy pełnej rangi; 2) Nie jestem pewien, czy śledzę, dlaczego mówisz, że nie ma wyników: to interaktywna sesja Pythona z danymi wejściowymi i wyjściowymi (tj. Wynikami); 3) Dodałem odniesienie do ILR.
Eli Korvigo
5

Tak, możesz, a właściwie powinieneś, kiedy twoje dane są kompozycyjne.

Przegląd z dziedziny mikrobiologii można znaleźć tutaj, który motywuje do zastosowania transformacji CLR, a następnie PCA do analizy zestawów danych mikrobiomów (które są zgodne z definicją): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / full .

Archie
źródło
Niestety, w wielu przypadkach ten artykuł jest bardzo błędny, a szkoda, biorąc pod uwagę, że dwóch współautorów jest mistrzami analizy danych kompozycyjnych.
Eli Korvigo,
@EliKorvigo Ten komentarz może być uzasadniony, ale sam w sobie nie jest pomocny. Gdybyś mógł wskazać na opublikowaną lub przynajmniej publiczną krytykę, taka krytyka zmieniłaby obraz.
Nick Cox
@NickCox na pewno jest papier autorstwa Filzmosera i Hrona . Nie jest to bezpośrednia krytyka wspomnianego artykułu, ale przemawia przeciwko używaniu CLR do analizy korelacji, podczas gdy wspomniany artykuł zaleca narzędzia oparte na CLR.
Eli Korvigo,
@NickCox Chciałbym podkreślić mój głęboki szacunek dla dr Pawlowsky-Glahn i dr Egozcue, którzy są dwoma ostatnimi autorami artykułu wspomnianego przez Archiego. W rzeczywistości wprowadzili ILR, aby zaradzić niedociągnięciom CLR (Egozcue i Pawlowsky-Glahn, 2003) . Odnosząc się do CLR, piszą: „Niemniej jednak odniesienia ortogonalne w tej podprzestrzeni nie są uzyskiwane w prosty sposób” .
Eli Korvigo,
Stan Pawlowsky-Glahn i Egozcue w „Dane kompozycyjne i ich analiza: wprowadzenie” (2006), że współczynniki clr „mają pewne zalety: wyrażenie jest symetryczne w częściach i te współrzędne zmniejszają obliczanie odległości Aitchisona do zwykłych odległości. przydatne w obliczeniach bi-wykresów (...) ”
jO.