Wybór liczby głównych komponentów do zachowania

10

Jedną z metod, która została mi zasugerowana, jest spojrzenie na wykres piargowy i sprawdzenie „łokcia” w celu ustalenia prawidłowej liczby komputerów do użycia. Ale jeśli wykres nie jest jasny, czy R ma obliczenia w celu ustalenia liczby?

fit <- princomp(mydata, cor=TRUE)
znak
źródło
3
Nie to co wiem. Po pierwsze, jeśli odwołujesz się do „wartości własnej powyżej 1 reguły kciuka” lub tak zwanej reguły Kaysera, prawdopodobnie znajdziesz liczbę komputerów, które to spełniają (pamiętaj, że generalnie przeceniasz liczbę wymiarów), patrząc a dokładniej na twojej działce. Po drugie, analiza równoległa jest lepszym sposobem na określenie liczby składników; zobacz pakiet psylub psychw programach R, SPSS, SAS i MATLAB, aby określić liczbę składników i czynników. Korzystanie z analizy równoległej i testu MAP Velicera bardziej ogólnie.
chl

Odpowiedzi:

10

Poniższy artykuł: Zachowanie składników w analizie głównych składników z zastosowaniem do danych mikromacierzy cDNA przez Cangelosi i Goriely daje dość ładny przegląd standardowej reguły kciuka w celu wykrycia liczby składników w badaniu. (Wykres Scree, Wyjaśnienie proporcji całkowitej wariancji, Reguła średniej wartości własnej, Wykres log-wartości własnej itp.) Większość z nich jest dość łatwa do wdrożenia w R.

Ogólnie rzecz biorąc, jeśli twoja fabuła jest bardzo niejednoznaczna, musisz po prostu „wybrać swoją truciznę”. Żadne dane nie są absolutnie dobre ani złe, ponieważ w rzeczywistości liczba używanych komputerów zależy od zrozumienia problemu. Jedynym zestawem danych, który można „naprawdę” poznać, jest wymiarowość, to ten, który sam zbudowałeś. :-) Główne składniki na koniec dnia zapewniają optymalny rozkład danych w oparciu o dane RSS (gdzie jako produkt uboczny otrzymujesz każdy składnik, który reprezentuje główny tryb zmienności) i obejmuje lub wyklucza określoną liczbę składników dyktuje twoje postrzeganie wymiarów twojego problemu.

Jeśli chodzi o osobiste preferencje, podoba mi się podejście Minki do tego automatycznego wyboru wymiarów dla PCA, które opiera się na probabilistycznej interpretacji PCA, ale znowu zaczynasz grę polegającą na próbowaniu modelowania prawdopodobieństwa twoich danych dla danej wielkości. (Link udostępnia kod Matlab, jeśli chcesz zastosować się do tego uzasadnienia.)

Spróbuj lepiej zrozumieć swoje dane. na przykład. Czy naprawdę wierzysz, że 99,99% zmienności twojego zbioru danych wynika ze zmiennych towarzyszących twojego modelu? Jeśli nie, prawdopodobnie nie musisz uwzględniać wymiarów, które wykazują tak mały odsetek całkowitej wariancji. Czy uważasz, że w rzeczywistości element odzwierciedla odchylenie poniżej progu zauważalnych różnic? To znowu prawdopodobnie oznacza, że ​​włączenie tego komponentu do analizy jest niewielkie.

W każdym razie powodzenia i dokładnie sprawdź swoje dane. (Ich kreślenie czyni również cuda.)

usεr11852
źródło
Czy możesz wskazać kod Matlab, nie mogę go znaleźć?
mrgloom 11.04.13
Myślę, że znalazłem go research.microsoft.com/en-us/um/people/minka/papers/pca
mrgloom
Tak! To był link, o którym mówiłem.
usεr11852
Zastanawiam się, czy podejście Minki jest już stosowane w R? Powiedzmy, że najważniejsze komputery zostały określone w badaniu różnymi metodami, wiemy, że powinny one stanowić część sygnałową danych. Czy wiesz przypadkowo, czy istnieje jakieś ograniczenie w wariancji%, którą wyjaśniają te komputery, poniżej której uważa się za niemożność dalszej analizy? wszelkie odniesienia będą mile widziane.
doktorat
6

W ciągu ostatnich kilku lat bardzo ładnie pracowano nad tym problemem, odkąd pierwotnie zadano to pytanie i udzielono na nie odpowiedzi. Bardzo polecam następujący artykuł Gavisha i Donoho: Optymalny twardy próg dla pojedynczych wartości wynosi 4 / sqrt (3)

Ich wynik opiera się na analizie asymptotycznej (tj. Istnieje dobrze zdefiniowane optymalne rozwiązanie, gdy matryca danych staje się nieskończenie duża), ale pokazują imponujące wyniki liczbowe, które pokazują, że asymptotycznie optymalna procedura działa dla małych i realistycznie dużych zbiorów danych, nawet przy różnych hałasach modele.

Zasadniczo optymalna procedura sprowadza się do oszacowania szumu, , dodawanego do każdego elementu macierzy. Na tej podstawie obliczasz próg i usuwasz główne składniki, których pojedyncza wartość spada poniżej progu. W przypadku macierzy kwadratowej stała proporcjonalności 4 / sqrt (3) pojawia się, jak sugerowano w tytule:n × nσn×n

λ=4σn3

Wyjaśniają także przypadek nie kwadratowy w pracy. Mają tutaj ładny dodatek do kodu (w MATLAB), ale algorytmy byłyby łatwe do zaimplementowania w R lub gdziekolwiek indziej: https://purl.stanford.edu/vg705qn9070

Ostrzeżenia:

  • Jeśli brakuje Ci danych, nie jestem pewien, czy to zadziała
  • Jeśli każda funkcja w zestawie danych ma różne wielkości szumów, nie jestem pewien, czy to zadziała (chociaż wybielanie prawdopodobnie obejdzie ten problem przy pewnych założeniach)
  • Byłoby ciekawie sprawdzić, czy podobne wyniki odnoszą się do innych faktoryzacji macierzy niskiej rangi (np. Nieujemnej faktoryzacji macierzy).
Alex Williams
źródło
+1, wow, ten papier wygląda wyjątkowo interesująco. Wielkie dzięki za wzmiankę o tym.
ameba
4

Problem z kryterium Kaisera (wszystkie wartości własne większe niż jeden) polega na tym, że liczba wyodrębnionych czynników wynosi zwykle około jednej trzeciej liczby przedmiotów lub skal w akumulatorze, niezależnie od tego, czy wiele dodatkowych czynników to hałas. Równoległa analiza i kryterium piargowe są na ogół bardziej dokładnymi procedurami określania liczby czynników do wyodrębnienia (zgodnie z klasycznymi tekstami Harmona i Ledyarda Tuckera, a także nowszą pracą Wayne'a Velicera.

StatisticsDoc Consulting
źródło