Załóżmy, że mat_pages [] zawiera strony w kolumnach (które chcesz zgrupować) i poszczególne osoby w wierszach. Możesz grupować strony w oparciu o indywidualne dane w Rby, używając następującego polecenia:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
Macierz ładunków jest macierzą wektorów własnych rozkładu SVD danych. Podają względną wagę każdej STRONY przy obliczaniu wyników. Obciążenia o większych wartościach bezwzględnych mają większy wpływ na ustalenie wyniku dla odpowiedniej składowej zasady.
Powinienem jednak również zwrócić uwagę na niedociągnięcia związane z używaniem PCA do grupowania stron. Powodem tego jest to, że obciążenia nadają STRONY większym wagom z większą zmiennością, niezależnie od tego, czy ta zmiana jest faktycznie spowodowana zawartością STRONY, czy z innego powodu (może to być zmiana techniczna lub indywidualna). Ładunki niekoniecznie odzwierciedlają prawdziwe różnice między grupami, które (być może) są twoim głównym zainteresowaniem. ALE, to grupowanie naprawdę odzwierciedla różnice w grupie przy założeniu, że wszystkie strony mają tę samą wariancję (nie wiem, czy jest to prawidłowe założenie).
Jeśli masz potężne możliwości obliczeniowe (co może być możliwe z uwagi na rozmiar danych) - dobrym pomysłem może być użycie modeli hierarchicznych. W R można to zrobić za pomocą pakietu lme4.
Co zrobić po uzyskaniu wyników?
Jest to przybliżona sugestia, a analiza zależy w dużej mierze od tego, jak wyglądają dane. Sądzę także, że ten proces byłby bardzo niewykonalny, aby zgrupować dane wielkości, które posiadasz.
pc.col <- paste("page", 1:27000, sep=".")
pdf("principle-components.pdf")
plot(pc$x[,1:2]) ## Just look at the 1st two loadings (as you can see the groupings in a plane)
dev.off()
Mamy nadzieję, że da to obraz, w jaki sposób dane są pogrupowane.
Ostrzeżenie: nie to poleciłbym.
Moja rekomendacja:
Takie problemy często pojawiają się w genomice. W twoim przypadku strony odpowiadają genom, a jednostki odpowiadają pacjentom (w zasadzie jednostki mają takie samo znaczenie jak w genomice)
Chcesz grupować strony na podstawie danych.
Możesz użyć wielu pakietów klastrowych w R i zostały wskazane w innych odpowiedziach. Podstawowym problemem związanym z pakietami jest to, jak hclust polega na tym, jak określić liczbę klastrów. Kilka moich ulubionych to:
- pvclust (Daje ci klastry, a także daje wartość p dla każdego klastra. Korzystając z wartości p, możesz określić statystycznie istotne klastry. Problem : wymaga dużej mocy obliczeniowej i nie jestem pewien, czy zadziała z danymi twojego rozmiar)
- hopach (Podaje szacunkową liczbę klastrów i klastrów)
- w Bioconductor są dostępne inne pakiety, sprawdź je w widoku zadań.
Możesz także użyć algorytmów grupowania, takich jak k-średnich itp. Jestem pewien, że widziałem na tym forum wątek dotyczący grupowania. Odpowiedzi były bardzo szczegółowe. Tal Galili zapytał mnie, czy dobrze pamiętam.