Załóżmy, że mamy mierzalnych zmiennych, , wykonujemy liczbę pomiarów, a następnie chcemy przeprowadzić rozkład wyników w liczbie pojedynczej na wynikach, aby znaleźć osie największej wariancji dla punktów w przestrzeni wymiarowej. ( Uwaga: załóżmy, że środki zostały już odjęte, więc dla wszystkich .)
Załóżmy teraz, że jedna (lub więcej) zmiennych ma znacznie inną charakterystyczną wielkość niż pozostałe. Np. może mieć wartości w zakresie podczas gdy reszta może wynosić około . To bardzo przekrzywi oś największej wariancji w kierunku osi .
Różnica wielkości może być po prostu spowodowana niefortunnym wyborem jednostki miary (jeśli mówimy o danych fizycznych, np. Kilometrach vs metrach), ale w rzeczywistości różne zmienne mogą mieć zupełnie inne wymiary (np. Waga vs objętość), więc może nie być żadnego oczywistego sposobu wyboru dla nich „porównywalnych” jednostek.
Pytanie: Chciałbym wiedzieć, czy istnieją jakieś standardowe / powszechne sposoby normalizacji danych w celu uniknięcia tego problemu. Bardziej interesują mnie standardowe techniki, które wytwarzają porównywalne wielkości dla w tym celu, niż wymyślanie czegoś nowego.
EDYCJA: Jedną z możliwości jest znormalizowanie każdej zmiennej o jej standardowe odchylenie lub coś podobnego. Pojawia się jednak następujący problem: interpretujmy dane jako chmurę punktów w przestrzeni wymiarowej. Tę chmurę punktów można obracać, a ten typ normalizacji da różne wyniki końcowe (po SVD) w zależności od obrotu. (Np. W najbardziej ekstremalnym przypadku wyobraź sobie, że dokładnie obracasz dane, aby wyrównać główne osie z głównymi osiami.)
Spodziewam się, że nie będzie tego niezmiennego sposobu rotacji, ale byłbym wdzięczny, gdyby ktoś mógł skierować mnie do dyskusji na ten temat w literaturze, szczególnie w odniesieniu do zastrzeżeń w interpretacji wyników.
Odpowiedzi:
Trzy popularne normalizacje to centrowanie, skalowanie i standaryzacja.
Niech będzie zmienną losową.X
Centrowanie to
Wynikowa będzie miała ¯ x ∗ = 0 .x∗ x∗¯= 0
Skalowanie wynosi
Wynikowa będzie miała ∑ i x ∗ i 2 = 1 .x∗ ∑jax∗ja2)= 1
Standaryzacja to wyśrodkowanie, a następnie skalowanie. Wynikowa będzie miała ¯ x ∗ = 0 i ∑ i x ∗ i 2 = 1 .x∗ x∗¯= 0 ∑jax∗ja2)= 1
źródło
Masz całkowitą rację, że posiadanie poszczególnych zmiennych o bardzo różnych wariancjach może być problematyczne dla PCA, szczególnie jeśli różnica ta wynika z różnych jednostek lub różnych wymiarów fizycznych. Z tego powodu, chyba że wszystkie zmienne są porównywalne (ta sama wielkość fizyczna, te same jednostki), zaleca się wykonanie PCA na macierzy korelacji zamiast macierzy kowariancji. Spójrz tutaj:
Wykonanie PCA na macierzy korelacji jest równoznaczne ze standaryzacją wszystkich zmiennych przed analizą (a następnie wykonanie PCA na macierzy kowariancji). Standaryzacja oznacza wyśrodkowanie, a następnie podzielenie każdej zmiennej przez jej odchylenie standardowe, tak aby wszystkie stały się zmienne jednostkowo. Można to postrzegać jako wygodną „zmianę jednostek”, aby wszystkie jednostki były porównywalne.
Można zapytać, czy czasem może istnieć lepszy sposób „normalizacji” zmiennych; np. można wybrać podział według pewnego rzetelnego oszacowania wariancji zamiast wariancji surowej. Zostało to zadane w następującym wątku i zobacz następującą dyskusję (chociaż nie podano tam jednoznacznej odpowiedzi):
Wreszcie martwiłeś się, że normalizacja przez odchylenie standardowe (lub coś podobnego) nie jest niezmienna rotacja. Cóż, tak nie jest. Ale, jak zauważył @whuber w powyższym komentarzu, nie ma sposobu, aby to zrobić w sposób niezmienny: zmiana jednostek poszczególnych zmiennych nie jest operacją niezmienną w rotacji ! Tutaj nie ma się czym martwić.
źródło
Powszechną techniką przed zastosowaniem PCA jest odjęcie średniej z próbek. Jeśli tego nie zrobisz, pierwszy wektor własny będzie środkiem. Nie jestem pewien, czy to zrobiłeś, ale pozwól mi o tym porozmawiać. Jeśli mówimy w kodzie MATLAB: tak jest
Jak widać na rysunku, myślę, że powinieneś odjąć średnią od danych, jeśli chcesz lepiej przeanalizować (ko) wariancję. Wtedy wartości nie będą pomiędzy 10-100 a 0,1-1, ale ich średnia będzie wynosić zero. Wariancje zostaną znalezione jako wartości własne (lub kwadrat wartości pojedynczych). Na znalezione wektory własne nie ma wpływu skala wymiaru dla przypadku, gdy odejmujemy średnią tak bardzo, jak w przypadku, gdy tego nie robimy. Na przykład przetestowałem i zaobserwowałem następujące informacje, które odejmują średnią, która może mieć znaczenie dla twojej sprawy. Problem może wynikać nie z wariancji, ale z różnicy w tłumaczeniu.
źródło
Do normalizacji danych dla PCA zastosowano również następujący wzór
źródło